-{"version":3,"file":"app.js","mappings":"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Pa,WAAYxB,GACZyB,KAAM1B,GACN2B,OAAQtC,GACRuC,YAAaxC,GACbyC,SAAUxD,GACVyD,WAAYjD,GACZkD,UAAWpD,GACXqD,YAAajD,GACbkD,QAASxD,GACTyD,UAAWhD,GACXX,aACA4D,YAAahD,GACbiD,OAAQf,IAENgB,GAAWhlI,GAAOikI,OAClBgB,GAASjlI,GAAOqkI,KAChBa,GAAWllI,GAAOskI,OAClBa,GAAcnlI,GAAO0kI,UACzB,SAASU,KACP,IAAIC,EAAW,EACb,kBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,kBACA,kBACA,kBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,mBACA,kBACA,iBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,iBACA,kBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,kBACA,mBACA,kBACA,kBACA,mBACA,kBACA,mBACA,mBACA,oBACA,oBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,oBACA,oBACA,kBACA,kBACA,mBACA,kBACA,kBACA,kBACA,kBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,kBACA,mBACA,kBACA,oBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,kBACA,mBACA,kBACA,mBACA,mBACA,oBACA,oBACA,kBACA,kBACA,mBACA,mBACA,kBACA,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,kBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,iBACA,kBACA,mBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,mBACA,mBACA,mBACA,mBACA,kBACA,oBACA,mBACA,oBACA,oBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,kBACA,kBACA,mBACA,oBACA,mBACA,mBACA,mBACA,kBACA,mBACA,kBACA,iBACA,oBACA,kBACA,mBACA,mBACA,kBACA,mBACA,kBACA,kBACA,mBACA,oBACA,oBACA,oBACA,iBACA,mBACA,kBACA,kBACA,kBACA,kBACA,oBACA,kBACA,kBACA,mBACA,kBACA,mBACA,oBACA,iBACA,kBACA,mBACA,oBACA,oBACA,mBACA,kBACA,kBACA,kBACA,kBACA,kBACA,oBACA,kBACA,mBACA,mBACA,kBACA,mBACA,oBACA,mBACA,mBACA,oBACA,oBACA,oBACA,oBACA,kBACA,iBACA,mBACA,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBACA,mBACA,mBACA,oBACA,oBACA,mBACA,mBACA,kBACA,kBACA,mBACA,kBACA,iBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,oBACA,mBACA,mBACA,mBACA,oBACA,oBACA,mBACA,kBACA,mBACA,mBACA,iBACA,kBACA,oBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,oBACA,oBACA,oBACA,kBACA,mBACA,kBACA,WAAcJ,GAAOnC,MAAQ,GAAM,QACnC,WAAcmC,GAAOnC,MAAQ,GAAM,QACnC,WAAamC,GAAOnC,MAAQ,GAAM,QAClC,WAAamC,GAAOnC,MAAQ,GAAM,QAClC,UAAYmC,GAAOnC,MAAQ,GAAM,QACjC,UAAYmC,GAAOnC,MAAQ,GAAM,QACjC,UAAYmC,GAAOnC,MAAQ,GAAM,QACjC,SAAWmC,GAAOnC,MAAQ,GAAM,QAChC,mBACA,mBACA,kBACA,mBACA,mBACA,mBACA,mBAEEwC,EAAK,GACLC,EAAK,GACLC,EAAM,CACR,CACE,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,oBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,sBACC,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,qBACA,sBAEH,CACE,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,sBACC,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,qBACA,qBACD,EACA,EACA,EACA,EACA,EACA,GACC,sBACA,sBACA,sBAEH,CACE,kBACA,iBACA,kBACA,kBACA,kBACA,iBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,iBACA,kBACA,kBACA,mBACC,mBACA,kBACD,kBACA,IACC,mBACA,mBACA,mBACA,mBACA,oBACA,oBACA,oBACA,oBACD,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,iBACA,mBAEF,CACE,EACA,EACA,EACA,EACA,EACA,EACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,oBACA,sBACC,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,uBAGDC,EAAWD,EAAIE,GAAQC,YACvBC,EAAKJ,EAAIE,GAAQC,YACjBE,EAAKL,EAAIE,GAAQC,YACjBG,EAAKN,EAAIE,GAAQC,YACjBtuB,EAAQ,CACV,EACA,EACA,GACA,GACA,EACA,EACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,IAEF,SAAS0uB,EAAeC,EAAIC,EAAOj+H,GAGjC,IAFA,IA6DYu+C,EAAG3iD,EA2BTsiI,EAxFFC,EAAK,GACLC,EAAKH,EAAQ,IAAM,GAAK,IACnB1iI,GAAK,GAAIA,EAAI,EAAGA,IAAK,CAC5B,IAAI8iE,EAAGluD,EAAG6vB,EACVq+B,EAAIg/D,EAASc,GAAM,IACnBhuH,EAAI6tH,EAAGI,GAAM,K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AAK1qI,EAClB6pI,EAAGG,EAAKI,GAAME,EAAKrqI,EACnB4pI,EAAGG,EAAKE,GAAMI,EAAKrqI,EACnBygI,GAAMqJ,EACNC,GAAMD,CACR,OAASC,EAAK7yI,GACdgoD,EAAKF,EACLA,EAAKE,EAAKwqF,EAAOM,EAAM,GAAKnqF,EAAK6pF,EAAOM,EAAM,GAC9CnqF,EAAKX,EAAKwqF,EAAOM,EAAM,GAAKnqF,EAAK6pF,EAAOM,EAAM,EAChD,CACAA,GAAO,CACT,OAASF,EAAKrgI,EAChB,CACA,IAAIohI,EAAS,CACX,EACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,EACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,EACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,EACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,EACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,KAEFz1I,KAAK01I,UAAY,SAAS/K,EAAKgL,EAAQC,EAAKrwI,EAAQswI,GAClD,IAAK,IAAIjrI,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,IAAIwJ,EAAIi0H,GAAQsL,UAAY,EACxB3xF,EAAI,MAAQ,KAAWp3C,EAAI,GAC3B0iC,EAAI+6F,GAAQsL,UAAY,EAAI,EAChC,EAAG,CACD,IAAIuB,EAAID,EAAIG,EAAID,EAAInsE,EAChB9iE,EAAqB,IAAjBuvI,EAAOnoG,GAAK,GACpB4nG,EAAKb,EAASnuI,GAAKX,EAAOqwI,GAAKC,EAAS3vI,EAAI87C,GAC5CgnB,EAAIqrE,EAAS,IAAMnuI,GAAKX,EAAOqwI,GAAKC,EAAS3vI,EAAI87C,EAAI,KACrDizF,EAAKC,EAAKlsE,EACVksE,GAAUlsE,EACVosE,EAAKf,EAASnuI,EAAI,IAAMX,EAAOqwI,GAAKC,EAAS3vI,EAAI87C,EAAI,IACrDgnB,EAAIqrE,EAAS,GAAKnuI,GAAKX,EAAOqwI,GAAKC,EAAS3vI,EAAI87C,EAAI,KACpDmzF,EAAKC,EAAKpsE,EACVosE,GAAUpsE,EACV50D,GAAK,EACLuhI,EAAO/qI,GAAGwJ,EAAI,GAAK8gI,EAAKE,EACxBO,EAAO/qI,GAAGwJ,EAAI,GAAK8gI,EAAKE,EACxBO,EAAO/qI,GAAGwJ,EAAI,GAAK6gI,EAAKE,EACxBQ,EAAO/qI,GAAGwJ,EAAI,GAAK6gI,EAAKE,EACxBD,EAAKb,EAASnuI,EAAI,GAAKX,EAAOqwI,GAAKC,EAAS3vI,EAAI87C,EAAI,GACpDgnB,EAAIqrE,EAAS,IAAMnuI,GAAKX,EAAOqwI,GAAKC,EAAS3vI,EAAI87C,EAAI,KACrDizF,EAAKC,EAAKlsE,EACVksE,GAAUlsE,EACVosE,EAAKf,EAASnuI,EAAI,IAAMX,EAAOqwI,GAAKC,EAAS3vI,EAAI87C,EAAI,IACrDgnB,EAAIqrE,EAAS,GAAKnuI,GAAKX,EAAOqwI,GAAKC,EAAS3vI,EAAI87C,EAAI,KACpDmzF,EAAKC,EAAKpsE,EACVosE,GAAUpsE,EACV2sE,EAAO/qI,GAAGwJ,EAAIi0H,GAAQsL,UAAY,EAAI,GAAKuB,EAAKE,EAChDO,EAAO/qI,GAAGwJ,EAAIi0H,GAAQsL,UAAY,EAAI,GAAKuB,EAAKE,EAChDO,EAAO/qI,GAAGwJ,EAAIi0H,GAAQsL,UAAY,EAAI,GAAKsB,EAAKE,EAChDQ,EAAO/qI,GAAGwJ,EAAIi0H,GAAQsL,UAAY,EAAI,GAAKsB,EAAKE,CAClD,SAAW7nG,GAAK,GAChBinG,EAAIoB,EAAO/qI,GAAIwJ,EAAGi0H,GAAQsL,UAAY,EACxC,CACF,EACA3zI,KAAK81I,SAAW,SAASnL,EAAK9E,EAAG+P,EAAKrwI,EAAQswI,GAC5C,IAAIE,EAAK1N,GAAQwH,QAAU,EAAI,EAC3Bz7H,EAAIi0H,GAAQwH,QAAU,EAC1B,EAAG,CACD,IAAIqF,EAAID,EAAIG,EAAID,EAAInsE,EAChB9iE,EAAiB,IAAbuvI,EAAOM,GACfb,EAAKd,EAAQluI,GAAKX,EAAOqwI,GAAKC,EAAS3vI,GACvC8iE,EAAIorE,EAAQluI,EAAI,KAAOX,EAAOqwI,GAAKC,EAAS3vI,EAAI,KAChD+uI,EAAKC,EAAKlsE,EACVksE,GAAUlsE,EACVosE,EAAKhB,EAAQluI,EAAI,KAAOX,EAAOqwI,GAAKC,EAAS3vI,EAAI,KACjD8iE,EAAIorE,EAAQluI,EAAI,KAAOX,EAAOqwI,GAAKC,EAAS3vI,EAAI,KAChDivI,EAAKC,EAAKpsE,EACVosE,GAAUpsE,EACV50D,GAAK,EACLyxH,EAAEzxH,EAAI,GAAK8gI,EAAKE,EAChBvP,EAAEzxH,EAAI,GAAK8gI,EAAKE,EAChBvP,EAAEzxH,EAAI,GAAK6gI,EAAKE,EAChBtP,EAAEzxH,EAAI,GAAK6gI,EAAKE,EAChBD,EAAKd,EAAQluI,EAAI,GAAKX,EAAOqwI,GAAKC,EAAS3vI,EAAI,GAC/C8iE,EAAIorE,EAAQluI,EAAI,KAAOX,EAAOqwI,GAAKC,EAAS3vI,EAAI,KAChD+uI,EAAKC,EAAKlsE,EACVksE,GAAUlsE,EACVosE,EAAKhB,EAAQluI,EAAI,KAAOX,EAAOqwI,GAAKC,EAAS3vI,EAAI,KACjD8iE,EAAIorE,EAAQluI,EAAI,KAAOX,EAAOqwI,GAAKC,EAAS3vI,EAAI,KAChDivI,EAAKC,EAAKpsE,EACVosE,GAAUpsE,EACV68D,EAAEzxH,EAAIi0H,GAAQwH,QAAU,EAAI,GAAKqF,EAAKE,EACtCvP,EAAEzxH,EAAIi0H,GAAQwH,QAAU,EAAI,GAAKqF,EAAKE,EACtCvP,EAAEzxH,EAAIi0H,GAAQwH,QAAU,EAAI,GAAKoF,EAAKE,EACtCtP,EAAEzxH,EAAIi0H,GAAQwH,QAAU,EAAI,GAAKoF,EAAKE,CACxC,SAAWY,GAAM,GACjBxB,EAAI1O,EAAGzxH,EAAGi0H,GAAQwH,QAAU,EAC9B,EACA7vI,KAAKg2I,SAAW,SAASrL,GACvB,IAAK,IAAIzkI,EAAI,EAAGA,EAAImiI,GAAQwH,QAAS3pI,IACnCkuI,EAAQluI,GAAK,IAAO,GAAM8K,KAAKilI,IAAI,EAAIjlI,KAAKklI,IAAMhwI,EAAI,IAAOmiI,GAAQwH,SAAW,IAAO7+H,KAAKilI,IAAI,EAAIjlI,KAAKklI,IAAMhwI,EAAI,IAAOmiI,GAAQwH,SAEpI,IAAS3pI,EAAI,EAAGA,EAAImiI,GAAQsL,UAAY,EAAGztI,IACzCmuI,EAASnuI,GAAK,IAAO,EAAI8K,KAAKilI,IAAI,EAAIjlI,KAAKklI,IAAMhwI,EAAI,IAAOmiI,GAAQsL,WAExE,CACF,CACA,IAAIwC,GAAYxzI,GAAOkkI,QACnBuP,GAAUzzI,GAAOmkI,MACjBuP,GAAe1zI,GAAOokI,WACtBuP,GAAS3zI,GAAOqkI,KAChBuP,GAAW5zI,GAAOskI,OAClBuP,GAAc7zI,GAAO0kI,UACrBoP,GAAgB9zI,GAAO2kI,YACvBoP,GAAY/zI,GAAO4kI,QACnBoP,GAAWh0I,GAAO+kI,OACtB,SAASkP,KACP,IAAIC,EAAM,IAAI1C,GACV2C,EAAQ,kBACRC,EAAS,EACTC,EAAU,GACVC,EAAW,EACXC,EAAY,GACZC,EAAU,IACVC,EAAW,EAAI,WAAmB/O,GAAQwH,QAAU,GACpDwH,EAA2B,IAC3BC,EAAkB,GAClBC,EAAkB,GAClBC,EAAkB,GAClBC,EAAW,IACXC,EAAW,GACXC,EAAc,YAClB,SAASC,EAAwBxjI,GAC/B,OAAOA,CACT,CACA,SAASyjI,EAAuBxF,EAAQ1H,GAEtC,IADA,IAAImN,EAAiB,EACZ5xI,EAAI,EAAGA,EAAImiI,GAAQwH,QAAU,IAAK3pI,EACzC4xI,GAAkBzF,EAAOnsI,GAAKykI,EAAI+D,IAAIqJ,MAAM7xI,GAG9C,OADA4xI,GAAkBV,EACXU,CACT,CACA,SAASE,EAAazI,EAAK0I,EAAWC,EAAaC,EAASC,EAAYC,EAASC,EAAYC,EAAQ3C,EAAKrwI,EAAQswI,GAChH,IAAIlL,EAAM4E,EAAIE,eACd,GAAImG,EAAM,EACRiB,EAAIf,SAASnL,EAAKwN,EAAQC,GAAaxC,EAAKrwI,EAAQswI,GACpDgB,EAAInB,UAAU/K,EAAK0N,EAAQC,GAAa1C,EAAKrwI,EAAQswI,QAChD,GAAW,GAAPD,EAAU,CACnB,IAAK,IAAItoG,EAAI+6F,GAAQwH,QAAU,EAAGviG,GAAK,IAAKA,EAAG,CAC7C,IAAI9iC,EAAI2tI,EAAQC,EAAa,GAAG9qG,GAC5BxjB,EAAIquH,EAAQC,EAAa,GAAG9qG,GAChC6qG,EAAQC,EAAa,GAAG9qG,IAAM9iC,EAAIsf,GAAKwsH,GAAO7Q,MAAQ,GACtD0S,EAAQC,EAAa,GAAG9qG,IAAM9iC,EAAIsf,GAAKwsH,GAAO7Q,MAAQ,EACxD,CACA,IAAK,IAAI76H,EAAI,EAAGA,GAAK,IAAKA,EACxB,IAAS0iC,EAAI+6F,GAAQsL,UAAY,EAAGrmG,GAAK,IAAKA,EAAG,CAC3C9iC,EAAI6tI,EAAQC,EAAa,GAAG1tI,GAAG0iC,GAC/BxjB,EAAIuuH,EAAQC,EAAa,GAAG1tI,GAAG0iC,GACnC+qG,EAAQC,EAAa,GAAG1tI,GAAG0iC,IAAM9iC,EAAIsf,GAAKwsH,GAAO7Q,MAAQ,GACzD4S,EAAQC,EAAa,GAAG1tI,GAAG0iC,IAAM9iC,EAAIsf,GAAKwsH,GAAO7Q,MAAQ,EAC3D,CAEJ,CACAwS,EAAU,GAAKL,EAAwBO,EAAQC,EAAa,GAAG,IAC/DH,EAAU,IAAMA,EAAU,GAC1B,IAAS3qG,EAAI+6F,GAAQwH,QAAU,EAAI,EAAGviG,GAAK,IAAKA,EAAG,CACjD,IAAIkrG,EAAKL,EAAQC,EAAa,GAAG/P,GAAQwH,QAAU,EAAIviG,GACnDmrG,EAAKN,EAAQC,EAAa,GAAG/P,GAAQwH,QAAU,EAAIviG,GACvD2qG,EAAU5P,GAAQwH,QAAU,EAAIviG,GAAKsqG,EACb,IAArBY,EAAKA,EAAKC,EAAKA,GAEpB,CACA,IAAS7tI,EAAI,EAAGA,GAAK,IAAKA,EAAG,CAC3BstI,EAAYttI,GAAG,GAAKytI,EAAQC,EAAa,GAAG1tI,GAAG,GAC/CstI,EAAYttI,GAAG,IAAMstI,EAAYttI,GAAG,GACpC,IAAS0iC,EAAI+6F,GAAQsL,UAAY,EAAI,EAAGrmG,GAAK,IAAKA,EAAG,CAC/CkrG,EAAKH,EAAQC,EAAa,GAAG1tI,GAAGy9H,GAAQsL,UAAY,EAAIrmG,GACxDmrG,EAAKJ,EAAQC,EAAa,GAAG1tI,GAAGy9H,GAAQsL,UAAY,EAAIrmG,GAC5D4qG,EAAYttI,GAAGy9H,GAAQsL,UAAY,EAAIrmG,GAAKsqG,EACpB,IAArBY,EAAKA,EAAKC,EAAKA,GAEpB,CACF,CAEE,IAAIC,EAAc,EAClB,IAASprG,EAAI,GAAIA,EAAI+6F,GAAQqL,SAAUpmG,IACrCorG,GAAeT,EAAU3qG,GAG7B,GAFEq9F,EAAI+F,SAASkF,GAAO8C,EAElBnJ,EAAI0C,SAAU,CAChB,IAAS3kG,EAAI,EAAGA,EAAI+6F,GAAQqL,SAAUpmG,IACpCq9F,EAAIuH,MAAMG,OAAOkG,GAAQ3C,GAAKtoG,GAAKq9F,EAAIuH,MAAMyG,YAAY/C,GAAKtoG,GAC9Dq9F,EAAIuH,MAAMyG,YAAY/C,GAAKtoG,GAAK2qG,EAAU3qG,GAE5Cq9F,EAAIuH,MAAMtB,GAAG2H,GAAQ3C,GAAOjL,EAAIiG,GAAGgF,EACrC,CAC4B,GAAxBrG,EAAIqJ,kBAAyBhD,EAAM,IACrCjL,EAAIiE,YAAY2J,GAAQ3C,GAAOjL,EAAIkO,iBAAiBjD,GACpDjL,EAAIkO,iBAAiBjD,GAAOiC,EAAuBI,EAAWtN,GAElE,CACA,IAGImO,EACAC,EACAC,EALAC,EAAU,EACVC,EAAU,GACVC,EAAS,GAITC,EAAM,CACR,EACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QAEF,SAASC,IACPP,EAAY9nI,KAAKsoI,IAAI,IAAKL,EAAU,GAAK,IACzCF,EAAY/nI,KAAKsoI,IAAI,IAAKJ,EAAU,GAAK,IACzCF,EAAWhoI,KAAKsoI,IAAI,GAAIH,EAAS,GACnC,CACA,IAAII,EAAS,CACX,OAAS,OACT,QAAU,QACV,aACA,aACA,aACA,aACA,QAAU,QACV,MAAQ,MACR,aACA,QAAU,QACV,QAAU,QACV,QAAU,QACV,aACA,aACA,QAAU,QACV,QAAU,QACV,aACA,aACA,QAAU,QACV,aACA,QAAU,QACV,OAAS,OACT,aACA,aACA,GAEEC,EAAS,CACX,aACA,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,OAAS,OACT,aACA,QAAU,QACV,aACA,GAEEC,EAAS,CACX,aACA,QAAU,QACV,aACA,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,aACA,QAAU,QACV,QAAU,QACV,QAAU,QACV,aACA,cAEF,SAASC,EAASC,EAAIC,EAAIC,EAAIjvI,EAAG+/H,EAAKmP,GACpC,IAAI1tC,EACJ,GAAIwtC,EAAKD,EAAI,CACX,KAAIC,EAAKD,EAAKZ,GAGZ,OAAOY,EAAKC,EAFZxtC,EAAQwtC,EAAKD,CAGjB,KAAO,CACL,GAAIA,GAAMC,EAAKb,EACb,OAAOY,EAAKC,EACdxtC,EAAQutC,EAAKC,CACf,CAEA,GADAD,GAAMC,EACFhvI,EAAI,GAAK,EAAO,CAClB,GAAIwhG,GAAS0sC,EACX,OAAOa,EAET,IAAIzzI,EAAI,EAAIowI,GAAO1Q,aAAax5B,EAAO,IACvC,OAAOutC,EAAKH,EAAOtzI,EACrB,CACA,IAQQyH,EAAGmc,EARP5jB,EAAI,EAAIowI,GAAO1Q,aAAax5B,EAAO,IAMvC,OAJEwtC,EADgB,GAAdE,EACGnP,EAAI+D,IAAIqL,KAAKF,GAAMlP,EAAI+D,IAAInnD,OAE3BojD,EAAI+D,IAAIsL,KAAKH,GAAMlP,EAAI+D,IAAInnD,OAE9BoyD,EAAKX,EAAWY,EACdD,EAAKC,GAEPjsI,EAAI,EACAzH,GAAK,KACPyH,EAAI8rI,EAAOvzI,IACb4jB,EAAIwsH,GAAO1Q,aAAa+T,EAAKC,EAAI,GAAK,IAC/BD,IAAOJ,EAAOrzI,GAAKyH,GAAKmc,EAAInc,IAEjCzH,EAAI,GACCyzI,EACFA,EAAKF,EAAOvzI,GAEdyzI,EAAKJ,EAAOrzI,EACrB,CACA,IAAI+zI,EAAU,CACZ,aACA,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,OAAS,OACT,aACA,QAAU,QACV,aACA,GAEF,SAASC,EAAgBP,EAAIC,EAAIhvI,GAC/B,IAAIwhG,EAOJ,GANIutC,EAAK,IACPA,EAAK,GAEHC,EAAK,IACPA,EAAK,GAEHD,GAAM,EACR,OAAOC,EAET,GAAIA,GAAM,EACR,OAAOD,EAOT,GAJEvtC,EADEwtC,EAAKD,EACCC,EAAKD,EAELA,EAAKC,EAEXhvI,IAAM,GAAKA,GAAK,EAAG,CACrB,GAAIwhG,GAAS0sC,EACX,OAAOa,EAAKC,EAEZ,IAAI1zI,EAAI,EAAIowI,GAAO1Q,aAAax5B,EAAO,IACvC,OAAQutC,EAAKC,GAAMK,EAAQ/zI,EAE/B,CACA,OAAIkmG,EAAQ2sC,EACHY,EAAKC,GAEVD,EAAKC,IACPD,EAAKC,GAEAD,EACT,CACA,SAASQ,EAA0B5K,EAAKnjC,GACtC,IAAIu+B,EAAM4E,EAAIE,eACd,GAAI9E,EAAIM,aAAe,EAAG,CACxB,IAAK,IAAImP,EAAK,EAAGA,EAAK/R,GAAQoE,QAAS2N,IAAM,CAC3C,IAAI5vI,EAAImgI,EAAIkC,IAAI,GAAGriI,EAAE4vI,GACjBtwH,EAAI6gH,EAAIkC,IAAI,GAAGriI,EAAE4vI,GACrBzP,EAAIkC,IAAI,GAAGriI,EAAE4vI,IAAOtwH,EAAIsiF,EACxBu+B,EAAIkC,IAAI,GAAGriI,EAAE4vI,IAAO5vI,EAAI4hG,CAC1B,CACA,IAASguC,EAAK,EAAGA,EAAK/R,GAAQqE,QAAS0N,IACrC,IAAK,IAAIC,EAAS,EAAGA,EAAS,EAAGA,IAAU,CACrC7vI,EAAImgI,EAAIkC,IAAI,GAAG/xH,EAAEs/H,GAAIC,GACrBvwH,EAAI6gH,EAAIkC,IAAI,GAAG/xH,EAAEs/H,GAAIC,GACzB1P,EAAIkC,IAAI,GAAG/xH,EAAEs/H,GAAIC,IAAWvwH,EAAIsiF,EAChCu+B,EAAIkC,IAAI,GAAG/xH,EAAEs/H,GAAIC,IAAW7vI,EAAI4hG,CAClC,CAEJ,CACF,CACA,SAASkuC,EAAO3P,GACd,IAAK,IAAIyP,EAAK,EAAGA,EAAK/R,GAAQoE,QAAS2N,IACrC,KAAIzP,EAAIkC,IAAI,GAAGriI,EAAE4vI,GAAM,KAAOzP,EAAIkC,IAAI,GAAGriI,EAAE4vI,IAAOzP,EAAIkC,IAAI,GAAGriI,EAAE4vI,GAAM,KAAOzP,EAAIkC,IAAI,GAAGriI,EAAE4vI,IAAzF,CAGA,IAAIG,EAAM5P,EAAI6P,MAAMJ,GAAMzP,EAAImC,GAAG,GAAGtiI,EAAE4vI,GAClCK,EAAOzpI,KAAKuF,IAAIo0H,EAAIkC,IAAI,GAAGriI,EAAE4vI,GAAKppI,KAAKwF,IAAIm0H,EAAIkC,IAAI,GAAGriI,EAAE4vI,GAAKG,IACjEA,EAAM5P,EAAI6P,MAAMJ,GAAMzP,EAAImC,GAAG,GAAGtiI,EAAE4vI,GAClC,IAAIM,EAAQ1pI,KAAKuF,IAAIo0H,EAAIkC,IAAI,GAAGriI,EAAE4vI,GAAKppI,KAAKwF,IAAIm0H,EAAIkC,IAAI,GAAGriI,EAAE4vI,GAAKG,IAClE5P,EAAIkC,IAAI,GAAGriI,EAAE4vI,GAAMK,EACnB9P,EAAIkC,IAAI,GAAGriI,EAAE4vI,GAAMM,CANnB,CAQF,IAASN,EAAK,EAAGA,EAAK/R,GAAQqE,QAAS0N,IACrC,IAAK,IAAIC,EAAS,EAAGA,EAAS,EAAGA,IAC/B,KAAI1P,EAAIkC,IAAI,GAAG/xH,EAAEs/H,GAAIC,GAAU,KAAO1P,EAAIkC,IAAI,GAAG/xH,EAAEs/H,GAAIC,IAAW1P,EAAIkC,IAAI,GAAG/xH,EAAEs/H,GAAIC,GAAU,KAAO1P,EAAIkC,IAAI,GAAG/xH,EAAEs/H,GAAIC,IAArH,CAGIE,EAAM5P,EAAIgQ,MAAMP,GAAMzP,EAAImC,GAAG,GAAGhyH,EAAEs/H,GAAIC,GACtCI,EAAOzpI,KAAKuF,IACdo0H,EAAIkC,IAAI,GAAG/xH,EAAEs/H,GAAIC,GACjBrpI,KAAKwF,IAAIm0H,EAAIkC,IAAI,GAAG/xH,EAAEs/H,GAAIC,GAASE,IAErCA,EAAM5P,EAAIgQ,MAAMP,GAAMzP,EAAImC,GAAG,GAAGhyH,EAAEs/H,GAAIC,GAClCK,EAAQ1pI,KAAKuF,IACfo0H,EAAIkC,IAAI,GAAG/xH,EAAEs/H,GAAIC,GACjBrpI,KAAKwF,IAAIm0H,EAAIkC,IAAI,GAAG/xH,EAAEs/H,GAAIC,GAASE,IAErC5P,EAAIkC,IAAI,GAAG/xH,EAAEs/H,GAAIC,GAAUI,EAC3B9P,EAAIkC,IAAI,GAAG/xH,EAAEs/H,GAAIC,GAAUK,CAZ3B,CAeN,CACA,SAASE,EAASjQ,EAAKkQ,EAAOC,GAC5B,IAAIC,EAASF,EACTG,EAAWhqI,KAAKsoI,IAAI,GAAIwB,GAC5BD,GAAS,EACTE,GAAU,EACV,IAAK,IAAIX,EAAK,EAAGA,EAAK/R,GAAQoE,QAAS2N,IAAM,CAS3C,GAPAa,EAAMtQ,EAAI+D,IAAIsL,KAAKrP,EAAIuQ,KAAKd,IAAOY,EACnCG,EAAQnqI,KAAKwF,IACXxF,KAAKuF,IAAIo0H,EAAIkC,IAAI,GAAGriI,EAAE4vI,GAAKa,GAC3BjqI,KAAKuF,IAAIo0H,EAAIkC,IAAI,GAAGriI,EAAE4vI,GAAKa,IAE7BG,EAAOpqI,KAAKuF,IAAIo0H,EAAIkC,IAAI,GAAGriI,EAAE4vI,GAAKa,GAClCI,EAAOrqI,KAAKuF,IAAIo0H,EAAIkC,IAAI,GAAGriI,EAAE4vI,GAAKa,GAC9BE,EAAQN,EAAQO,EAAOC,EAAM,CAC/B,IAAI1tI,EAAIwtI,EAAQJ,GAAUK,EAAOC,GACjCD,GAAQztI,EACR0tI,GAAQ1tI,CACV,CACAg9H,EAAIkC,IAAI,GAAGriI,EAAE4vI,GAAMppI,KAAKwF,IAAI4kI,EAAMzQ,EAAIkC,IAAI,GAAGriI,EAAE4vI,IAC/CzP,EAAIkC,IAAI,GAAGriI,EAAE4vI,GAAMppI,KAAKwF,IAAI6kI,EAAM1Q,EAAIkC,IAAI,GAAGriI,EAAE4vI,GACjD,CACAY,GAAY3S,GAAQsL,UAAYtL,GAAQwH,QACxC,IAASuK,EAAK,EAAGA,EAAK/R,GAAQqE,QAAS0N,IACrC,IAAK,IAAIC,EAAS,EAAGA,EAAS,EAAGA,IAAU,CACzC,IAAIc,EAAOC,EAAMC,EAAMJ,EAQvB,GAPAA,EAAMtQ,EAAI+D,IAAIqL,KAAKpP,EAAI2Q,KAAKlB,IAAOY,EACnCG,EAAQnqI,KAAKwF,IACXxF,KAAKuF,IAAIo0H,EAAIkC,IAAI,GAAG/xH,EAAEs/H,GAAIC,GAASY,GACnCjqI,KAAKuF,IAAIo0H,EAAIkC,IAAI,GAAG/xH,EAAEs/H,GAAIC,GAASY,IAErCG,EAAOpqI,KAAKuF,IAAIo0H,EAAIkC,IAAI,GAAG/xH,EAAEs/H,GAAIC,GAASY,GAC1CI,EAAOrqI,KAAKuF,IAAIo0H,EAAIkC,IAAI,GAAG/xH,EAAEs/H,GAAIC,GAASY,GACtCE,EAAQN,EAAQO,EAAOC,EAAM,CAC3B1tI,EAAIwtI,EAAQN,GAASO,EAAOC,GAChCD,GAAQztI,EACR0tI,GAAQ1tI,CACV,CACAg9H,EAAIkC,IAAI,GAAG/xH,EAAEs/H,GAAIC,GAAUrpI,KAAKwF,IAAIm0H,EAAIkC,IAAI,GAAG/xH,EAAEs/H,GAAIC,GAASe,GAC9DzQ,EAAIkC,IAAI,GAAG/xH,EAAEs/H,GAAIC,GAAUrpI,KAAKwF,IAAIm0H,EAAIkC,IAAI,GAAG/xH,EAAEs/H,GAAIC,GAASgB,EAChE,CAEJ,CACA,SAASE,EAA6B5Q,EAAK6Q,EAAIC,EAAK7F,EAAKyE,GACvD,IAAID,EAAIxvI,EACJ8wI,EAAM,EACNC,EAAO,EACX,IAAKvB,EAAKxvI,EAAI,EAAGwvI,EAAK/R,GAAQqE,UAAW9hI,IAAKwvI,EAAI,CAChD,IAAIwB,EAAUjR,EAAIkR,KAAKzB,GACnB0B,EAAUnR,EAAImR,QACdC,EAAQH,EAAUE,EAAUF,EAAUE,EAC1C,MAAOlxI,EAAImxI,EACTpF,GAAS6E,EAAG5wI,IAAM,GAClB+rI,GAAS8E,EAAI7wI,IAAM,GACnB8wI,GAAOF,EAAG5wI,GACV+wI,GAAQF,EAAI7wI,GACZA,IAIF,GAFA+/H,EAAImC,GAAG8I,GAAK96H,EAAEs/H,GAAIC,GAAUqB,EAC5B/Q,EAAIkC,IAAI+I,GAAK96H,EAAEs/H,GAAIC,GAAUsB,EACzB/wI,GAAKkxI,EAAS,GACd1B,EACF,KACF,CACAzD,GAAS6E,EAAG5wI,IAAM,GAClB+rI,GAAS8E,EAAI7wI,IAAM,GAEjB,IAAIoxI,EAASrR,EAAIsR,IAAIC,YAAY9B,GAC7B+B,EAAS,EAAIH,EACjBN,EAAMM,EAASR,EAAG5wI,GAClB+wI,EAAOK,EAASP,EAAI7wI,GACpB+/H,EAAImC,GAAG8I,GAAK96H,EAAEs/H,GAAIC,IAAWqB,EAC7B/Q,EAAIkC,IAAI+I,GAAK96H,EAAEs/H,GAAIC,IAAWsB,EAC9BD,EAAMS,EAASX,EAAG5wI,GAClB+wI,EAAOQ,EAASV,EAAI7wI,EAExB,CACA,KAAOwvI,EAAK/R,GAAQqE,UAAW0N,EAC7BzP,EAAImC,GAAG8I,GAAK96H,EAAEs/H,GAAIC,GAAU,EAC5B1P,EAAIkC,IAAI+I,GAAK96H,EAAEs/H,GAAIC,GAAU,CAEjC,CACA,SAAS+B,EAA6BzR,EAAK6Q,EAAIC,EAAK7F,GAClD,IAAIwE,EAAIxvI,EACJ8wI,EAAM,EACNC,EAAO,EACX,IAAKvB,EAAKxvI,EAAI,EAAGwvI,EAAK/R,GAAQoE,UAAW7hI,IAAKwvI,EAAI,CAChD,IAAIiC,EAAU1R,EAAI2R,KAAKlC,GACnBmC,EAAU5R,EAAI4R,QACdR,EAAQM,EAAUE,EAAUF,EAAUE,EAC1C,MAAO3xI,EAAImxI,EACTpF,GAAS6E,EAAG5wI,IAAM,GAClB+rI,GAAS8E,EAAI7wI,IAAM,GACnB8wI,GAAOF,EAAG5wI,GACV+wI,GAAQF,EAAI7wI,GACZA,IAIF,GAFA+/H,EAAImC,GAAG8I,GAAKprI,EAAE4vI,GAAMsB,EACpB/Q,EAAIkC,IAAI+I,GAAKprI,EAAE4vI,GAAMuB,EACjB/wI,GAAK2xI,EAAS,GACdnC,EACF,KACF,CACAzD,GAAS6E,EAAG5wI,IAAM,GAClB+rI,GAAS8E,EAAI7wI,IAAM,GAEjB,IAAIoxI,EAASrR,EAAIsR,IAAIO,YAAYpC,GAC7B+B,EAAS,EAAIH,EACjBN,EAAMM,EAASR,EAAG5wI,GAClB+wI,EAAOK,EAASP,EAAI7wI,GACpB+/H,EAAImC,GAAG8I,GAAKprI,EAAE4vI,IAAOsB,EACrB/Q,EAAIkC,IAAI+I,GAAKprI,EAAE4vI,IAAOuB,EACtBD,EAAMS,EAASX,EAAG5wI,GAClB+wI,EAAOQ,EAASV,EAAI7wI,EAExB,CACA,KAAOwvI,EAAK/R,GAAQoE,UAAW2N,EAC7BzP,EAAImC,GAAG8I,GAAKprI,EAAE4vI,GAAM,EACpBzP,EAAIkC,IAAI+I,GAAKprI,EAAE4vI,GAAM,CAEzB,CACA,SAASqC,EAAkBlN,EAAK2I,EAAasD,EAAIC,EAAK7F,EAAKyE,GACzD,IACI/sG,EAAG1iC,EADH+/H,EAAM4E,EAAIE,eAEd,IAAK7kI,EAAI0iC,EAAI,EAAG1iC,EAAI+/H,EAAImR,UAAWlxI,EAAG,CAGpC,IAFA,IAAI8xI,EAAM,EACNroI,EAAIs2H,EAAIgS,WAAW/xI,GACd1E,EAAI,EAAGA,EAAImO,IAAKnO,IAAKonC,EAAG,CAC/B,IAAI7gC,EAAKyrI,EAAYmC,GAAQ/sG,GAC7BovG,GAAOjwI,CACT,CACA+uI,EAAG5wI,GAAK8xI,CACV,CAEA,IADA/F,GAAS/rI,GAAK+/H,EAAImR,SACbxuG,EAAI1iC,EAAI,EAAGA,EAAI+/H,EAAImR,QAASlxI,IAAK,CACpC,IAAIivI,EAAKlP,EAAIiS,QAAQhyI,GAAG,GACpBiyI,EAAMlS,EAAImS,MAAMxvG,KAAOkuG,EAAG3B,KAC5BA,EACF,MAAOA,GAAMlP,EAAIiS,QAAQhyI,GAAG,GAC1BiyI,GAAOlS,EAAImS,MAAMxvG,GAAKkuG,EAAG3B,KACvBvsG,IACAusG,EAGF,IAAIzlI,EAAI6iI,EAAWtM,EAAIoS,MAAMnH,GAAKhrI,GAGpC,GAFE6wI,EAAI7wI,GAAKoG,KAAKwF,IAAIqmI,EAAKzoI,GAErBu2H,EAAIqS,cAAoB,EAANpH,IAAYvN,GAAQC,WAAY,CAChDl0H,EAAI8iI,EAAYvM,EAAIsS,MAAMrH,GAAKhrI,GAAnC,IACIi7H,EAAI4V,EAAI7wI,GACZ6wI,EAAI7wI,GAAKoG,KAAKwF,IAAIpC,EAAGyxH,EACvB,CACA8E,EAAIsS,MAAMrH,GAAKhrI,GAAK+/H,EAAIoS,MAAMnH,GAAKhrI,GACnC+/H,EAAIoS,MAAMnH,GAAKhrI,GAAKiyI,EACpBlG,GAAS8E,EAAI7wI,IAAM,EACrB,CACA,KAAOA,GAAKy9H,GAAQgL,SAAUzoI,EAC5B4wI,EAAG5wI,GAAK,EACR6wI,EAAI7wI,GAAK,CAEb,CACA,SAASsyI,EAAe3N,EAAK4N,EAAcC,EAAa/L,GACtD,IAAI1G,EAAM4E,EAAIE,eACVF,EAAI8N,cAAgBhH,GAAatQ,qBAA4C,GAAnBoX,EAAa,IAA8B,GAAnBA,EAAa,KACjGA,EAAa,GAAKA,EAAa,GAAK,GAEtC,IAAK,IAAIvH,EAAM,EAAGA,EAAMjL,EAAIM,aAAc2K,IACxCvE,EAAUuE,GAAOvN,GAAQqJ,UACrBnC,EAAI8N,cAAgBhH,GAAarQ,wBACnCmX,EAAavH,GAAO,GAElBrG,EAAI8N,cAAgBhH,GAAapQ,qBACnCkX,EAAavH,GAAO,GAEG,GAArBuH,EAAavH,IACfe,GAAShM,EAAIqS,cAAcpH,IAAQvN,GAAQwL,YACvClJ,EAAIqS,cAAcpH,IAAQvN,GAAQC,aACpC+I,EAAUuE,GAAOvN,GAAQyL,aAG3BzC,EAAUuE,GAAOvN,GAAQC,WACrBqC,EAAIqS,cAAcpH,IAAQvN,GAAQqJ,YACpC/G,EAAIqS,cAAcpH,GAAOvN,GAAQwL,YAE/BlJ,EAAIqS,cAAcpH,IAAQvN,GAAQyL,YACpCnJ,EAAIqS,cAAcpH,GAAOvN,GAAQC,aAGrC8U,EAAYxH,GAAOjL,EAAIqS,cAAcpH,GACrCjL,EAAIqS,cAAcpH,GAAOvE,EAAUuE,EAEvC,CACA,SAAS0H,EAAUlpI,EAAGyxH,EAAG/7G,GACvB,OAAIA,GAAK,EACA1V,EAEL0V,GAAK,EACA+7G,EACLA,EAAI,EACC70H,KAAKsoI,IAAIllI,EAAIyxH,EAAG/7G,GAAK+7G,EAEvB,CACT,CACA,IAAI0X,EAAY,CACd,KACA,KACA,KACA,GACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KAEF,SAASC,EAASC,EAAIC,GAEpB,IADA,IAAIC,EAAO,OACFvD,EAAK,EAAGA,EAAK/R,GAAQqE,QAAU,EAAG0N,IACzC,IAAK,IAAIC,EAAS,EAAGA,EAAS,EAAGA,IAAU,CACzC,IAAIxN,EAAM4Q,EAAG5Q,IAAI/xH,EAAEs/H,GAAIC,GACvB,GAAIxN,EAAM,EAAG,CACX,IAAIz4H,EAAIy4H,EAAM6Q,EACV5Q,EAAK2Q,EAAG3Q,GAAGhyH,EAAEs/H,GAAIC,GACjBvN,EAAK14H,IAELupI,GADE7Q,EAAS,KAAJ14H,EACCmpI,EAAUnD,IAAO,GAAKtD,GAEtByG,EAAUnD,GAAM9D,GAAO5Q,WAAWoH,EAAK14H,GAGrD,CACF,CAEF,OAAOupI,CACT,CACA,IAAIC,EAAY,CACd,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,GACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,OAEF,SAASC,EAASJ,EAAIC,GAEpB,IADA,IAAII,EAAO,SACF1D,EAAK,EAAGA,EAAK/R,GAAQoE,QAAU,EAAG2N,IAAM,CAC/C,IAAIvN,EAAM4Q,EAAG5Q,IAAIriI,EAAE4vI,GACnB,GAAIvN,EAAM,EAAG,CACX,IAAIz4H,EAAIy4H,EAAM6Q,EACV5Q,EAAK2Q,EAAG3Q,GAAGtiI,EAAE4vI,GACbtN,EAAK14H,IAEL0pI,GADEhR,EAAS,KAAJ14H,EACCwpI,EAAUxD,IAAO,GAAKtD,GAEtB8G,EAAUxD,GAAM9D,GAAO5Q,WAAWoH,EAAK14H,GAGrD,CACF,CACA,OAAO0pI,CACT,CACA,SAASC,EAAYpT,EAAKsN,EAAWuD,EAAIjlI,EAAKynI,GAC5C,IAAIpzI,EAAG0iC,EACP,IAAK1iC,EAAI0iC,EAAI,EAAG1iC,EAAI+/H,EAAI4R,UAAW3xI,EAAG,CACpC,IAEI1E,EAFAw2I,EAAM,EACN3qH,EAAI,EAER,IAAK7rB,EAAI,EAAGA,EAAIykI,EAAIsT,WAAWrzI,KAAM1E,IAAKonC,EAAG,CAC3C,IAAI7gC,EAAKwrI,EAAU3qG,GACnBovG,GAAOjwI,EACHslB,EAAItlB,IACNslB,EAAItlB,EACR,CACA+uI,EAAG5wI,GAAK8xI,EACRnmI,EAAI3L,GAAKmnB,EACTisH,EAAIpzI,GAAK8xI,EAAM/R,EAAIuT,YAAYtzI,GAC/B+rI,GAAShM,EAAIuT,YAAYtzI,IAAM,GAC/B+rI,GAAS6E,EAAG5wI,IAAM,GAClB+rI,GAASpgI,EAAI3L,IAAM,GACnB+rI,GAASqH,EAAIpzI,IAAM,EACrB,CACF,CACA,SAASuzI,EAAkBxT,EAAKp0H,EAAKynI,EAAKI,GACxC,IAAIC,EAAiBjF,EAAI93I,OAAS,EAC9BsJ,EAAI,EACJD,EAAIqzI,EAAIpzI,GAAKozI,EAAIpzI,EAAI,GACzB,GAAID,EAAI,EAAG,CACT,IAAIonB,EAAIxb,EAAI3L,GACRmnB,EAAIxb,EAAI3L,EAAI,KACdmnB,EAAIxb,EAAI3L,EAAI,IACd+rI,GAAShM,EAAIsT,WAAWrzI,GAAK+/H,EAAIsT,WAAWrzI,EAAI,GAAK,EAAI,GACzDD,EAAI,IAAU,EAAJonB,EAAQpnB,IAAMA,GAAKggI,EAAIsT,WAAWrzI,GAAK+/H,EAAIsT,WAAWrzI,EAAI,GAAK,IACzE,IAAIo3C,EAAI,EAAIr3C,EACRq3C,EAAIq8F,IACNr8F,EAAIq8F,GACND,EAASxzI,GAAKo3C,CAChB,MACEo8F,EAASxzI,GAAK,EAEhB,IAAKA,EAAI,EAAGA,EAAI+/H,EAAI4R,QAAU,EAAG3xI,IAE/B,GADAD,EAAIqzI,EAAIpzI,EAAI,GAAKozI,EAAIpzI,GAAKozI,EAAIpzI,EAAI,GAC9BD,EAAI,EAAG,CACLonB,EAAIxb,EAAI3L,EAAI,GACZmnB,EAAIxb,EAAI3L,KACVmnB,EAAIxb,EAAI3L,IACNmnB,EAAIxb,EAAI3L,EAAI,KACdmnB,EAAIxb,EAAI3L,EAAI,IACd+rI,GACEhM,EAAIsT,WAAWrzI,EAAI,GAAK+/H,EAAIsT,WAAWrzI,GAAK+/H,EAAIsT,WAAWrzI,EAAI,GAAK,EAAI,GAE1ED,EAAI,IAAU,EAAJonB,EAAQpnB,IAAMA,GAAKggI,EAAIsT,WAAWrzI,EAAI,GAAK+/H,EAAIsT,WAAWrzI,GAAK+/H,EAAIsT,WAAWrzI,EAAI,GAAK,IAC7Fo3C,EAAI,EAAIr3C,EACRq3C,EAAIq8F,IACNr8F,EAAIq8F,GACND,EAASxzI,GAAKo3C,CAChB,MACEo8F,EAASxzI,GAAK,EAKlB,GAFA+rI,GAAS/rI,GAAK+/H,EAAI4R,QAAU,GAC5B5xI,EAAIqzI,EAAIpzI,EAAI,GAAKozI,EAAIpzI,GACjBD,EAAI,EAAG,CACLonB,EAAIxb,EAAI3L,EAAI,GACZmnB,EAAIxb,EAAI3L,KACVmnB,EAAIxb,EAAI3L,IACV+rI,GAAShM,EAAIsT,WAAWrzI,EAAI,GAAK+/H,EAAIsT,WAAWrzI,GAAK,EAAI,GACzDD,EAAI,IAAU,EAAJonB,EAAQpnB,IAAMA,GAAKggI,EAAIsT,WAAWrzI,EAAI,GAAK+/H,EAAIsT,WAAWrzI,GAAK,IACrEo3C,EAAI,EAAIr3C,EACRq3C,EAAIq8F,IACNr8F,EAAIq8F,GACND,EAASxzI,GAAKo3C,CAChB,MACEo8F,EAASxzI,GAAK,EAEhB+rI,GAAS/rI,GAAK+/H,EAAI4R,QAAU,EAC9B,CACA,IAAI/J,EAAU,EACZ,aACA,WACA,YACA,UACA,YACA,UACA,UACA,UACA,aACA,SA6RF,SAAS8L,EAAqB/O,EAAKhqI,EAAQswI,EAAQD,EAAK2C,EAAQN,EAAWE,EAASC,GAClF,IAAIzN,EAAM4E,EAAIE,eACd,GAAImG,EAAM,EACRiB,EAAIf,SAASnL,EAAKwN,EAAQC,GAAaxC,EAAKrwI,EAAQswI,QAC/C,GAAW,GAAPD,EACT,IAAK,IAAItoG,EAAI+6F,GAAQwH,QAAU,EAAGviG,GAAK,IAAKA,EAAG,CAC7C,IAAI9iC,EAAI2tI,EAAQC,EAAa,GAAG9qG,GAC5BxjB,EAAIquH,EAAQC,EAAa,GAAG9qG,GAChC6qG,EAAQC,EAAa,GAAG9qG,IAAM9iC,EAAIsf,GAAKwsH,GAAO7Q,MAAQ,GACtD0S,EAAQC,EAAa,GAAG9qG,IAAM9iC,EAAIsf,GAAKwsH,GAAO7Q,MAAQ,EACxD,CAEFwS,EAAU,GAAKL,EAAwBO,EAAQC,EAAa,GAAG,IAC/DH,EAAU,IAAMA,EAAU,GAC1B,IAAS3qG,EAAI+6F,GAAQwH,QAAU,EAAI,EAAGviG,GAAK,IAAKA,EAAG,CACjD,IAAIkrG,EAAKL,EAAQC,EAAa,GAAG/P,GAAQwH,QAAU,EAAIviG,GACnDmrG,EAAKN,EAAQC,EAAa,GAAG/P,GAAQwH,QAAU,EAAIviG,GACvD2qG,EAAU5P,GAAQwH,QAAU,EAAIviG,GAAKsqG,EACb,IAArBY,EAAKA,EAAKC,EAAKA,GAEpB,CAEE,IAAIC,EAAc,EAClB,IAASprG,EAAI,GAAIA,EAAI+6F,GAAQqL,SAAUpmG,IACrCorG,GAAeT,EAAU3qG,GAG7B,GAFEq9F,EAAI+F,SAASkF,GAAO8C,EAElBnJ,EAAI0C,SAAU,CAChB,IAAS3kG,EAAI,EAAGA,EAAI+6F,GAAQqL,SAAUpmG,IACpCq9F,EAAIuH,MAAMG,OAAOkG,GAAQ3C,GAAKtoG,GAAKq9F,EAAIuH,MAAMyG,YAAY/C,GAAKtoG,GAC9Dq9F,EAAIuH,MAAMyG,YAAY/C,GAAKtoG,GAAK2qG,EAAU3qG,GAE5Cq9F,EAAIuH,MAAMtB,GAAG2H,GAAQ3C,GAAOjL,EAAIiG,GAAGgF,EACrC,CACF,CACA,SAAS2I,EAAqBhP,EAAKhqI,EAAQswI,EAAQD,EAAKyE,EAAQnC,EAAaG,EAASC,GACpF,IAAI3N,EAAM4E,EAAIE,eAId,GAHc,GAAV4K,GAAezE,EAAM,GACvBiB,EAAInB,UAAU/K,EAAK0N,EAAQC,GAAa1C,EAAKrwI,EAAQswI,GAE5C,GAAPD,EACF,IAAK,IAAItoG,EAAI+6F,GAAQsL,UAAY,EAAGrmG,GAAK,IAAKA,EAAG,CAC/C,IAAI9iC,EAAI6tI,EAAQC,EAAa,GAAG+B,GAAQ/sG,GACpCxjB,EAAIuuH,EAAQC,EAAa,GAAG+B,GAAQ/sG,GACxC+qG,EAAQC,EAAa,GAAG+B,GAAQ/sG,IAAM9iC,EAAIsf,GAAKwsH,GAAO7Q,MAAQ,GAC9D4S,EAAQC,EAAa,GAAG+B,GAAQ/sG,IAAM9iC,EAAIsf,GAAKwsH,GAAO7Q,MAAQ,EAChE,CAEFyS,EAAYmC,GAAQ,GAAKhC,EAAQC,EAAa,GAAG+B,GAAQ,GACzDnC,EAAYmC,GAAQ,IAAMnC,EAAYmC,GAAQ,GAC9C,IAAS/sG,EAAI+6F,GAAQsL,UAAY,EAAI,EAAGrmG,GAAK,IAAKA,EAAG,CACnD,IAAIkrG,EAAKH,EAAQC,EAAa,GAAG+B,GAAQhS,GAAQsL,UAAY,EAAIrmG,GAC7DmrG,EAAKJ,EAAQC,EAAa,GAAG+B,GAAQhS,GAAQsL,UAAY,EAAIrmG,GACjE4qG,EAAYmC,GAAQhS,GAAQsL,UAAY,EAAIrmG,GAAKsqG,EACzB,IAArBY,EAAKA,EAAKC,EAAKA,GAEpB,CACF,CACA,SAAS+F,EAAwCjP,EAAKgJ,EAAQ3C,EAAKqC,GACjE,IAAItN,EAAM4E,EAAIE,eACc,GAAxBF,EAAIqJ,kBAAyBhD,EAAM,IACrCjL,EAAIiE,YAAY2J,GAAQ3C,GAAOjL,EAAIkO,iBAAiBjD,GACpDjL,EAAIkO,iBAAiBjD,GAAOiC,EAAuBI,EAAWtN,GAElE,CA3VA3qI,KAAKwxI,iBAAmB,SAASjC,EAAKhqI,EAAQswI,EAAQ0C,EAAQkG,EAAeC,EAAkBC,EAAgBC,EAAmBvM,EAAQ+K,GACxI,IAQIyB,EAAQjJ,EACRhrI,EAAG1E,EAAGonC,EAAG0U,EACTo4F,EAAIC,EAEJyE,EA0OEjE,EAtPFlQ,EAAM4E,EAAIE,eACVsP,EAAUtI,GAAc,CAAC,EAAGpO,GAAQwH,UACpCmP,EAAUvI,GAAc,CAAC,EAAG,EAAGpO,GAAQsL,YACvCsL,EAAOzI,GAAYnO,GAAQgL,OAAS,GACpC6L,EAAO1I,GAAYnO,GAAQgL,OAAS,GACpCoI,EAAMjF,GAAYnO,GAAQgL,OAAS,GACnChC,EAAYqF,GAAU,GACtByG,EAAezG,GAAU,GAIzByI,EAAa1I,GAAc,CAAC,EAAG,MAE/B2I,EAAa1I,GAAUrO,GAAQgL,OAAS,GACxCgM,EAAa3I,GAAUrO,GAAQgL,OAAS,GAW5C,IAVAkD,GAASx2G,KAAKs/G,EAAY,GAC1BR,EAASlU,EAAIM,aACTsE,EAAIv5H,MAAQ+2H,GAASG,eACvB2R,EAAS,GAETC,EADEvP,EAAI+B,KAAO6E,GAAU9P,QACC,GAAfsE,EAAI2U,QAAe,EAAI3U,EAAI4U,SAAW5U,EAAI2U,QAAU,GACpD/P,EAAI+B,KAAO6E,GAAU5P,QAAUgJ,EAAI+B,KAAO6E,GAAU1P,UAAY8I,EAAI+B,KAAO6E,GAAU7P,OACrF,GAEA,EACNsP,EAAM,EAAGA,EAAMjL,EAAIM,aAAc2K,IAAO,CAC3C,IAAI4J,EAAUj6I,EAAOqwI,GACjB6J,GAAY5J,EAAS,IAAM,IAAM6B,EAAW,IAChD,IAAKxxI,EAAI,EAAGA,EAAI,IAAKA,IAAK,CACxB,IAAIw5I,GAAMC,GAGV,IAFAD,GAAOF,EAAQC,GAAYv5I,EAAI,IAC/By5I,GAAO,EACFryG,EAAI,EAAGA,GAAKoqG,EAAW,GAAK,EAAI,EAAGpqG,GAAK,EAC3CoyG,IAAQlN,EAAQllG,IAAMkyG,EAAQC,GAAYv5I,EAAIonC,GAAKkyG,EAAQC,GAAYv5I,EAAIwxI,EAAWpqG,IACtFqyG,IAAQnN,EAAQllG,EAAI,IAAMkyG,EAAQC,GAAYv5I,EAAIonC,EAAI,GAAKkyG,EAAQC,GAAYv5I,EAAIwxI,EAAWpqG,EAAI,IAEpG6xG,EAAWvJ,GAAK1vI,GAAKw5I,GAAOC,EAC9B,CACAlB,EAAclG,GAAQ3C,GAAK9I,GAAGxzH,OAAOqxH,EAAImC,GAAG8I,IAC5C6I,EAAclG,GAAQ3C,GAAK/I,IAAIvzH,OAAOqxH,EAAIkC,IAAI+I,IAC1CiJ,EAAS,IACXH,EAAiBnG,GAAQ3C,GAAK9I,GAAGxzH,OAAOqxH,EAAImC,GAAG8I,EAAM,IACrD8I,EAAiBnG,GAAQ3C,GAAK/I,IAAIvzH,OAAOqxH,EAAIkC,IAAI+I,EAAM,IAE3D,CACA,IAAKA,EAAM,EAAGA,EAAMiJ,EAAQjJ,IAAO,CACjC,IAAIuC,GACAE,GAKAuH,GAJAC,GAAcrJ,GAAY,IAC1BsJ,GAAW,CAAC,EAAG,EAAG,EAAG,GACrBC,GAAmBvJ,GAAY,IAC/BwJ,GAAkB,EAElBzpI,GAAMigI,GAAYnO,GAAQgL,QAC1B2K,GAAMxH,GAAYnO,GAAQgL,QAC1B4M,GAAa,CAAC,EAAG,EAAG,EAAG,GACvBhI,GAAYzB,GAAYnO,GAAQqL,UAChCwE,GAAczB,GAAc,CAAC,EAAGpO,GAAQuL,aAG5C,IAFA+C,GAAShM,EAAImR,SAAWzT,GAAQgL,QAChCsD,GAAShM,EAAI4R,SAAWlU,GAAQgL,QAC3BntI,EAAI,EAAGA,EAAI,EAAGA,IACjB25I,GAAY35I,GAAKykI,EAAI2H,MAAM4N,iBAAiBtK,GAAK1vI,EAAI,GACrDywI,GAAShM,EAAI2H,MAAM4N,iBAAiBtK,GAAK1vI,EAAI,GAAK,GAClD65I,GAAiB75I,GAAK25I,GAAY35I,GAAKykI,EAAI2H,MAAM4N,iBAAiBtK,GAAK1vI,EAAI,GAC3E45I,GAAS,IAAMD,GAAY35I,GAE7B,GAAW,GAAP0vI,EACF,IAAK1vI,EAAI,EAAGA,EAAI,IAAKA,IAAK,CACxB,IAAIsE,GAAGsf,GACPtf,GAAI20I,EAAW,GAAGj5I,GAClB4jB,GAAIq1H,EAAW,GAAGj5I,GAClBi5I,EAAW,GAAGj5I,GAAKsE,GAAIsf,GACvBq1H,EAAW,GAAGj5I,GAAKsE,GAAIsf,EACzB,CAGA,IAAIq2H,GAAKhB,EAAiB,EAANvJ,GAChBwK,GAAQ,EACZ,IAAKl6I,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAGtB,IAFA,IAAIm6I,GAAMD,GAAQ,GACdr0E,GAAK,EACFq0E,GAAQC,GAAKD,KACdr0E,GAAK/6D,KAAK01G,IAAIy5B,GAAGC,OACnBr0E,GAAK/6D,KAAK01G,IAAIy5B,GAAGC,MAErBzV,EAAI2H,MAAM4N,iBAAiBtK,GAAK1vI,GAAK25I,GAAY35I,EAAI,GAAK6lE,GAC1D+zE,GAAS,EAAI55I,EAAI,IAAM6lE,GACnBA,GAAK8zE,GAAY35I,EAAI,EAAI,IAC3BywI,GAASkJ,GAAY35I,EAAI,EAAI,GAAK,GAClC6lE,IAAU8zE,GAAY35I,EAAI,EAAI,IAE9B6lE,GADS8zE,GAAY35I,EAAI,EAAI,GAAU,GAAL6lE,GAC7B8zE,GAAY35I,EAAI,EAAI,IAAW,GAAL6lE,IAE1B,EACPg0E,GAAiB75I,EAAI,GAAK6lE,EAC5B,CAEF,GAAIwjE,EAAI0C,SAAU,CAChB,IAAI79H,GAAI2rI,GAAiB,GACzB,IAAK75I,EAAI,EAAGA,EAAI,GAAIA,IACdkO,GAAI2rI,GAAiB75I,KACvBkO,GAAI2rI,GAAiB75I,IAEzBykI,EAAIuH,MAAME,IAAImG,GAAQ3C,GAAOjL,EAAIuH,MAAMoO,SAAS1K,GAChDjL,EAAIuH,MAAMoO,SAAS1K,GAAOxhI,EAC5B,CAEA,IADAwrI,GAAyB,GAAPhK,EAAWjL,EAAI2H,MAAMiO,aAAe5V,EAAI2H,MAAMkO,WAC3Dt6I,EAAI,EAAGA,EAAI,GAAIA,IACO,GAArB+5I,GAAW/5I,EAAI,IAAW65I,GAAiB75I,GAAK05I,KAClDK,GAAW/5I,EAAI,GAAKA,EAAI,EAAI,GAGhC,IAAKA,EAAI,EAAGA,EAAI,EAAGA,IAAK,CACtB,IAAIkmG,GACA0zC,GAAS55I,EAAI,GAAK45I,GAAS55I,IAC7BywI,GAASmJ,GAAS55I,GAAK,GACvBkmG,GAAQ0zC,GAAS55I,EAAI,GAAK45I,GAAS55I,KAEnCywI,GAASmJ,GAAS55I,EAAI,GAAK,GAC3BkmG,GAAQ0zC,GAAS55I,GAAK45I,GAAS55I,EAAI,IAEjCkmG,GAAQ,MACV6zC,GAAW/5I,GAAK,EACP,GAALA,IACF+5I,GAAW,GAAK,GAEtB,CAsCA,IArCqB,GAAjBA,GAAW,IAAyC,GAA9BtV,EAAI2H,MAAMmO,YAAY7K,KAC9CqK,GAAW,GAAK,GAEgB,GAA9BtV,EAAI2H,MAAMmO,YAAY7K,IAAaqK,GAAW,GAAKA,GAAW,GAAKA,GAAW,GAAKA,GAAW,IAAM,IACtGD,GAAkB,EACG,GAAjBC,GAAW,IAA4B,GAAjBA,GAAW,KACnCA,GAAW,GAAK,GACG,GAAjBA,GAAW,IAA4B,GAAjBA,GAAW,KACnCA,GAAW,GAAK,GACG,GAAjBA,GAAW,IAA4B,GAAjBA,GAAW,KACnCA,GAAW,GAAK,IAEhBrK,EAAM,EACRuH,EAAavH,GAAOoK,GAEG,GAAnBA,KACF7C,EAAa,GAAKA,EAAa,GAAK,GAGxC9K,EAAOuD,GAAOjL,EAAI+F,SAASkF,GAC3ByC,GAAU2G,EACV7G,GAAU4G,EACV/G,EACEzI,EACA0I,GACAC,GACAC,GACM,EAANvC,EACAyC,GACM,EAANzC,EACA2C,EACA3C,EACArwI,EACAswI,GAEFkI,EAAYpT,EAAKsN,GAAWgH,EAAM1oI,GAAKynI,IACvCG,EAAkBxT,EAAKp0H,GAAKynI,GAAKoB,GAC5B/E,EAAS,EAAGA,EAAS,EAAGA,IAAU,CACrC,IAAIqB,GAAKC,GAGT,IAFAc,EAAkBlN,EAAK2I,GAAagH,EAAMzD,EAAK7F,EAAKyE,GACpDkB,EAA6B5Q,EAAKuU,EAAMzD,EAAK7F,EAAKyE,GAC7CD,EAAK,EAAGA,EAAK/R,GAAQqE,QAAS0N,IAAM,CAGvC,GAFAuB,GAAOhR,EAAIkC,IAAI+I,GAAK96H,EAAEs/H,GAAIC,GAC1BsB,IAAQrE,EACJ2I,GAAW5F,IAAW,GAA+B,GAA1B4F,GAAW5F,EAAS,GAAS,CAC1D,IAAIhpC,GAAgB,GAAVgpC,EAAcA,EAAS,EAAI,EACjCtuE,GAAKuxE,EACP3S,EAAIkC,IAAI+I,GAAK96H,EAAEs/H,GAAI/oC,IACnBsqC,GACApE,EAAkBuH,GAEpBnD,GAAO3qI,KAAKwF,IAAImlI,GAAM5vE,GACxB,CACA,GAA0B,GAAtBk0E,GAAW5F,GAAc,CACvBhpC,GAAgB,GAAVgpC,EAAcA,EAAS,EAAI,EACjCtuE,GAAKuxE,EACP3S,EAAIkC,IAAI+I,GAAK96H,EAAEs/H,GAAI/oC,IACnBsqC,GACAnE,EAAkBsH,GAEpBnD,GAAO3qI,KAAKwF,IAAImlI,GAAM5vE,GACxB,MAAO,GAAc,GAAVsuE,GAAyC,GAA1B4F,GAAW5F,EAAS,IAAqB,GAAVA,GAA6C,GAA9B1P,EAAI2H,MAAMmO,YAAY7K,GAAW,CACnGvkC,GAAgB,GAAVgpC,EAAcA,EAAS,EAAI,EACjCtuE,GAAKuxE,EACP3S,EAAIkC,IAAI+I,GAAK96H,EAAEs/H,GAAI/oC,IACnBsqC,GACAnE,EAAkBsH,GAEpBnD,GAAO3qI,KAAKwF,IAAImlI,GAAM5vE,GACxB,CACA2vE,GAAMmE,GAAqB,EAATxF,EAAa,GAAKwF,GAAqB,EAATxF,EAAa,GAAKwF,GAAqB,EAATxF,EAAa,GACzD,EAA9BwF,GAAqB,EAATxF,EAAa,GAASqB,KACpCC,IAAQ,GAC0B,EAA9BkE,GAAqB,EAATxF,EAAa,GAASqB,KACpCC,IAAQ,KAEZhR,EAAIkC,IAAI+I,GAAK96H,EAAEs/H,GAAIC,GAAUsB,EAC/B,CACF,CAIE,IAHFhR,EAAI2H,MAAMmO,YAAY7K,GAAOqK,GAAW,GACxCj+F,EAAI,EAEGp3C,EAAI,EAAGA,EAAI+/H,EAAI4R,QAAS3xI,IAAK,CAChC,IAAIivI,GAAKlP,EAAI+V,MAAM91I,GAAG,GAClB+1I,GAAM1B,EAAKpF,IAAMT,EAAIgG,EAAWvF,KAChCgD,GAAMlS,EAAIiW,MAAM5+F,KAAO2+F,GAC3B,QAAS9G,IAAMlP,EAAI+V,MAAM91I,GAAG,GAC1B+1I,GAAM1B,EAAKpF,IAAMT,EAAIgG,EAAWvF,KAChCgD,GAAMnD,EAASmD,GAAKlS,EAAIiW,MAAM5+F,KAAO2+F,GAAK9G,GAAIA,GAAKjvI,EAAG+/H,EAAK,GAE7DkS,IAAO,iBACHlS,EAAIqS,cAAoB,EAANpH,IAAYvN,GAAQC,WACxCmT,EAAI7wI,GAAKiyI,GAETpB,EAAI7wI,GAAK0yI,EACPtsI,KAAKwF,IACHqmI,GACA7rI,KAAKwF,IAAIugI,EAASpM,EAAIkW,KAAKjL,GAAKhrI,GAAIosI,EAAUrM,EAAImW,KAAKlL,GAAKhrI,KAE9DiyI,GACAiC,GAGJnU,EAAImW,KAAKlL,GAAKhrI,GAAK+/H,EAAIkW,KAAKjL,GAAKhrI,GACjC+/H,EAAIkW,KAAKjL,GAAKhrI,GAAKiyI,EACrB,CAEF,KAAOjyI,GAAKy9H,GAAQgL,SAAUzoI,EAC5Bq0I,EAAKr0I,GAAK,EACV6wI,EAAI7wI,GAAK,EAEXwxI,EAA6BzR,EAAKsU,EAAMxD,EAAK7F,EAC/C,EACIrG,EAAIv5H,MAAQ+2H,GAASE,QAAUsC,EAAIv5H,MAAQ+2H,GAASG,cAClDqC,EAAIwR,aAAe,GACrB5G,EAA0B5K,EAAKA,EAAIwR,cAGnCxR,EAAIv5H,MAAQ+2H,GAASG,gBAEvBoN,EAAO3P,GACPkQ,EAAQtL,EAAIsL,MACR7pI,KAAK01G,IAAIm0B,GAAS,GACpBD,EAASjQ,EAAKkQ,EAAOtL,EAAIyR,SAAWrW,EAAI+D,IAAInnD,SAIhD,IADA21D,EAAe3N,EAAK4N,EAAcC,EAAa/L,GAC1CuE,EAAM,EAAGA,EAAMiJ,EAAQjJ,IAAO,CACjC,IAAIqL,GAEA1uI,GACAkrI,GAFAyD,GAAS,EAGTtL,EAAM,GACRqL,GAAMrC,EACNsC,IAAU,EACV3uI,GAAO81H,GAAQqJ,UACX0L,EAAY,IAAM/U,GAAQC,YAAc8U,EAAY,IAAM/U,GAAQC,aACpE/1H,GAAO81H,GAAQC,YAEjBmV,GAAKiB,EAAiBnG,GAAQ3C,EAAM,KAEpCqL,GAAMtC,EACNuC,GAAS,EACT3uI,GAAO6qI,EAAYxH,GACnB6H,GAAKgB,EAAclG,GAAQ3C,IAEzBrjI,IAAQ81H,GAAQC,WAClB2Y,GAAIC,GAAStL,GAAO4H,EAASC,GAAI9S,EAAI+S,eAErCuD,GAAIC,GAAStL,GAAOiI,EAASJ,GAAI9S,EAAI+S,eACnCnO,EAAI0C,WACNtH,EAAIuH,MAAMtB,GAAG2H,GAAQ3C,GAAOqL,GAAIC,GAAStL,GAC7C,CACA,OAAO,CACT,EAkEA,IAAIuL,EAAW,EACb,aACA,WACA,YACA,UACA,YACA,UACA,UACA,UACA,aACA,SAEF,SAASC,EAAwB7R,EAAKhqI,EAAQswI,EAAQ0C,EAAQkG,EAAeC,EAAkBrM,EAAQgP,EAAkBpB,EAAY9C,GAKnI,IAJA,IAAIgC,EAAa1I,GAAc,CAAC,EAAG,MAC/B9L,EAAM4E,EAAIE,eACV6R,EAAY3W,EAAIM,aAChBsW,EAAYhS,EAAIv5H,MAAQ+2H,GAASG,aAAe,EAAIoU,EAC/C1L,EAAM,EAAGA,EAAM0L,EAAW1L,IAAO,CACxC4L,OAASj8I,EAAOqwI,GAEhB,IADA,IAAI6J,EAAY5J,EAAS,IAAM,IAAM6B,EAAW,IACvCxxI,EAAI,EAAGA,EAAI,IAAKA,IAAK,CAC5B,IAAIw5I,EAAMC,EACVD,EAAO8B,OAAO/B,EAAYv5I,EAAI,IAC9By5I,EAAO,EACP,IAAK,IAAIryG,EAAI,EAAGA,GAAKoqG,EAAW,GAAK,EAAI,EAAGpqG,GAAK,EAC/CoyG,GAAQyB,EAAS7zG,IAAMk0G,OAAO/B,EAAYv5I,EAAIonC,GAAKk0G,OAAO/B,EAAYv5I,EAAIwxI,EAAWpqG,IACrFqyG,GAAQwB,EAAS7zG,EAAI,IAAMk0G,OAAO/B,EAAYv5I,EAAIonC,EAAI,GAAKk0G,OAAO/B,EAAYv5I,EAAIwxI,EAAWpqG,EAAI,IAEnG6xG,EAAWvJ,GAAK1vI,GAAKw5I,EAAOC,CAC9B,CACAlB,EAAclG,GAAQ3C,GAAK9I,GAAGxzH,OAAOqxH,EAAImC,GAAG8I,IAC5C6I,EAAclG,GAAQ3C,GAAK/I,IAAIvzH,OAAOqxH,EAAIkC,IAAI+I,IAC1C2L,EAAY,IACd7C,EAAiBnG,GAAQ3C,GAAK9I,GAAGxzH,OAAOqxH,EAAImC,GAAG8I,EAAM,IACrD8I,EAAiBnG,GAAQ3C,GAAK/I,IAAIvzH,OAAOqxH,EAAIkC,IAAI+I,EAAM,IAE3D,CACA,IAASA,EAAM,EAAGA,EAAM2L,EAAW3L,IAAO,CACxC,IAAImK,EAAmBvJ,GAAY,IAC/BqJ,EAAcrJ,GAAY,IAC1BsJ,EAAW,CAAC,EAAG,EAAG,EAAG,GACrBK,EAAKhB,EAAiB,EAANvJ,GAChBwK,EAAQ,EACRR,EAAyB,GAAPhK,EAAWjL,EAAI2H,MAAMiO,aAAe5V,EAAI2H,MAAMkO,WAChER,EAAkB,EACtB,GAAW,GAAPpK,EACF,IAAS1vI,EAAI,EAAGonC,EAAI,IAAKA,EAAI,IAAKpnC,IAAKonC,EAAG,CACxC,IAAI9iC,EAAI20I,EAAW,GAAGj5I,GAClB4jB,EAAIq1H,EAAW,GAAGj5I,GACtBi5I,EAAW,GAAGj5I,GAAKsE,EAAIsf,EACvBq1H,EAAW,GAAGj5I,GAAKsE,EAAIsf,CACzB,CAEF,IAAS5jB,EAAI,EAAGA,EAAI,EAAGA,IACrB25I,EAAY35I,GAAKykI,EAAI2H,MAAM4N,iBAAiBtK,GAAK1vI,EAAI,GACrDywI,GAAShM,EAAI2H,MAAM4N,iBAAiBtK,GAAK1vI,EAAI,GAAK,GAClD65I,EAAiB75I,GAAK25I,EAAY35I,GAAKykI,EAAI2H,MAAM4N,iBAAiBtK,GAAK1vI,EAAI,GAC3E45I,EAAS,IAAMD,EAAY35I,GAE7B,IAASA,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAG1B,IAFA,IAAIm6I,EAAMD,EAAQ,GACdr0E,EAAK,EACFq0E,EAAQC,EAAKD,IACdr0E,EAAK/6D,KAAK01G,IAAIy5B,EAAGC,MACnBr0E,EAAK/6D,KAAK01G,IAAIy5B,EAAGC,KAErBzV,EAAI2H,MAAM4N,iBAAiBtK,GAAK1vI,GAAK25I,EAAY35I,EAAI,GAAK6lE,EAC1D+zE,EAAS,EAAI55I,EAAI,IAAM6lE,EACnBA,EAAK8zE,EAAY35I,EAAI,EAAI,IAC3BywI,GAASkJ,EAAY35I,EAAI,EAAI,GAAK,GAClC6lE,GAAU8zE,EAAY35I,EAAI,EAAI,IAE9B6lE,EADS8zE,EAAY35I,EAAI,EAAI,GAAU,GAAL6lE,EAC7B8zE,EAAY35I,EAAI,EAAI,IAAW,GAAL6lE,GAE1B,EAEPg0E,EAAiB75I,EAAI,GAAK6lE,CAC5B,CACA,IAAS7lE,EAAI,EAAGA,EAAI,IAAKA,EAAG,CAC1B,IAAIw1I,EAAMmE,EAAgB,EAAJ35I,EAAQ,GAAK25I,EAAgB,EAAJ35I,EAAQ,GAAK25I,EAAgB,EAAJ35I,EAAQ,GAC5Eu7I,EAAS,EACgB,EAAzB5B,EAAgB,EAAJ35I,EAAQ,GAASw1I,IAC/B+F,GAAU,GACmB,EAAzB5B,EAAgB,EAAJ35I,EAAQ,GAASw1I,IAC/B+F,GAAU,KAGdJ,EAAiBzL,GAAK1vI,GAAKu7I,CAC7B,CACA,GAAIlS,EAAI0C,SAAU,CAChB,IAAI79H,EAAI2rI,EAAiB,GACzB,IAAS75I,EAAI,EAAGA,EAAI,GAAIA,IAClBkO,EAAI2rI,EAAiB75I,KACvBkO,EAAI2rI,EAAiB75I,IAGzBykI,EAAIuH,MAAME,IAAImG,GAAQ3C,GAAOjL,EAAIuH,MAAMoO,SAAS1K,GAChDjL,EAAIuH,MAAMoO,SAAS1K,GAAOxhI,CAC5B,CACA,IAASlO,EAAI,EAAGA,EAAI,GAAIA,IACQ,GAA1B+5I,EAAWrK,GAAK1vI,EAAI,IAAW65I,EAAiB75I,GAAK05I,IACvDK,EAAWrK,GAAK1vI,EAAI,GAAKA,EAAI,EAAI,GAGrC,IAASA,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,IAAIgjD,EAAI42F,EAAS55I,EAAI,GACjBK,EAAIu5I,EAAS55I,GACb6rB,EAAI/gB,KAAKuF,IAAI2yC,EAAG3iD,GAChBwrB,EAAI,KACFm3B,EAAI,IAAM3iD,GAAKA,EAAI,IAAM2iD,IAClB,GAALhjD,GAAU+5I,EAAWrK,GAAK,IAAMqK,EAAWrK,GAAK1vI,KAClD+5I,EAAWrK,GAAK,GAAK,GAEvBqK,EAAWrK,GAAK1vI,GAAK,EAG3B,CACI+5I,EAAWrK,GAAK,IAAMjL,EAAI2H,MAAMmO,YAAY7K,KAC9CqK,EAAWrK,GAAK,GAAK,GAEW,GAA9BjL,EAAI2H,MAAMmO,YAAY7K,IAAaqK,EAAWrK,GAAK,GAAKqK,EAAWrK,GAAK,GAAKqK,EAAWrK,GAAK,GAAKqK,EAAWrK,GAAK,IAAM,IAC1HoK,EAAkB,EACQ,GAAtBC,EAAWrK,GAAK,IAAiC,GAAtBqK,EAAWrK,GAAK,KAC7CqK,EAAWrK,GAAK,GAAK,GAEG,GAAtBqK,EAAWrK,GAAK,IAAiC,GAAtBqK,EAAWrK,GAAK,KAC7CqK,EAAWrK,GAAK,GAAK,GAEG,GAAtBqK,EAAWrK,GAAK,IAAiC,GAAtBqK,EAAWrK,GAAK,KAC7CqK,EAAWrK,GAAK,GAAK,IAGrBA,EAAM,EACRuH,EAAavH,GAAOoK,EAEG,GAAnBA,IACF7C,EAAa,GAAKA,EAAa,GAAK,GAGxC9K,EAAOuD,GAAOjL,EAAI+F,SAASkF,EAC7B,CACF,CACA,SAAS8L,EAAsB/W,EAAKiL,EAAKyE,GACvC,GAAc,GAAVA,EACF,IAAK,IAAIzvI,EAAI,EAAGA,EAAI+/H,EAAImR,QAASlxI,IAC/B+/H,EAAIsS,MAAMrH,GAAKhrI,GAAK+/H,EAAIoS,MAAMnH,GAAKhrI,GACnC+/H,EAAIoS,MAAMnH,GAAKhrI,GAAK,CAG1B,CACA,SAAS+2I,EAAsBhX,EAAKiL,GAClC,IAAK,IAAIhrI,EAAI,EAAGA,EAAI+/H,EAAI4R,QAAS3xI,IAC/B+/H,EAAImW,KAAKlL,GAAKhrI,GAAK+/H,EAAIkW,KAAKjL,GAAKhrI,GACjC+/H,EAAIkW,KAAKjL,GAAKhrI,GAAK,CAEvB,CACA,SAASg3I,GAAyBjX,EAAKp0H,EAAKynI,EAAKI,GAC/C,IAAIC,EAAiBjF,EAAI93I,OAAS,EAC9BsJ,EAAI,EACJD,EAAIqzI,EAAIpzI,GAAKozI,EAAIpzI,EAAI,GACzB,GAAID,EAAI,EAAG,CACT,IAAIonB,EAAIxb,EAAI3L,GACRmnB,EAAIxb,EAAI3L,EAAI,KACdmnB,EAAIxb,EAAI3L,EAAI,IACd+rI,GAAShM,EAAIgS,WAAW/xI,GAAK+/H,EAAIgS,WAAW/xI,EAAI,GAAK,EAAI,GACzDD,EAAI,IAAU,EAAJonB,EAAQpnB,IAAMA,GAAKggI,EAAIgS,WAAW/xI,GAAK+/H,EAAIgS,WAAW/xI,EAAI,GAAK,IACzE,IAAIo3C,EAAI,EAAIr3C,EACRq3C,EAAIq8F,IACNr8F,EAAIq8F,GACND,EAASxzI,GAAKo3C,CAChB,MACEo8F,EAASxzI,GAAK,EAEhB,IAAKA,EAAI,EAAGA,EAAI+/H,EAAImR,QAAU,EAAGlxI,IAG/B,GAFAD,EAAIqzI,EAAIpzI,EAAI,GAAKozI,EAAIpzI,GAAKozI,EAAIpzI,EAAI,GAClC+rI,GAAS/rI,EAAI,EAAI+/H,EAAImR,SACjBnxI,EAAI,EAAG,CACLonB,EAAIxb,EAAI3L,EAAI,GACZmnB,EAAIxb,EAAI3L,KACVmnB,EAAIxb,EAAI3L,IACNmnB,EAAIxb,EAAI3L,EAAI,KACdmnB,EAAIxb,EAAI3L,EAAI,IACd+rI,GACEhM,EAAIgS,WAAW/xI,EAAI,GAAK+/H,EAAIgS,WAAW/xI,GAAK+/H,EAAIgS,WAAW/xI,EAAI,GAAK,EAAI,GAE1ED,EAAI,IAAU,EAAJonB,EAAQpnB,IAAMA,GAAKggI,EAAIgS,WAAW/xI,EAAI,GAAK+/H,EAAIgS,WAAW/xI,GAAK+/H,EAAIgS,WAAW/xI,EAAI,GAAK,IAC7Fo3C,EAAI,EAAIr3C,EACRq3C,EAAIq8F,IACNr8F,EAAIq8F,GACND,EAASxzI,GAAKo3C,CAChB,MACEo8F,EAASxzI,GAAK,EAKlB,GAFA+rI,GAAS/rI,GAAK+/H,EAAImR,QAAU,GAC5BnxI,EAAIqzI,EAAIpzI,EAAI,GAAKozI,EAAIpzI,GACjBD,EAAI,EAAG,CACLonB,EAAIxb,EAAI3L,EAAI,GACZmnB,EAAIxb,EAAI3L,KACVmnB,EAAIxb,EAAI3L,IACV+rI,GAAShM,EAAIgS,WAAW/xI,EAAI,GAAK+/H,EAAIgS,WAAW/xI,GAAK,EAAI,GACzDD,EAAI,IAAU,EAAJonB,EAAQpnB,IAAMA,GAAKggI,EAAIgS,WAAW/xI,EAAI,GAAK+/H,EAAIgS,WAAW/xI,GAAK,IACrEo3C,EAAI,EAAIr3C,EACRq3C,EAAIq8F,IACNr8F,EAAIq8F,GACND,EAASxzI,GAAKo3C,CAChB,MACEo8F,EAASxzI,GAAK,EAEhB+rI,GAAS/rI,GAAK+/H,EAAImR,QAAU,EAC9B,CACA,SAAS+F,GAAyBtS,EAAK2I,EAAasD,EAAIC,EAAK7F,EAAKyE,GAChE,IAGIn0I,EAAGonC,EAAG1iC,EAHN+/H,EAAM4E,EAAIE,eACVl5H,EAAM,IAAIurI,MAAMzZ,GAAQgL,QACxB2K,EAAMxH,GAAYnO,GAAQgL,QAE1BgM,EAAa,IAAI0C,IAAI1Z,GAAQgL,QACjC,IAAKzoI,EAAI0iC,EAAI,EAAG1iC,EAAI+/H,EAAImR,UAAWlxI,EAAG,CACpC,IAAI8xI,EAAM,EACN3qH,EAAI,EACJ1d,EAAIs2H,EAAIgS,WAAW/xI,GACvB,IAAK1E,EAAI,EAAGA,EAAImO,IAAKnO,IAAKonC,EAAG,CAC3B,IAAI7gC,EAAKyrI,EAAYmC,GAAQ/sG,GAC7BovG,GAAOjwI,EACHslB,EAAItlB,IACNslB,EAAItlB,EACR,CACA+uI,EAAG5wI,GAAK8xI,EACRnmI,EAAI3L,GAAKmnB,EACTisH,EAAIpzI,GAAK8xI,EAAMroI,EACfsiI,GAASqH,EAAIpzI,IAAM,EACrB,CAEA,IADA+rI,GAAS/rI,GAAK+/H,EAAImR,SACXlxI,EAAIy9H,GAAQgL,SAAUzoI,EAC3B2L,EAAI3L,GAAK,EACTozI,EAAIpzI,GAAK,EAGX,IADAg3I,GAAyBjX,EAAKp0H,EAAKynI,EAAKqB,GACnC/xG,EAAI1iC,EAAI,EAAGA,EAAI+/H,EAAImR,QAASlxI,IAAK,CACpC,IAEIo3I,EAAIC,EACJ7tI,EAAGyoI,EAAKqF,EAHRrI,EAAKlP,EAAIiS,QAAQhyI,GAAG,GACpB6U,EAAOkrH,EAAIiS,QAAQhyI,GAAG,GAG1Bo3I,EAAK3C,EAAWxF,GAChBoI,EAAO,EACPpF,EAAMlS,EAAImS,MAAMxvG,GAAKkuG,EAAG3B,GAAMT,EAAIiG,EAAWxF,MAC3CvsG,IACAusG,EACF,MAAOA,GAAMp6H,EACXuiI,GAAM3C,EAAWxF,GACjBoI,GAAQ,EACR7tI,EAAIu2H,EAAImS,MAAMxvG,GAAKkuG,EAAG3B,GAAMT,EAAIiG,EAAWxF,IAC3CgD,EAAM3C,EAAgB2C,EAAKzoI,EAAGylI,EAAKjvI,KACjC0iC,IACAusG,EAEJmI,GAAM,EAAI,EAAIA,IAAO,EAAIC,GACzBC,EAAqB,GAAV9I,EAAI4I,GACfnF,GAAOqF,EACPzG,EAAI7wI,GAAKiyI,EACTlS,EAAIsS,MAAMrH,GAAKhrI,GAAK+/H,EAAIoS,MAAMnH,GAAKhrI,GACnC+/H,EAAIoS,MAAMnH,GAAKhrI,GAAKiyI,EAElBzoI,EAAImC,EAAI3L,GACRwJ,GAAKu2H,EAAIwX,SAASv3I,GAClBwJ,GAAK8tI,EACDzG,EAAI7wI,GAAKwJ,IACXqnI,EAAI7wI,GAAKwJ,GAGTu2H,EAAI+S,cAAgB,IACtBjC,EAAI7wI,IAAM+/H,EAAI+S,eAEZjC,EAAI7wI,GAAK4wI,EAAG5wI,KACd6wI,EAAI7wI,GAAK4wI,EAAG5wI,IAEV+/H,EAAI+S,cAAgB,IACtBjC,EAAI7wI,IAAM+/H,EAAI+S,eAEhB/G,GAAS8E,EAAI7wI,IAAM,EACrB,CACA,KAAOA,EAAIy9H,GAAQgL,SAAUzoI,EAC3B4wI,EAAG5wI,GAAK,EACR6wI,EAAI7wI,GAAK,CAEb,CACA,SAASw3I,GAAyBzX,EAAKsN,EAAWgH,EAAMxD,EAAK7F,GAC3D,IAGIhrI,EAHA2L,EAAMigI,GAAYnO,GAAQgL,QAC1B2K,EAAMxH,GAAYnO,GAAQgL,QAC1B+L,EAAa1I,GAAUrO,GAAQgL,OAAS,GAE5C0K,EAAYpT,EAAKsN,EAAWgH,EAAM1oI,EAAKynI,GACvCG,EAAkBxT,EAAKp0H,EAAKynI,EAAKoB,GACjC,IAAIp9F,EAAI,EACR,IAAKp3C,EAAI,EAAGA,EAAI+/H,EAAI4R,QAAS3xI,IAAK,CAChC,IAAIwJ,EAAGyoI,EAAKqF,EAAUv3G,EAClBkvG,EAAKlP,EAAI+V,MAAM91I,GAAG,GAClB6U,EAAOkrH,EAAI+V,MAAM91I,GAAG,GACpBo3I,EAAK,EACLC,EAAO,EACXD,EAAK5C,EAAWvF,GAChBoI,GAAQ,EACRpF,EAAMlS,EAAIiW,MAAM5+F,GAAKi9F,EAAKpF,GAAMT,EAAIgG,EAAWvF,MAC7C73F,IACA63F,EACF,MAAOA,GAAMp6H,EACXuiI,GAAM5C,EAAWvF,GACjBoI,GAAQ,EACR7tI,EAAIu2H,EAAIiW,MAAM5+F,GAAKi9F,EAAKpF,GAAMT,EAAIgG,EAAWvF,IAC7ClvG,EAAIuvG,EAAgB2C,EAAKzoI,EAAGylI,EAAKjvI,GACjCiyI,EAAMlyG,IACJqX,IACA63F,EAKJ,GAHAmI,GAAM,EAAI,EAAIA,IAAO,EAAIC,GACzBC,EAAqB,GAAV9I,EAAI4I,GACfnF,GAAOqF,EACHvX,EAAIqS,cAAoB,EAANpH,IAAYvN,GAAQC,WAAY,CACpD,IAAI+Z,EAAYtL,EAASpM,EAAIkW,KAAKjL,GAAKhrI,GAErC6wI,EAAI7wI,GADFy3I,EAAY,EACLrxI,KAAKwF,IAAIqmI,EAAKwF,GAEdrxI,KAAKwF,IAAIqmI,EAAKoC,EAAKr0I,GAAK4sI,EAErC,KAAO,CACL,IAAI8K,EAActL,EAAUrM,EAAImW,KAAKlL,GAAKhrI,GACtC23I,EAAcxL,EAASpM,EAAIkW,KAAKjL,GAAKhrI,GAErC03I,GAAe,IACjBA,EAAczF,GAEZ0F,GAAe,IACjBA,EAAc1F,GAGdwF,EADE1X,EAAIqS,cAAoB,EAANpH,IAAYvN,GAAQqJ,UAC5B1gI,KAAKwF,IAAI+rI,EAAaD,GAEtBC,EAEd9G,EAAI7wI,GAAKoG,KAAKwF,IAAIqmI,EAAKwF,EACzB,CACA1X,EAAImW,KAAKlL,GAAKhrI,GAAK+/H,EAAIkW,KAAKjL,GAAKhrI,GACjC+/H,EAAIkW,KAAKjL,GAAKhrI,GAAKiyI,EAEjBzoI,EAAImC,EAAI3L,GACRwJ,GAAKu2H,EAAI6X,SAAS53I,GAClBwJ,GAAK8tI,EACDzG,EAAI7wI,GAAKwJ,IACXqnI,EAAI7wI,GAAKwJ,GAGTu2H,EAAI+S,cAAgB,IACtBjC,EAAI7wI,IAAM+/H,EAAI+S,eAEZjC,EAAI7wI,GAAKq0I,EAAKr0I,KAChB6wI,EAAI7wI,GAAKq0I,EAAKr0I,IAEZ+/H,EAAI+S,cAAgB,IACtBjC,EAAI7wI,IAAM+/H,EAAI+S,eAEhB/G,GAAS8E,EAAI7wI,IAAM,EACrB,CACA,KAAOA,EAAIy9H,GAAQgL,SAAUzoI,EAC3Bq0I,EAAKr0I,GAAK,EACV6wI,EAAI7wI,GAAK,CAEb,CACA,SAAS63I,GAA0BlT,EAAK4N,GACtC,IAAIxS,EAAM4E,EAAIE,eACVF,EAAI8N,cAAgBhH,GAAatQ,qBAA4C,GAAnBoX,EAAa,IAA8B,GAAnBA,EAAa,KACjGA,EAAa,GAAKA,EAAa,GAAK,GAEtC,IAAK,IAAIvH,EAAM,EAAGA,EAAMjL,EAAIM,aAAc2K,IACpCrG,EAAI8N,cAAgBhH,GAAarQ,wBACnCmX,EAAavH,GAAO,GAElBrG,EAAI8N,cAAgBhH,GAAapQ,qBACnCkX,EAAavH,GAAO,EAG1B,CACA,SAAS8M,GAAwBnT,EAAK4N,EAAcC,GAElD,IADA,IAAIzS,EAAM4E,EAAIE,eACLmG,EAAM,EAAGA,EAAMjL,EAAIM,aAAc2K,IAAO,CAC/C,IAAIvE,EAAYhJ,GAAQqJ,UACC,GAArByL,EAAavH,IACfe,GAAShM,EAAIqS,cAAcpH,IAAQvN,GAAQwL,YACvClJ,EAAIqS,cAAcpH,IAAQvN,GAAQC,aACpC+I,EAAYhJ,GAAQyL,aAGtBzC,EAAYhJ,GAAQC,WAChBqC,EAAIqS,cAAcpH,IAAQvN,GAAQqJ,YACpC/G,EAAIqS,cAAcpH,GAAOvN,GAAQwL,YAE/BlJ,EAAIqS,cAAcpH,IAAQvN,GAAQyL,YACpCnJ,EAAIqS,cAAcpH,GAAOvN,GAAQC,aAGrC8U,EAAYxH,GAAOjL,EAAIqS,cAAcpH,GACrCjL,EAAIqS,cAAcpH,GAAOvE,CAC3B,CACF,CACA,SAASsR,GAA6BnH,EAAIC,EAAKmH,EAAQC,EAAQ/H,EAAWD,EAAOxmI,GAI/E,IAHA,IAEIqmI,EAAOD,EAFPM,EAAiB,EAARF,EACTG,EAAWH,EAAQ,EAAI7pI,KAAKsoI,IAAI,GAAIwB,GAAa,EAE5ClwI,EAAI,EAAGA,EAAIyJ,IAAKzJ,EAAG,CAC1B,IAAIk4I,EAAMtH,EAAG,GAAG5wI,GACZm4I,EAAMvH,EAAG,GAAG5wI,GACZo4I,EAAOvH,EAAI,GAAG7wI,GACdq4I,EAAOxH,EAAI,GAAG7wI,GACdwwI,EAAOK,EAAI,GAAG7wI,GACdywI,EAAOI,EAAI,GAAG7wI,GAClB,GAAIo4I,GAAQ,KAAOC,GAAQA,GAAQ,KAAOD,EAAM,CAC9C,IAAIE,EAAQN,EAAOh4I,GAAKm4I,EACpBpI,EAAQiI,EAAOh4I,GAAKk4I,EACxBrI,EAAOzpI,KAAKuF,IAAI6kI,EAAMpqI,KAAKwF,IAAI6kI,EAAM6H,IACrCxI,EAAQ1pI,KAAKuF,IAAI8kI,EAAMrqI,KAAKwF,IAAI4kI,EAAMT,GACxC,MACEF,EAAOW,EACPV,EAAQW,EAEV,GAAIR,EAAQ,EAAG,CACb,IAAIM,EAAOgI,EACPlI,EAAM4H,EAAOj4I,GAAKowI,EAKtB,GAJAG,EAAQnqI,KAAKwF,IAAIxF,KAAKuF,IAAIysI,EAAM/H,GAAMjqI,KAAKuF,IAAI0sI,EAAMhI,IACrDG,EAAOpqI,KAAKuF,IAAIkkI,EAAMQ,GACtBI,EAAOrqI,KAAKuF,IAAImkI,EAAOO,GACvBkI,EAAQ/H,EAAOC,EACX8H,EAAQ,GAAKhI,EAAQJ,EAASoI,EAAO,CACvC,IAAIx1I,EAAIwtI,EAAQJ,EAASoI,EACzB/H,GAAQztI,EACR0tI,GAAQ1tI,CACV,CACA8sI,EAAOzpI,KAAKwF,IAAI4kI,EAAMX,GACtBC,EAAQ1pI,KAAKwF,IAAI6kI,EAAMX,EACzB,CACID,EAAOqI,IACTrI,EAAOqI,GAELpI,EAAQqI,IACVrI,EAAQqI,GAEVtH,EAAI,GAAG7wI,GAAK6vI,EACZgB,EAAI,GAAG7wI,GAAK8vI,CACd,CACF,CAyMA,SAAS0I,GAAUC,EAAMC,GACvB,IACIC,EADAC,EAAQH,EAOZ,OAJEE,EADEC,GAAS,EACM,IAARA,EAEDA,EAAQF,EAEdC,IAAU,GACL,EAEFvyI,KAAKyyI,IAAIF,EAAQ5L,EAC1B,CACA,SAAS+L,GAAeJ,GACtB,IAAIK,EAAQ,EACRC,EAAQ,EAENxvI,EAAI,EAGR,IAAKA,EAAI,EAAGgvI,GAAUhvI,EAAGkvI,GAAY,MAAOlvI,GAAK,GAEjD5J,EAAI4J,EACJohD,EAAK,EACL,MAAOxkD,KAAK01G,IAAIlxD,EAAKhrD,GAAK,MACxB4J,GAAKohD,EAAKhrD,GAAK,EACX44I,GAAUhvI,EAAGkvI,GAAY,EAC3B9tF,EAAKphD,EAEL5J,EAAI4J,EAGRuvI,EAAQn5I,EAGR,IACIA,EACAgrD,EAFAphD,EAAI,EAGR,IAAKA,EAAI,EAAGgvI,GAAUhvI,EAAGkvI,GAAY,MAAOlvI,GAAK,GAEjD5J,EAAI,EACJgrD,EAAKphD,EACL,MAAOpD,KAAK01G,IAAIlxD,EAAKhrD,GAAK,MACxB4J,GAAKohD,EAAKhrD,GAAK,EACX44I,GAAUhvI,EAAGkvI,GAAY,EAC3B94I,EAAI4J,EAEJohD,EAAKphD,EAGTwvI,EAAQpuF,EAGR,IAEItvD,EAFA29I,EAAM,EACN9xH,EAAI,IAER,IAAK7rB,EAAI,EAAGA,GAAK6rB,IAAK7rB,EAAG,CACnBkO,EAAIuvI,EAAQz9I,GAAK09I,EAAQD,GAAS5xH,EAAtC,IACI8zG,EAAIud,GAAUhvI,EAAGkvI,GACrBO,GAAOhe,CACT,CAEE,IAAIie,GAAQ/xH,EAAI,IAAM8xH,GAAOD,EAAQD,IACrC,OAAOG,CAGb,CACA,SAASC,GAAQV,GACf,IAAIG,EAAOpvI,EAAGmvI,EAAOS,EAarB,OAZAR,EAAQH,EAENG,GADEA,GAAS,EACF,EAEA,IACPA,GAAS,IAAOA,GAAS,KAC3BQ,EAAOR,EAAQ,GACfpvI,EAAI,GAAK4vI,EAAOA,EAAO,EAAIA,IAE3B5vI,EAAI,EACNovI,GAAS,KACTD,EAAQ,UAAY,IAAMC,EAAQ,KAAOxyI,KAAKizI,KAAK,EAAIT,EAAQA,GAC3DD,IAAU,GACL,GACTC,EAAQxyI,KAAKyyI,KAAKrvI,EAAImvI,GAAS5L,GAC/B6L,GAAS,SACFA,EACT,CACA,SAASU,GAAUC,GAIjB,OAHIA,EAAO,IACTA,EAAO,GACTA,GAAc,KACP,GAAKnzI,KAAKozI,KAAK,IAAOD,GAAQ,IAAMnzI,KAAKozI,KAAKD,EAAOA,EAAO,MACrE,CACA,SAASE,GAAaC,EAAUC,EAAI/6F,EAAIg7F,EAAMC,EAAYlK,EAAKmK,EAAMC,EAAOC,EAASC,EAAUC,EAAWC,GACxG,IAGI7+I,EAHA8+I,EAAQxO,GAAYnO,GAAQgL,OAAS,GACrC4R,EAAmBN,GAASI,EAAQ,GAAK,KAAU,KACnDG,EAAYxO,GAAUrO,GAAQqL,UAElCiR,GAASC,EACT,IAAIt3G,EAAI,EACJ63G,EAAK,EACT,IAAKj/I,EAAI,EAAGA,EAAImiI,GAAQgL,OAAQntI,IAAK,CACnC,IACIk/I,EAGJ,IAFAC,EAAQnB,GAAUS,EAAQr3G,GAC1B03G,EAAM9+I,GAAKy+I,EAAQr3G,EACd83G,EAAK93G,EAAG42G,GAAUS,EAAQS,GAAMC,EAAQlO,GAAWiO,GAAMR,EAAU,EAAGQ,KAE3Ed,EAASp+I,GAAKk/I,EAAK93G,EACnB63G,EAAKj/I,EAAI,EACT,MAAOonC,EAAI83G,EACTF,EAAU53G,KAAOpnC,EAEnB,GAAIonC,EAAIs3G,EAAU,EAAG,CACnBt3G,EAAIs3G,EAAU,IACZ1+I,EACF,KACF,CACF,CACA8+I,EAAM9+I,GAAKy+I,EAAQr3G,EACnB,IAAK,IAAIg4G,EAAM,EAAGA,EAAMP,EAAOO,IAAO,CACpC,IAAIC,EAAI/yF,EAAI3kC,EAAOC,EACf3S,EACJ0S,EAAQg3H,EAASS,GACjBx3H,EAAM+2H,EAASS,EAAM,GACrBC,EAAK,EAAIv0I,KAAKkD,MAAM,GAAM4wI,GAAaj3H,EAAQ,KAC3C03H,EAAK,IACPA,EAAK,GACP/yF,EAAK,EAAIxhD,KAAKkD,MAAM,GAAM4wI,GAAah3H,EAAM,KACzC0kC,EAAKoyF,EAAU,IACjBpyF,EAAKoyF,EAAU,GACjBp7F,EAAG87F,IAAQJ,EAAUK,GAAML,EAAU1yF,IAAO,EAC5C+xF,EAAGe,GAAOJ,EAAU1yF,GACpB,IAAIgzF,EAAQP,EAAmBn3H,EAC/B42H,EAAKY,IAAQE,EAAQR,EAAMT,EAAGe,MAAUN,EAAMT,EAAGe,GAAO,GAAKN,EAAMT,EAAGe,KAClEZ,EAAKY,GAAO,EACdZ,EAAKY,GAAO,EAERZ,EAAKY,GAAO,IACdZ,EAAKY,GAAO,GAGhBnqI,EAAM+oI,GAAUS,EAAQE,EAASS,GAAOR,GACxC3pI,EAAMnK,KAAKwF,IAAI2E,EAAK,MAAQ,KAC5Bo/H,EAAI+K,GAAOt0I,KAAKsoI,IAAI,GAAI,MAAQ,EAAItoI,KAAKilI,IAAIjlI,KAAKklI,GAAK/6H,IAAQ,IACjE,CACAmyB,EAAI,EACJ,IAAK,IAAI0U,EAAI,EAAGA,EAAImjG,EAAInjG,IAAK,CAC3B,IACIqjG,EAAOI,EADPz8E,EAAIs7E,EAAStiG,GAEjBqjG,EAAQnB,GAAUS,EAAQr3G,GAC1Bm4G,EAAQvB,GAAUS,GAASr3G,EAAI07B,EAAI,IACnCw7E,EAAKxiG,GAAK,IAAOqjG,EAAQI,GACzBJ,EAAQnB,GAAUS,GAASr3G,EAAI,KAC/Bm4G,EAAQvB,GAAUS,GAASr3G,EAAI07B,EAAI,KACnCy7E,EAAWziG,GAAKyjG,EAAQJ,EACxB/3G,GAAK07B,CACP,CACA,OAAOm8E,CACT,CACA,SAASO,GAAehF,EAAOiF,EAAOnB,EAAMC,EAAYX,EAAM8B,GAC5D,IACIt4G,EADAu4G,EAAKpP,GAAc,CAACpO,GAAQgL,OAAQhL,GAAQgL,SAE5CyS,EAAmB,EACvB,GAAIF,EACF,IAAK,IAAI1/I,EAAI,EAAGA,EAAIy/I,EAAOz/I,IACzB,IAAKonC,EAAI,EAAGA,EAAIq4G,EAAOr4G,IAAK,CAC1B,IAAI/mC,EAAIw9I,GAAQS,EAAKt+I,GAAKs+I,EAAKl3G,IAAMm3G,EAAWn3G,GAChDu4G,EAAG3/I,GAAGonC,GAAK/mC,EAAIu9I,EAAK59I,EACtB,MAGF,IAAKonC,EAAI,EAAGA,EAAIq4G,EAAOr4G,IACrB,KAAIg2G,EAAW,GAAKtyI,KAAKwF,IAAI,GAAKguI,EAAKl3G,GAAI,IACvCy4G,EAAYrC,GAAeJ,GAC/B,IAASp9I,EAAI,EAAGA,EAAIy/I,EAAOz/I,IAAK,CAC1BK,EAAIw/I,EAAY3C,GAAUoB,EAAKt+I,GAAKs+I,EAAKl3G,GAAIg2G,GAAYmB,EAAWn3G,GACxEu4G,EAAG3/I,GAAGonC,GAAK/mC,EAAIu9I,EAAK59I,EACtB,CAL8C,CAQlD,IAASA,EAAI,EAAGA,EAAIy/I,EAAOz/I,IAAK,CAC9B,IAAKonC,EAAI,EAAGA,EAAIq4G,EAAOr4G,IACrB,GAAIu4G,EAAG3/I,GAAGonC,GAAK,EACb,MAGJ,IADAozG,EAAMx6I,GAAG,GAAKonC,EACTA,EAAIq4G,EAAQ,EAAGr4G,EAAI,EAAGA,IACzB,GAAIu4G,EAAG3/I,GAAGonC,GAAK,EACb,MAEJozG,EAAMx6I,GAAG,GAAKonC,EACdw4G,GAAoBpF,EAAMx6I,GAAG,GAAKw6I,EAAMx6I,GAAG,GAAK,CAClD,CACA,IAAI6lE,EAAKyqE,GAAYsP,GACjB9jG,EAAI,EACR,IAAS97C,EAAI,EAAGA,EAAIy/I,EAAOz/I,IACzB,IAAKonC,EAAIozG,EAAMx6I,GAAG,GAAIonC,GAAKozG,EAAMx6I,GAAG,GAAIonC,IACtCy+B,EAAG/pB,KAAO6jG,EAAG3/I,GAAGonC,GAEpB,OAAOy+B,CACT,CACA,SAASi6E,GAAcr4I,GACrB,IAAIwN,EAAM+oI,GAAUv2I,GAEpB,OADAwN,EAAMnK,KAAKwF,IAAI2E,EAAK,MAAQ,KACrBnK,KAAKsoI,IAAI,GAAI,MAAQ,EAAItoI,KAAKilI,IAAIjlI,KAAKklI,GAAK/6H,IAAQ,IAC7D,CAkPA,SAAS8qI,GAAct4I,EAAGhN,GACpBgN,GAAK,KACPA,EAAI,MACNA,GAAK,IACLA,EAAIqD,KAAKuF,IAAI,GAAK5I,GAClB,IAAIstI,EAAM,KAAOjqI,KAAKsoI,IAAI3rI,GAAI,IAAO,IAAMqD,KAAKyyI,KAAK,GAAMzyI,KAAKsoI,IAAI3rI,EAAI,IAAK,IAAM,EAAIqD,KAAKyyI,KAAK,IAAOzyI,KAAKsoI,IAAI3rI,EAAI,IAAK,IAA6B,MAAtB,GAAM,IAAOhN,GAAgBqQ,KAAKsoI,IAAI3rI,EAAG,GAC1K,OAAOstI,CACT,CA/oBAj7I,KAAKuxI,kBAAoB,SAAShC,EAAKhqI,EAAQswI,EAAQ0C,EAAQkG,EAAeC,EAAkBC,EAAgBC,EAAmBvM,EAAQ+K,GACzI,IACIjF,EACAE,EAFA1N,EAAM4E,EAAIE,eAGVwI,EAAYzB,GAAYnO,GAAQqL,UAChCwE,EAAczB,GAAc,CAAC,EAAGpO,GAAQuL,aACxCmL,EAAUtI,GAAc,CAAC,EAAGpO,GAAQwH,UACpCmP,EAAUvI,GAAc,CAAC,EAAG,EAAGpO,GAAQsL,YACvC6H,EAAK/E,GAAc,CAAC,EAAGpO,GAAQgL,SAC/BoI,EAAMhF,GAAc,CAAC,EAAGpO,GAAQgL,SAChCgO,EAAmB5K,GAAc,CAAC,EAAG,IACrCqI,EAAS,GACTmB,EAAa,CACf,CAAC,EAAG,EAAG,EAAG,GACV,CAAC,EAAG,EAAG,EAAG,GACV,CAAC,EAAG,EAAG,EAAG,GACV,CAAC,EAAG,EAAG,EAAG,IAER9C,EAAezG,GAAU,GACzB6K,EAAYhS,EAAIv5H,MAAQ+2H,GAASG,aAAe,EAAIvC,EAAIM,aAC5DmW,EACE7R,EACAhqI,EACAswI,EACA0C,EACAkG,EACAC,EACArM,EACAgP,EACApB,EACA9C,GAEFsF,GAA0BlT,EAAK4N,GAE7B,IAAK,IAAIvH,EAAM,EAAGA,EAAM2L,EAAW3L,IAAO,CACxC,IAAIsQ,EAAa,EAANtQ,EACXuC,EAAU4G,EACVT,EACE/O,EACAhqI,EACAswI,EACAD,EACA2C,EACAN,EACAE,EACA+N,GAEF1H,EAAwCjP,EAAKgJ,EAAQ3C,EAAKqC,GAChC,GAAtBkF,EAAa+I,GACf9D,GAAyBzX,EAAKsN,EAAWuD,EAAG5F,GAAM6F,EAAI7F,GAAMA,GAE5D+L,EAAsBhX,EAAKiL,EAE/B,CACIuH,EAAa,GAAKA,EAAa,IAAM,GACnC5N,EAAIv5H,MAAQ+2H,GAASG,cACvByV,GACEnH,EACAC,EACA9Q,EAAIwb,SACJxb,EAAI+D,IAAIsL,KACRzK,EAAIyR,SAAWrW,EAAI+D,IAAInnD,OACvBgoD,EAAIsL,MACJlQ,EAAI4R,SAIV,IAAS3G,EAAM,EAAGA,EAAM2L,EAAW3L,IAAO,CACpCsQ,EAAa,EAANtQ,EACe,GAAtBuH,EAAa+I,IACf9J,EAA6BzR,EAAK6Q,EAAG5F,GAAM6F,EAAI7F,GAAMA,EAEzD,CAGA,IAAK,IAAIyE,EAAS,EAAGA,EAAS,EAAGA,IAAU,CACzC,IAASzE,EAAM,EAAGA,EAAM2L,IAAa3L,EAAK,CACpCsQ,EAAa,EAANtQ,EACe,GAAtBuH,EAAa+I,GACfxE,EAAsB/W,EAAKiL,EAAKyE,IAEhChC,EAAU2G,EACVT,EACEhP,EACAhqI,EACAswI,EACAD,EACAyE,EACAnC,EACAG,EACA6N,GAEFrE,GACEtS,EACA2I,EACAsD,EAAG5F,GACH6F,EAAI7F,GACJA,EACAyE,GAGN,CACI8C,EAAa,GAAKA,EAAa,IAAM,GACnC5N,EAAIv5H,MAAQ+2H,GAASG,cACvByV,GACEnH,EACAC,EACA9Q,EAAIyb,SACJzb,EAAI+D,IAAIqL,KACRxK,EAAIyR,SAAWrW,EAAI+D,IAAInnD,OACvBgoD,EAAIsL,MACJlQ,EAAImR,SAIV,IAASlG,EAAM,EAAGA,EAAM2L,IAAa3L,EAAK,CACpCsQ,EAAa,EAANtQ,EACe,GAAtBuH,EAAa+I,IACf3K,EAA6B5Q,EAAK6Q,EAAG5F,GAAM6F,EAAI7F,GAAMA,EAAKyE,EAE9D,CACF,CACA,IAASzE,EAAM,EAAGA,EAAM2L,EAAW3L,IAAO,CACpCsQ,EAAa,EAANtQ,EACX,GAA0B,GAAtBuH,EAAa+I,GAGjB,IAAK,IAAI9L,EAAK,EAAGA,EAAK/R,GAAQqE,QAAS0N,IAAM,CAC3C,IAAIiM,EAAW7P,GAAY,GAC3B,IAAS6D,EAAS,EAAGA,EAAS,EAAGA,IAAU,CACzC,IAAIsB,EAAOhR,EAAIkC,IAAI+I,GAAK96H,EAAEs/H,GAAIC,GAE9B,GADAsB,GAAQrE,EACJ2I,EAAWrK,GAAKyE,IAAW,GAAoC,GAA/B4F,EAAWrK,GAAKyE,EAAS,GAAS,CACpE,IAAIhpC,EAAgB,GAAVgpC,EAAcA,EAAS,EAAI,EACjCtuE,EAAKuxE,EACP3S,EAAIkC,IAAI+I,GAAK96H,EAAEs/H,GAAI/oC,GACnBsqC,EACApE,EAAkBuH,GAEpBnD,EAAO3qI,KAAKwF,IAAImlI,EAAM5vE,EACxB,MAAO,GAA+B,GAA3Bk0E,EAAWrK,GAAKyE,GAAc,CACnChpC,EAAgB,GAAVgpC,EAAcA,EAAS,EAAI,EACjCtuE,EAAKuxE,EACP3S,EAAIkC,IAAI+I,GAAK96H,EAAEs/H,GAAI/oC,GACnBsqC,EACAnE,EAAkBsH,GAEpBnD,EAAO3qI,KAAKwF,IAAImlI,EAAM5vE,EACxB,MAAO,GAAc,GAAVsuE,GAA8C,GAA/B4F,EAAWrK,GAAKyE,EAAS,IAAqB,GAAVA,GAA6C,GAA9B1P,EAAI2H,MAAMmO,YAAY7K,GAAW,CACxGvkC,EAAgB,GAAVgpC,EAAcA,EAAS,EAAI,EACjCtuE,EAAKuxE,EACP3S,EAAIkC,IAAI+I,GAAK96H,EAAEs/H,GAAI/oC,GACnBsqC,EACAnE,EAAkBsH,GAEpBnD,EAAO3qI,KAAKwF,IAAImlI,EAAM5vE,EACxB,CACA4vE,GAAQ0F,EAAiBzL,GAAKyE,GAC9BgM,EAAShM,GAAUsB,CACrB,CACA,IAAStB,EAAS,EAAGA,EAAS,EAAGA,IAC/B1P,EAAIkC,IAAI+I,GAAK96H,EAAEs/H,GAAIC,GAAUgM,EAAShM,EAE1C,CACF,CAEF,IAASzE,EAAM,EAAGA,EAAM2L,EAAW3L,IACjCjL,EAAI2H,MAAMmO,YAAY7K,GAAOqK,EAAWrK,GAAK,GAE/C8M,GAAwBnT,EAAK4N,EAAcC,GAC3C,IAASxH,EAAM,EAAGA,EAAM2L,EAAW3L,IAAO,CACxC,IAAIqL,EACAC,EACA3uI,EACAkrI,EACA7H,EAAM,GACRqL,EAAMrC,EACNsC,GAAU,EACV3uI,EAAO81H,GAAQqJ,UACX0L,EAAY,IAAM/U,GAAQC,YAAc8U,EAAY,IAAM/U,GAAQC,aACpE/1H,EAAO81H,GAAQC,YAEjBmV,EAAKiB,EAAiBnG,GAAQ3C,EAAM,KAEpCqL,EAAMtC,EACNuC,EAAS,EACT3uI,EAAO6qI,EAAYxH,GACnB6H,EAAKgB,EAAclG,GAAQ3C,IAEzBrjI,GAAQ81H,GAAQC,WAClB2Y,EAAIC,EAAStL,GAAO4H,EAASC,EAAI9S,EAAI+S,eAErCuD,EAAIC,EAAStL,GAAOiI,EAASJ,EAAI9S,EAAI+S,eAEnCnO,EAAI0C,WACNtH,EAAIuH,MAAMtB,GAAG2H,GAAQ3C,GAAOqL,EAAIC,EAAStL,GAE7C,CACA,OAAO,CACT,EAgNA51I,KAAKsmJ,cAAgB,SAAS/W,GAC5B,IACIrpI,EADAykI,EAAM4E,EAAIE,eAEV8W,GAAW,EACXC,EAAQ,GACRC,EAAQ,GACRC,EAAU,EACVC,EAAU,EACVC,GAAW,KACXC,GAAW,IACXrC,EAAOhO,GAAYnO,GAAQgL,QAC3BoR,EAAajO,GAAYnO,GAAQgL,QACjCyQ,EAAOtN,GAAYnO,GAAQgL,QAC3BsR,EAAQpV,EAAI0B,eAChB,OAAQ1B,EAAIuX,eACV,QACA,KAAK,EACHP,GAAW,EACX,MACF,KAAK,EACHA,IAAahX,EAAI+B,KAAO6E,GAAU1P,UAAY8I,EAAI+B,KAAO6E,GAAU7P,QACnE,MACF,KAAK,EACHigB,GAAW,EACX,MACF,KAAK,EACHC,EAAQ,EACRE,GAAW,KACXC,GAAW,MACXC,GAAW,KACXC,GAAW,KACX,MAIJ,IAFAlc,EAAIoc,kBAAoB,IACxBpc,EAAIqS,cAAc,GAAKrS,EAAIqS,cAAc,GAAK3U,GAAQqJ,UACjDxrI,EAAI,EAAGA,EAAI,IAAKA,EAAG,CACtB,IAAK,IAAIonC,EAAI,EAAGA,EAAI+6F,GAAQgL,SAAU/lG,EACpCq9F,EAAIkW,KAAK36I,GAAGonC,GAAK,KACjBq9F,EAAImW,KAAK56I,GAAGonC,GAAK,KACjBq9F,EAAIoS,MAAM72I,GAAGonC,GAAKq9F,EAAIsS,MAAM/2I,GAAGonC,GAAK,EAEtC,IAAK,IAAI8sG,EAAK,EAAGA,EAAK/R,GAAQoE,QAAS2N,IACrCzP,EAAImC,GAAG5mI,GAAGsE,EAAE4vI,GAAM,KAClBzP,EAAIkC,IAAI3mI,GAAGsE,EAAE4vI,GAAM,KAErB,IAAS9sG,EAAI,EAAGA,EAAI,IAAKA,EAAG,CAC1B,IAAS8sG,EAAK,EAAGA,EAAK/R,GAAQqE,QAAS0N,IACrCzP,EAAImC,GAAG5mI,GAAG4U,EAAEs/H,GAAI9sG,GAAK,KACrBq9F,EAAIkC,IAAI3mI,GAAG4U,EAAEs/H,GAAI9sG,GAAK,KAExBq9F,EAAI2H,MAAMmO,YAAYv6I,GAAK,CAC7B,CACA,IAASonC,EAAI,EAAGA,EAAI,EAAGA,IACrBq9F,EAAI2H,MAAM4N,iBAAiBh6I,GAAGonC,GAAK,EACvC,CAiBA,IAhBAq9F,EAAIkO,iBAAiB,GAAKlO,EAAIkO,iBAAiB,GAAK,EACpDlO,EAAI4R,QAAU8H,GACZ1Z,EAAIsT,WACJtT,EAAI2R,KACJ3R,EAAIuQ,KACJsJ,EACAC,EACA9Z,EAAI6P,MACJ7P,EAAIsR,IAAIO,YACRmI,EACAtc,GAAQwH,QACRlF,EAAIqc,cAAcx8I,EAClB69H,GAAQwH,QAAU,KAClBxH,GAAQoE,SAEVkK,GAAShM,EAAI4R,QAAUlU,GAAQgL,QAC1BntI,EAAI,EAAGA,EAAIykI,EAAI4R,QAASr2I,IAAK,CAChC,IAAI+gJ,EAAMP,EACNlC,EAAKt+I,IAAMsgJ,IACbS,EAAMN,GAAWnC,EAAKt+I,GAAKsgJ,IAAUC,EAAQD,GAASE,GAAWD,EAAQjC,EAAKt+I,KAAOugJ,EAAQD,IAE/F1C,EAAK59I,GAAK8K,KAAKsoI,IAAI,GAAI2N,EAAM,IACzBtc,EAAIsT,WAAW/3I,GAAK,EACtBykI,EAAIuT,YAAYh4I,GAAK,EAAIykI,EAAIsT,WAAW/3I,GAExCykI,EAAIuT,YAAYh4I,GAAK,CAEzB,CACAykI,EAAIiW,MAAQ8E,GACV/a,EAAI+V,MACJ/V,EAAI4R,QACJiI,EACAC,EACAX,EACAyC,GAEF,IAqFM1L,EArFFvtG,EAAI,EACR,IAAKpnC,EAAI,EAAGA,EAAIykI,EAAI4R,QAASr2I,IAAK,CAEhCkO,EAAIgiI,GAAQhQ,UACZ,IAAK,IAAIpkF,EAAI,EAAGA,EAAI2oF,EAAIsT,WAAW/3I,GAAI87C,IAAK1U,IAAK,CAC/C,IAAI62G,EAAOQ,EAAQr3G,GAAK,IAAM+6F,GAAQwH,SAEtCpX,EAAQz4H,KAAKknJ,WAAkB,IAAP/C,EAAY5U,GAAO,GAC3C9W,EAAQznH,KAAKsoI,IAAI,GAAI,GAAM7gB,GAC3BA,GAASkS,EAAIsT,WAAW/3I,GACpBkO,EAAIqkH,IACNrkH,EAAIqkH,EACR,CACAkS,EAAI+D,IAAIsL,KAAK9zI,GAAKkO,EAClBA,EAAoB,GAAVowI,EAAKt+I,GAAU,GAApB,GACDkO,EAAI,IACNA,EAAI,KAEFA,GAAK,KACPA,GAAK,IAEPA,GAAK,EACLu2H,EAAI6X,SAASt8I,GAAK8K,KAAKsoI,IAAI,GAAIllI,EAAI,IAAMu2H,EAAIsT,WAAW/3I,EAC1D,CAiBA,IAhBAykI,EAAImR,QAAUuI,GACZ1Z,EAAIgS,WACJhS,EAAIkR,KACJlR,EAAI2Q,KACJkJ,EACAC,EACA9Z,EAAIgQ,MACJhQ,EAAIsR,IAAIC,YACRyI,EACAtc,GAAQsL,UACRhJ,EAAIqc,cAAclsI,EAClButH,GAAQsL,UAAY,IACpBtL,GAAQqE,SAEViK,GAAShM,EAAImR,QAAUzT,GAAQgL,QAC/B/lG,EAAI,EACCpnC,EAAI,EAAGA,EAAIykI,EAAImR,QAAS51I,IAAK,CAChC,IAAIkO,EACA6yI,EAAML,EACNpC,EAAKt+I,IAAMsgJ,IACbS,EAAMJ,GAAWrC,EAAKt+I,GAAKsgJ,IAAUC,EAAQD,GAASI,GAAWH,EAAQjC,EAAKt+I,KAAOugJ,EAAQD,IAE/F1C,EAAK59I,GAAK8K,KAAKsoI,IAAI,GAAI2N,EAAM,IAC7B7yI,EAAIgiI,GAAQhQ,UACZ,IAASpkF,EAAI,EAAGA,EAAI2oF,EAAIgS,WAAWz2I,GAAI87C,IAAK1U,IAAK,CAC/C,IACImrF,EADA0rB,EAAOQ,EAAQr3G,GAAK,IAAM+6F,GAAQsL,WAEtClb,EAAQz4H,KAAKknJ,WAAkB,IAAP/C,EAAY5U,GAAO,GAC3C9W,EAAQznH,KAAKsoI,IAAI,GAAI,GAAM7gB,GAC3BA,GAASkS,EAAIgS,WAAWz2I,GACpBkO,EAAIqkH,IACNrkH,EAAIqkH,EACR,CACAkS,EAAI+D,IAAIqL,KAAK7zI,GAAKkO,EAClBA,EAAmB,EAAVowI,EAAKt+I,GAAS,GAAlB,EACDs+I,EAAKt+I,GAAK,KACZkO,GAAK,EAAsB,IAAlBpD,KAAKo0H,IAAI,EAAIhxH,IAEpBowI,EAAKt+I,GAAK,KACZkO,GAAK,EAAsB,IAAlBpD,KAAKo0H,IAAI,EAAIhxH,IAEpBA,GAAK,KACPA,GAAK,IAEPA,GAAK,EACLu2H,EAAIwX,SAASj8I,GAAK8K,KAAKsoI,IAAI,GAAIllI,EAAI,IAAMu2H,EAAIgS,WAAWz2I,EAC1D,CACAykI,EAAImS,MAAQ4I,GACV/a,EAAIiS,QACJjS,EAAImR,QACJ0I,EACAC,EACAX,EACAyC,GAEFlN,IACAxC,EAAIb,SAASrL,GACbA,EAAIwc,MAAQn2I,KAAKyyI,KACd,EAAI3M,GAASO,EAA2BsN,EAAQ,MAIjD9J,EAAQpD,EACuB,IAAN,EAApBlI,EAAI6X,iBACPvM,EAAQ,GACN7pI,KAAK01G,IAAI6oB,EAAIsL,OAAS,IACxBA,EAAQtL,EAAIsL,OACdtL,EAAIsL,MAAQA,EACZ,IAAK,IAAIjwI,EAAI,EAAGA,EAAI+/H,EAAI4R,QAAS3xI,IAC3B+/H,EAAI+V,MAAM91I,GAAG,GAAK+/H,EAAI4R,QAAU,IAClC5R,EAAI+V,MAAM91I,GAAG,GAAK+/H,EAAI4R,QAAU,GAGtC,IAAI8K,EAAiB,IAAM1c,EAAIQ,QAAUwZ,EAMzC,GALAha,EAAI+D,IAAIyY,MAAQn2I,KAAKsoI,IAAI,IAAI,IAAW+N,GACxC1c,EAAI+D,IAAInnD,OAAS,IACjBojD,EAAI+D,IAAII,YAAc,EACtB6H,GAAShM,EAAI2R,KAAKjU,GAAQoE,QAAU,IAAM9B,EAAI4R,SAC9C5F,GAAShM,EAAIkR,KAAKxT,GAAQqE,QAAU,IAAM/B,EAAImR,UAC1B,GAAhBvM,EAAI+X,QAAe,CACrB,IACIC,EAAWhY,EAAI0B,eAAiB5I,GAAQwH,QACxC2X,EAAc,EAElB,IADArD,EAAO,EACFj+I,EAAI,EAAGA,EAAImiI,GAAQwH,QAAU,IAAK3pI,EACrCi+I,GAAQoD,EACR5c,EAAI+D,IAAIqJ,MAAM7xI,GAAK,EAAI8K,KAAKsoI,IAAI,GAAIt5I,KAAKknJ,WAAW/C,EAAM5U,GAAO,IACjEiY,GAAe7c,EAAI+D,IAAIqJ,MAAM7xI,GAG/B,IADAshJ,EAAc,EAAIA,EACbthJ,EAAImiI,GAAQwH,QAAU,IAAK3pI,GAAK,GACnCykI,EAAI+D,IAAIqJ,MAAM7xI,IAAMshJ,CAExB,CAEE,IAAS58I,EAAI0iC,EAAI,EAAG1iC,EAAI+/H,EAAImR,UAAWlxI,EACrC,IAAK1E,EAAI,EAAGA,EAAIykI,EAAIgS,WAAW/xI,KAAM1E,IACjConC,EAGN,IAAS1iC,EAAI0iC,EAAI,EAAG1iC,EAAI+/H,EAAI4R,UAAW3xI,EACrC,IAAK1E,EAAI,EAAGA,EAAIykI,EAAIsT,WAAWrzI,KAAM1E,IACjConC,EAKR,IADAA,EAAI,EACCpnC,EAAI,EAAGA,EAAIykI,EAAI4R,QAASr2I,IAAK,CAC5Bi+I,EAAOQ,GAASr3G,EAAIq9F,EAAIsT,WAAW/3I,GAAK,IAAM,EAAImiI,GAAQwH,SAC9DlF,EAAIwb,SAASjgJ,GAAK8/I,GAAc7B,GAChC72G,GAAKq9F,EAAIsT,WAAW/3I,EACtB,CACA,KAAOA,EAAImiI,GAAQgL,SAAUntI,EAC3BykI,EAAIwb,SAASjgJ,GAAK,EAGpB,IADAonC,EAAI,EACCpnC,EAAI,EAAGA,EAAIykI,EAAImR,QAAS51I,IAAK,CAC5Bi+I,EAAOQ,GAASr3G,EAAIq9F,EAAIgS,WAAWz2I,GAAK,IAAM,EAAImiI,GAAQsL,WAC9DhJ,EAAIyb,SAASlgJ,GAAK8/I,GAAc7B,GAChC72G,GAAKq9F,EAAIgS,WAAWz2I,EACtB,CACA,KAAOA,EAAImiI,GAAQgL,SAAUntI,EAC3BykI,EAAIyb,SAASlgJ,GAAK,EAEpB,OAAO,CACT,EASAlG,KAAKknJ,WAAa,SAASv5I,EAAG4hI,GAC5B,IAAI0L,EACJ,OAAQ1L,EAAI+X,SACV,KAAK,EACHrM,EAAMgL,GAAct4I,EAAG,GACvB,MACF,KAAK,EACHstI,EAAMgL,GAAct4I,GAAI,GACxB,MACF,KAAK,EACHstI,EAAMgL,GAAct4I,EAAG,GACvB,MACF,KAAK,EACHstI,EAAMgL,GAAct4I,EAAG,GAAK,EAC5B,MACF,KAAK,EACHstI,EAAMgL,GAAct4I,EAAG4hI,EAAIkY,UAC3B,MACF,QACExM,EAAMgL,GAAct4I,EAAG,GACvB,MAEJ,OAAOstI,CACT,CACF,CACA,SAASyM,KACP1nJ,KAAK2nJ,SAAW,EAChB3nJ,KAAK4nJ,YAAc,EACnB5nJ,KAAK6nJ,aAAe,EACpB7nJ,KAAK8nJ,cAAgB,EACrB9nJ,KAAKixI,eAAiB,EACtBjxI,KAAK4pH,MAAQ,EACb5pH,KAAK+nJ,WAAa,EAClB/nJ,KAAKgoJ,YAAc,EACnBhoJ,KAAKiyI,UAAW,EAChBjyI,KAAK4yI,cAAe,EACpB5yI,KAAKioJ,aAAc,EACnBjoJ,KAAKkoJ,QAAU,EACfloJ,KAAKgW,KAAO+2H,GAASE,OACrBjtI,KAAK4xI,UAAW,EAChB5xI,KAAKmoJ,aAAc,EACnBnoJ,KAAKooJ,gBAAiB,EACtBpoJ,KAAKqoJ,mBAAoB,EACzBroJ,KAAKsoJ,wBAAyB,EAC9BtoJ,KAAKuoJ,MAAQ,EACbvoJ,KAAKwoJ,kBAAoB,EACzBxoJ,KAAKiW,UAAY,EACjBjW,KAAKyoJ,SAAW,EAChBzoJ,KAAK0yE,UAAY,EACjB1yE,KAAKs2E,SAAW,EAChBt2E,KAAK0oJ,iBAAmB,EACxB1oJ,KAAK2oJ,YAAa,EAClB3oJ,KAAK4oJ,mBAAoB,EACzB5oJ,KAAK6oJ,WAAa,EAClB7oJ,KAAK8oJ,iBAAmB,EACxB9oJ,KAAK+oJ,eAAgB,EACrB/oJ,KAAK8mJ,cAAgB,EACrB9mJ,KAAKonJ,cAAgB,EACrBpnJ,KAAKgpJ,OAAS,EACdhpJ,KAAKsxI,IAAM,KACXtxI,KAAKipJ,WAAa,EAClBjpJ,KAAKkpJ,MAAQ,EACblpJ,KAAKmpJ,sBAAwB,EAC7BnpJ,KAAKopJ,qBAAuB,EAC5BppJ,KAAKqpJ,qBAAuB,EAC5BrpJ,KAAKspJ,aAAe,EACpBtpJ,KAAKupJ,YAAc,EACnBvpJ,KAAKwpJ,aAAe,EACpBxpJ,KAAKypJ,aAAe,EACpBzpJ,KAAK0pJ,cAAgB,EACrB1pJ,KAAK2pJ,cAAgB,EACrB3pJ,KAAK4pJ,oBAAsB,EAC3B5pJ,KAAK6pJ,SAAU,EACf7pJ,KAAK8pJ,UAAW,EAChB9pJ,KAAK+pJ,OAAQ,EACb/pJ,KAAKsnJ,QAAU,EACftnJ,KAAKynJ,SAAW,EAChBznJ,KAAKghJ,SAAW,EAChBhhJ,KAAKgqJ,WAAa,EAClBhqJ,KAAK44I,iBAAmB,EACxB54I,KAAKiqJ,kBAAoB,EACzBjqJ,KAAKq9I,aAAe,KACpBr9I,KAAKkqJ,aAAc,EACnBlqJ,KAAK+gJ,aAAe,EACpB/gJ,KAAK66I,MAAQ,EACb76I,KAAKmqJ,MAAO,EACZnqJ,KAAKoqJ,aAAe,EACpBpqJ,KAAK6O,QAAU,EACf7O,KAAKqqJ,cAAgB,EACrBrqJ,KAAKsqJ,gBAAkB,EACvBtqJ,KAAK8vI,UAAY,EACjB9vI,KAAKuqJ,SAAW,EAChBvqJ,KAAKwqJ,mBAAqB,EAC1BxqJ,KAAKyvI,eAAiB,IACxB,CACA,IAAIgb,GAAW,CAAC,EAChBA,GAASC,OAA2B,EAAlBriB,GAAQqE,QAC1B,IAAIie,GAAchoJ,GAAO0kI,UACrBujB,GAAYjoJ,GAAO4kI,QACvB,SAASsjB,KACP7qJ,KAAK6oI,GAAK8hB,GAAY,KACtB3qJ,KAAK8qJ,OAASF,GAAU,KACxB5qJ,KAAK+qJ,SAAWH,GAAUH,GAASC,QACnC1qJ,KAAKgrJ,UAAY,EACjBhrJ,KAAKirJ,eAAiB,EACtBjrJ,KAAKkrJ,WAAa,EAClBlrJ,KAAKmrJ,OAAS,EACdnrJ,KAAKorJ,YAAc,EACnBprJ,KAAKqrJ,kBAAoB,EACzBrrJ,KAAK6rI,WAAa,EAClB7rI,KAAKgsI,iBAAmB,EACxBhsI,KAAKsrJ,aAAeV,GAAU,GAC9B5qJ,KAAKurJ,cAAgBX,GAAU,GAC/B5qJ,KAAKwrJ,cAAgB,EACrBxrJ,KAAKyrJ,cAAgB,EACrBzrJ,KAAK0rJ,QAAU,EACf1rJ,KAAK2rJ,eAAiB,EACtB3rJ,KAAK4rJ,mBAAqB,EAC1B5rJ,KAAK6rJ,aAAe,EACpB7rJ,KAAK8rJ,SAAW,EAChB9rJ,KAAK+rJ,SAAW,EAChB/rJ,KAAKgsJ,SAAW,EAChBhsJ,KAAKisJ,OAAS,EACdjsJ,KAAKksJ,OAAS,EACdlsJ,KAAKmsJ,UAAY,EACjBnsJ,KAAK+wE,MAAQ65E,GAAUH,GAASC,QAChC1qJ,KAAKgJ,OAAS4hJ,GAAUH,GAASC,QACjC1qJ,KAAKosJ,WAAa,EAClBpsJ,KAAKqsJ,oBAAsB,KAC3BrsJ,KAAKssJ,KAAO1B,GAAU,GACtB5qJ,KAAKusJ,kBAAoB,EACzB,IAAI9hF,EAAQzqE,KACZ,SAASwsJ,EAAUtxC,GACjB,OAAO,IAAI8oB,WAAW9oB,EACxB,CACA,SAASuxC,EAAYvxC,GACnB,OAAO,IAAIgpB,aAAahpB,EAC1B,CACAl7G,KAAKsZ,OAAS,SAASozI,GACrBjiF,EAAMo+D,GAAK4jB,EAAYC,EAAM7jB,IAC7Bp+D,EAAMqgF,OAAS0B,EAAUE,EAAM5B,QAC/BrgF,EAAMsgF,SAAWyB,EAAUE,EAAM3B,UACjCtgF,EAAMugF,UAAY0B,EAAM1B,UACxBvgF,EAAMwgF,eAAiByB,EAAMzB,eAC7BxgF,EAAMygF,WAAawB,EAAMxB,WACzBzgF,EAAM0gF,OAASuB,EAAMvB,OACrB1gF,EAAM2gF,YAAcsB,EAAMtB,YAC1B3gF,EAAM4gF,kBAAoBqB,EAAMrB,kBAChC5gF,EAAMohE,WAAa6gB,EAAM7gB,WACzBphE,EAAMuhE,iBAAmB0gB,EAAM1gB,iBAC/BvhE,EAAM6gF,aAAekB,EAAUE,EAAMpB,cACrC7gF,EAAM8gF,cAAgBiB,EAAUE,EAAMnB,eACtC9gF,EAAM+gF,cAAgBkB,EAAMlB,cAC5B/gF,EAAMghF,cAAgBiB,EAAMjB,cAC5BhhF,EAAMihF,QAAUgB,EAAMhB,QACtBjhF,EAAMkhF,eAAiBe,EAAMf,eAC7BlhF,EAAMmhF,mBAAqBc,EAAMd,mBACjCnhF,EAAMohF,aAAea,EAAMb,aAC3BphF,EAAMqhF,SAAWY,EAAMZ,SACvBrhF,EAAMshF,SAAWW,EAAMX,SACvBthF,EAAMuhF,SAAWU,EAAMV,SACvBvhF,EAAMwhF,OAASS,EAAMT,OACrBxhF,EAAMyhF,OAASQ,EAAMR,OACrBzhF,EAAM0hF,UAAYO,EAAMP,UACxB1hF,EAAMsG,MAAQy7E,EAAUE,EAAM37E,OAC9BtG,EAAMzhE,OAASwjJ,EAAUE,EAAM1jJ,QAC/ByhE,EAAM2hF,WAAaM,EAAMN,WACzB3hF,EAAM4hF,oBAAsBK,EAAML,oBAAoBroJ,MAAM,GAC5DymE,EAAM6hF,KAAOE,EAAUE,EAAMJ,MAC7B7hF,EAAM8hF,kBAAoBG,EAAMH,iBAClC,CACF,CACA,IAAII,GAAYhqJ,GAAO4kI,QACvB,SAASqlB,KACP5sJ,KAAKurI,GAAK,CACR,CAAC,KAAM,MACP,CAAC,KAAM,OAETvrI,KAAK6sJ,gBAAkB,EACvB7sJ,KAAK8sJ,aAAe,EACpB9sJ,KAAK+sJ,cAAgB,EACrB/sJ,KAAKgtJ,eAAiB,EACtBhtJ,KAAKitJ,MAAQ,CAACN,GAAU,GAAIA,GAAU,IACtC,IAAK,IAAIzhB,EAAK,EAAGA,EAAK,EAAGA,IACvB,IAAK,IAAIF,EAAK,EAAGA,EAAK,EAAGA,IACvBhrI,KAAKurI,GAAGL,GAAIF,GAAM,IAAI6f,EAG5B,CACA,IAAIqC,GAAWvqJ,GAAOikI,OAClBumB,GAAYxqJ,GAAO4kI,QACvB,SAAS6lB,GAASC,EAAMC,EAAMC,EAAOC,GACnCxtJ,KAAKwK,EAAI2iJ,GAAU,EAAI9kB,GAAQoE,SAC/BzsI,KAAK8a,EAAIqyI,GAAU,EAAI9kB,GAAQqE,SAC/B1sI,KAAKytJ,OAASN,GAAU,EAAI9kB,GAAQmL,QACpCxzI,KAAK0tJ,OAASP,GAAU,EAAI9kB,GAAQoL,QACpC,IAAIjpI,EAAIxK,KAAKwK,EACTsQ,EAAI9a,KAAK8a,EACW,GAApB/Z,UAAUO,SACZtB,KAAKqtJ,KAAOtsJ,UAAU,GACtBf,KAAKstJ,KAAOvsJ,UAAU,GACtBf,KAAKutJ,MAAQxsJ,UAAU,GACvBf,KAAKwtJ,MAAQzsJ,UAAU,GACvBmsJ,GAAS9gB,UACPpsI,KAAKqtJ,KACL,EACA7iJ,EACA,EACAwG,KAAKwF,IAAIxW,KAAKqtJ,KAAK/rJ,OAAQtB,KAAKwK,EAAElJ,SAEpC4rJ,GAAS9gB,UACPpsI,KAAKstJ,KACL,EACAxyI,EACA,EACA9J,KAAKwF,IAAIxW,KAAKstJ,KAAKhsJ,OAAQtB,KAAK8a,EAAExZ,SAEpC4rJ,GAAS9gB,UACPpsI,KAAKutJ,MACL,EACAvtJ,KAAKytJ,OACL,EACAz8I,KAAKwF,IAAIxW,KAAKutJ,MAAMjsJ,OAAQtB,KAAKytJ,OAAOnsJ,SAE1C4rJ,GAAS9gB,UACPpsI,KAAKwtJ,MACL,EACAxtJ,KAAK0tJ,OACL,EACA18I,KAAKwF,IAAIxW,KAAKwtJ,MAAMlsJ,OAAQtB,KAAK0tJ,OAAOpsJ,SAG9C,CACA,IAAIqsJ,GAAchrJ,GAAO0kI,UACrBumB,GAAgBjrJ,GAAO2kI,YACvBumB,GAAYlrJ,GAAO4kI,QACvB,SAASumB,KACP9tJ,KAAKkgJ,iBAAmB0N,GAAc,CAAC,EAAG,IAC1C5tJ,KAAKygJ,YAAcoN,GAAU,GAC7B7tJ,KAAKuyI,SAAWob,GAAY,IAC5B3tJ,KAAK+tJ,SAAWJ,GAAYtlB,GAAQoE,SACpCzsI,KAAKguJ,UAAYL,GAAYtlB,GAAQqE,SACrC1sI,KAAKwgJ,WAAa,EAClBxgJ,KAAKugJ,aAAe,CACtB,CACA,SAAS0N,KACPjuJ,KAAK6jJ,IAAM,EACX7jJ,KAAK4uB,KAAO,EACZ5uB,KAAKkuJ,KAAO,EACZluJ,KAAK8+H,IAAM,EACX9+H,KAAKie,KAAO,EACZje,KAAKmuJ,IAAM,KACXnuJ,KAAKouJ,cAAgB,EACrBpuJ,KAAKquJ,cAAgB,EACrBruJ,KAAKsuJ,eAAiB,CACxB,CACA,IAAIC,GAAa5rJ,GAAOwkI,SACpBC,GAAazkI,GAAOykI,WACpBonB,GAAc7rJ,GAAO0kI,UACrBonB,GAAgB9rJ,GAAO2kI,YACvBonB,GAAY/rJ,GAAO4kI,QACnBonB,GAAchsJ,GAAO6kI,UAMzB,SAASonB,KACP,IAAIC,EAAiB,GAgDrB,SAASC,IACP9uJ,KAAK+uJ,aAAe,EACpB/uJ,KAAKspE,IAAM,EACXtpE,KAAKk9E,IAAMqxE,GAAWM,EACxB,CAnDA7uJ,KAAKgvJ,SAAW,EAChBhvJ,KAAKsvI,uBAAyB,EAC9BtvI,KAAKivJ,oBAAsB,EAC3BjvJ,KAAKkvJ,0BAA4B,EACjClvJ,KAAKmvJ,MAAQV,GAAc,CAAC,EAAGG,GAAoBQ,SACnDpvJ,KAAKmrI,QAAU,EACfnrI,KAAKqvJ,YAAc,EACnBrvJ,KAAKirI,aAAe,EACpBjrI,KAAKsvJ,eAAiB,EACtBtvJ,KAAKuvJ,qBAAuB,EAC5BvvJ,KAAK4vI,QAAU,EACf5vI,KAAKwvJ,gBAAkB,EACvBxvJ,KAAKyvJ,gBAAkB,EACvBzvJ,KAAKivI,cAAgB,EACrBjvI,KAAK0vJ,iBAAmB,EACxB1vJ,KAAKkvI,SAAW,EAChBlvI,KAAK2vJ,SAAW,EAChB3vJ,KAAK4vJ,SAAW,EAChB5vJ,KAAK6vJ,UAAY,EACjB7vJ,KAAK8vJ,UAAY,EACjB9vJ,KAAK+vJ,cAAgB,EACrB/vJ,KAAKgwJ,kBAAoB,EACzBhwJ,KAAKiwJ,gBAAkB,EACvBjwJ,KAAKkxI,SAAW,EAChBlxI,KAAKkwJ,mBAAqB,EAC1BlwJ,KAAKurJ,cAAgB,EACrBvrJ,KAAKmwJ,iBAAmB,EACxBnwJ,KAAKowJ,gBAAkB,EACvBpwJ,KAAKsrI,QAAU,IAAIshB,GACnB5sJ,KAAKmyI,SAAWqc,GAAY,GAC5BxuJ,KAAK8wI,QAAU,EACf9wI,KAAKgxI,SAAW,EAChBhxI,KAAK+wI,SAAW,EAChB/wI,KAAKqwJ,SAAW,KAChBrwJ,KAAKswJ,UAAY,EACjBtwJ,KAAKuwJ,SAAW7B,GAAU,GAC1B1uJ,KAAKwwJ,YAAc9B,GAAU,GAC7B1uJ,KAAK09I,cAAgB,EACrB19I,KAAKywJ,OAAS/B,GAAU,KACxB1uJ,KAAK0wJ,WAAahC,GAAUjE,GAASC,QACrC1qJ,KAAK2wJ,aAAc,EACnB3wJ,KAAK4wJ,UAAY,IAAI3qJ,MAAM,GAC3BjG,KAAK6wJ,UAAY,IAAI5qJ,MAAM,EAAI2oJ,GAAoBkC,IAAM,GACzD9wJ,KAAK+wJ,MAAQ3pB,GAAW,GACxBpnI,KAAKgxJ,aAAe,EACpBhxJ,KAAK2rI,UAAY8iB,GAAc,CAAC,EAAG,EAAG,GAAIpmB,GAAQ+K,UAClDpzI,KAAKisI,WAAauiB,GAAY,IAM9BxuJ,KAAKixJ,OAAS,IAAIhrJ,MAAM2oJ,GAAoBsC,gBAC5ClxJ,KAAKmxJ,MAAQ,EACbnxJ,KAAKoxJ,MAAQ,EACbpxJ,KAAKqxJ,eAAiB,EACtBrxJ,KAAKu/I,SAAW,EAChBv/I,KAAKs/I,QAAU,EACft/I,KAAKgnJ,cAAgB,IAAIoG,GACzBptJ,KAAKwiJ,SAAWgM,GAAYnmB,GAAQgL,QACpCrzI,KAAKmiJ,SAAWqM,GAAYnmB,GAAQgL,QACpCrzI,KAAK6gJ,KAAO4N,GAAc,CAAC,EAAGpmB,GAAQgL,SACtCrzI,KAAK8gJ,KAAO2N,GAAc,CAAC,EAAGpmB,GAAQgL,SACtCrzI,KAAK+8I,MAAQ0R,GAAc,CAAC,EAAGpmB,GAAQgL,SACvCrzI,KAAKi9I,MAAQwR,GAAc,CAAC,EAAGpmB,GAAQgL,SACvCrzI,KAAK88I,MAAQ,KACb98I,KAAK4gJ,MAAQ,KACb5gJ,KAAKmnJ,MAAQ,EACbnnJ,KAAK6sI,IAAM,IAAI5mI,MAAM,GACrBjG,KAAK8sI,GAAK,IAAI7mI,MAAM,GACpBjG,KAAK0wI,SAAW8d,GAAY,GAC5BxuJ,KAAK4uI,YAAc6f,GAAc,CAAC,EAAG,IACrCzuJ,KAAK64I,iBAAmB2V,GAAY,GACpCxuJ,KAAKw6I,MAAQgU,GAAYnmB,GAAQoE,SACjCzsI,KAAK26I,MAAQ6T,GAAYnmB,GAAQqE,SACjC1sI,KAAKk7I,KAAOwT,GAAUrmB,GAAQoE,SAC9BzsI,KAAKs8I,KAAOoS,GAAUrmB,GAAQoE,SAC9BzsI,KAAKs7I,KAAOoT,GAAUrmB,GAAQqE,SAC9B1sI,KAAK67I,KAAO6S,GAAUrmB,GAAQqE,SAC9B1sI,KAAKu8I,QAAU,EACfv8I,KAAK87I,QAAU,EACf97I,KAAK0gJ,MAAQiO,GAAY,CAACtmB,GAAQgL,OAAQ,IAC1CrzI,KAAK48I,QAAU+R,GAAY,CAACtmB,GAAQgL,OAAQ,IAC5CrzI,KAAK28I,WAAa+R,GAAUrmB,GAAQgL,QACpCrzI,KAAKi+I,WAAayQ,GAAUrmB,GAAQgL,QACpCrzI,KAAKk+I,YAAcsQ,GAAYnmB,GAAQgL,QACvCrzI,KAAKmmJ,SAAWqI,GAAYnmB,GAAQgL,QACpCrzI,KAAKomJ,SAAWoI,GAAYnmB,GAAQgL,QACpCrzI,KAAKsxJ,gBAAkB,EACvBtxJ,KAAKuxJ,gBAAkB,EACvBvxJ,KAAK4wI,GAAK4d,GAAY,GACtBxuJ,KAAKwxJ,eAAiB,EACtBxxJ,KAAKyxJ,eAAiB,EACtBzxJ,KAAK+mJ,kBAAoB,EACzB/mJ,KAAKg9I,cAAgB0R,GAAU,GAC/B1uJ,KAAKsyI,MAAQ,IAAIwb,GACjB9tJ,KAAK0xJ,eAAiB,IAAIzD,GAC1BjuJ,KAAK0uI,IAAM,KACX1uI,KAAKi8I,IAAM,KACXj8I,KAAK2xJ,YAAc,EACnB3xJ,KAAK4xJ,cAAgB,EACrB5xJ,KAAKqoJ,mBAAoB,EACzBroJ,KAAKooJ,gBAAiB,EACtBpoJ,KAAK6xJ,gBAAiB,EACtB7xJ,KAAK8xJ,WAAa,EAClB9xJ,KAAK+xJ,UAAY,EACjB/xJ,KAAKgyJ,eAAiB,EACtBhyJ,KAAKiyJ,OAAS,KACdjyJ,KAAKkyJ,iBAAmB,EACxBlyJ,KAAKmyJ,YAAc,EACnBnyJ,KAAKmvI,wBAA0Bwf,GAAY,CAAC,GAAI,IAChD3uJ,KAAKqvI,uBAAyBsf,GAAY,CAAC,GAAI,IAC/C3uJ,KAAKkyI,MAAQ,KACblyI,KAAKoyJ,IAAM,KACXpyJ,KAAKqyJ,mBAAqB,EAC1BryJ,KAAKsyJ,YAAc,KACnBtyJ,KAAKuyJ,YAAc,KACnBvyJ,KAAKyyI,eAAiB,KACtB,IAAK,IAAIvsI,EAAI,EAAGA,EAAIlG,KAAK8sI,GAAGxrI,OAAQ4E,IAClClG,KAAK8sI,GAAG5mI,GAAK,IAAIsmI,GAEnB,IAAStmI,EAAI,EAAGA,EAAIlG,KAAK6sI,IAAIvrI,OAAQ4E,IACnClG,KAAK6sI,IAAI3mI,GAAK,IAAIsmI,GAEpB,IAAStmI,EAAI,EAAGA,EAAIlG,KAAKixJ,OAAO3vJ,OAAQ4E,IACtClG,KAAKixJ,OAAO/qJ,GAAK,IAAI4oJ,CAEzB,CAtIAF,GAAoBQ,OAAS,KAAW/mB,GAAQ2K,SAAW3K,GAAQ6K,UACnE0b,GAAoBsC,eAAiB,IACrCtC,GAAoB4D,qBAAuB,KAC3C5D,GAAoB6D,qBAAuB,KAC3C7D,GAAoBkC,IAAM,IAmI1B,IAAI4B,GAAc/vJ,GAAO0kI,UACzB,SAASqH,KACP1uI,KAAK2uI,UAAY,EACjB3uI,KAAK6uI,eAAiB,EACtB7uI,KAAKunF,OAAS,EACdvnF,KAAK8uI,YAAc,EACnB9uI,KAAKmnJ,MAAQ,EACbnnJ,KAAKkU,MAAQ,EACblU,KAAKwK,EAAIkoJ,GAAYrqB,GAAQoE,SAC7BzsI,KAAK8a,EAAI43I,GAAYrqB,GAAQqE,SAC7B1sI,KAAKytJ,OAASiF,GAAYrqB,GAAQmL,QAClCxzI,KAAK0tJ,OAASgF,GAAYrqB,GAAQoL,QAClCzzI,KAAKg6I,KAAO0Y,GAAYrqB,GAAQgL,QAChCrzI,KAAK+5I,KAAO2Y,GAAYrqB,GAAQgL,QAChCrzI,KAAK+3I,MAAQ2a,GAAYrqB,GAAQwH,QAAU,EAC7C,CACA,IAAI8iB,GAAWhwJ,GAAOikI,OAClBgsB,GAAWjwJ,GAAOskI,OActB,SAAS4rB,KACP,IAAIC,EAAW,MACXC,EAAiB,IACjBC,EAA4BH,GAAeG,0BAC3CC,EAA8BJ,GAAeI,4BAC7CC,EAAS,CACX,CACE,eACC,kBACA,gBACD,kBACC,iBACA,mBACA,eACD,mBACC,iBACA,kBACD,gBACA,iBACC,iBACA,iBACD,gBACA,iBACA,iBACC,gBACD,gBACA,gBACA,iBAEF,CACE,gBACC,kBACA,gBACD,kBACC,iBACA,kBACA,gBACD,iBACC,iBACA,iBACD,gBACA,kBACC,iBACA,iBACD,gBACA,kBACC,iBACA,gBACD,gBACA,iBACC,iBAEH,CACE,iBACC,kBACA,gBACD,kBACC,iBACA,iBACD,gBACA,kBACC,iBACA,iBACD,gBACA,iBACA,iBACC,gBACD,gBACA,iBACC,iBACA,gBACD,gBACA,gBACC,iBAEH,CACE,iBACC,kBACA,gBACD,iBACC,iBACA,eACD,iBACC,gBACA,iBACA,iBACA,gBACD,iBACC,iBACA,gBACD,gBACA,iBACC,cACD,gBACA,gBACA,iBACC,iBAEH,CACE,iBACC,kBACA,eACD,iBACC,gBACD,gBACA,iBACC,iBACA,gBACD,iBACC,gBACA,iBACA,gBACA,gBACD,gBACA,gBACA,iBACC,iBACA,eACD,iBACC,gBAEH,CACE,gBACC,iBACA,gBACD,iBACC,iBACA,eACA,gBACD,gBACA,iBACC,iBACA,gBACD,gBACA,gBACA,gBACA,gBACA,iBACC,gBACD,iBACC,gBACD,gBACA,iBAEF,CACE,iBACC,kBACA,gBACD,gBACA,gBACC,gBACD,gBACA,iBACC,gBACD,gBACA,gBACC,iBACA,gBACD,eACA,iBACC,gBACD,gBACA,iBACC,eACD,iBACC,iBAEH,CACE,iBACC,iBACA,iBACA,iBACA,iBACA,gBACD,gBACA,eACA,gBACA,gBACA,iBACC,iBACA,iBACA,gBACD,iBACC,gBACD,gBACA,iBACC,gBACD,iBACC,iBAEH,CACE,iBACC,gBACA,iBACA,iBACA,iBACA,gBACD,iBACC,iBACA,gBACD,gBACA,gBACA,iBACC,iBACA,iBACA,iBACA,iBACA,aACD,gBACA,eACA,gBACC,kBAGDC,EAAW,CACb,CACE,iBACC,kBACA,iBACD,gBACA,iBAEF,CACE,iBACC,kBACA,iBACD,eACA,iBAEF,CACE,iBACC,kBACA,iBACD,gBACA,iBAEF,CACE,iBACC,kBACA,iBACD,gBACA,iBAEF,CACE,iBACC,kBACA,iBACD,gBACA,iBAEF,CACE,iBACC,kBACA,iBACD,gBACA,iBAEF,CACE,iBACC,kBACA,iBACD,gBACA,iBAEF,CACE,iBACC,iBACA,iBACD,gBACA,iBAEF,CACE,iBACC,kBACA,iBACD,gBACA,kBAGJ,SAASC,EAAW59I,EAAO69I,EAAUC,EAAQC,EAAWC,EAAUC,GAChE,MAAqB,GAAdD,IACLF,EAAOC,GAAa,MAAQ/9I,EAAM69I,EAAW,GAAKI,EAAO,GAAKH,EAAOC,EAAY,GAAKE,EAAO,GAAKj+I,EAAM69I,EAAW,GAAKI,EAAO,GAAKH,EAAOC,EAAY,GAAKE,EAAO,GAAKj+I,EAAM69I,EAAW,GAAKI,EAAO,GAAKH,EAAOC,EAAY,GAAKE,EAAO,GAAKj+I,EAAM69I,EAAW,GAAKI,EAAO,GAAKH,EAAOC,EAAY,GAAKE,EAAO,GAAKj+I,EAAM69I,EAAW,GAAKI,EAAO,GAAKH,EAAOC,EAAY,GAAKE,EAAO,GAAKj+I,EAAM69I,EAAW,GAAKI,EAAO,IAAMH,EAAOC,EAAY,GAAKE,EA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,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,EACA,GACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,GAEFA,KAAgB,CACd,EACA,EACA,EACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,GAEFA,MAAiB,CACf,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEFA,MAAiB,CACf,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,EACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEFA,MAAiB,CACf,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GAEFA,MAAiB,CACf,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,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,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,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,IACA,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,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,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GAEFA,MAAiB,CACf,EACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,EACA,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,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,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,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,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GAEFA,MAAiB,CACf,EACA,EACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IACA,KACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,KACA,IACA,IACA,EACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GAEFA,MAAiB,CACf,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEFA,MAAiB,CACf,EACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,IAEFA,MAAiB,CACf,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GAEFA,IAAe,CAAC,EAAG,EAAG,EAAG,GACzBA,IAAe,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACxCA,IAAe,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACxCA,IAAe,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,IAC9DA,IAAe,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAC7DA,IAAe,CACb,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,IAEFA,IAAe,CACb,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAEFA,IAAe,CACb,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,IAEFA,KAAgB,CACd,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAEFA,KAAgB,CACd,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,IAEFA,KAAgB,CACd,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAEFA,KAAgB,CACd,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,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,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,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,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,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,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAEFA,KAAgB,CACd,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,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,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,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,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,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAEFA,OAAkB,CAChB,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,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,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,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,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,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,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,GACA,IAEFA,KAAgB,CACd,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,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,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,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,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,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,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,GACA,IAEFA,KAAgB,CACd,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,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,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,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,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,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GAEFA,KAAgB,CACd,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IAEFA,KAAgB,CACd,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IAEFA,GAASh3D,GAAK,CACZ,IAAI22D,GAAY,EAAG,EAAG,KAAM,MAC5B,IAAIA,GAAY,EAAG,EAAGK,GAASC,KAAMD,GAASE,KAC9C,IAAIP,GAAY,EAAG,EAAGK,GAASG,KAAMH,GAASI,KAC9C,IAAIT,GAAY,EAAG,EAAGK,GAASK,KAAML,GAASM,KAC9C,IAAIX,GAAY,EAAG,EAAG,KAAM,MAC5B,IAAIA,GAAY,EAAG,EAAGK,GAASO,KAAMP,GAASQ,KAC9C,IAAIb,GAAY,EAAG,EAAGK,GAASS,KAAMT,GAASU,KAC9C,IAAIf,GAAY,EAAG,EAAGK,GAASW,KAAMX,GAASY,KAC9C,IAAIjB,GAAY,EAAG,EAAGK,GAASa,KAAMb,GAASc,KAC9C,IAAInB,GAAY,EAAG,EAAGK,GAASe,KAAMf,GAASgB,KAC9C,IAAIrB,GAAY,EAAG,EAAGK,GAASiB,MAAOjB,GAASkB,MAC/C,IAAIvB,GAAY,EAAG,EAAGK,GAASmB,MAAOnB,GAASoB,MAC/C,IAAIzB,GAAY,EAAG,EAAGK,GAASqB,MAAOrB,GAASsB,MAC/C,IAAI3B,GAAY,GAAI,EAAGK,GAASuB,MAAOvB,GAASwB,MAChD,IAAI7B,GAAY,EAAG,EAAG,KAAMK,GAASyB,QACrC,IAAI9B,GAAY,GAAI,EAAGK,GAAS0B,MAAO1B,GAAS2B,MAChD,IAAIhC,GAAY,EAAG,EAAGK,GAAS4B,MAAO5B,GAAS6B,MAC/C,IAAIlC,GAAY,EAAG,EAAGK,GAAS4B,MAAO5B,GAAS6B,MAC/C,IAAIlC,GAAY,EAAG,EAAGK,GAAS4B,MAAO5B,GAAS6B,MAC/C,IAAIlC,GAAY,EAAG,GAAIK,GAAS4B,MAAO5B,GAAS6B,MAChD,IAAIlC,GAAY,EAAG,GAAIK,GAAS4B,MAAO5B,GAAS6B,MAChD,IAAIlC,GAAY,EAAG,IAAKK,GAAS4B,MAAO5B,GAAS6B,MACjD,IAAIlC,GAAY,GAAI,KAAMK,GAAS4B,MAAO5B,GAAS6B,MACnD,IAAIlC,GAAY,GAAI,KAAMK,GAAS4B,MAAO5B,GAAS6B,MACnD,IAAIlC,GAAY,EAAG,GAAIK,GAAS8B,MAAO9B,GAAS+B,MAChD,IAAIpC,GAAY,EAAG,GAAIK,GAAS8B,MAAO9B,GAAS+B,MAChD,IAAIpC,GAAY,EAAG,GAAIK,GAAS8B,MAAO9B,GAAS+B,MAChD,IAAIpC,GAAY,EAAG,IAAKK,GAAS8B,MAAO9B,GAAS+B,MACjD,IAAIpC,GAAY,EAAG,IAAKK,GAAS8B,MAAO9B,GAAS+B,MACjD,IAAIpC,GAAY,EAAG,IAAKK,GAAS8B,MAAO9B,GAAS+B,MACjD,IAAIpC,GAAY,GAAI,KAAMK,GAAS8B,MAAO9B,GAAS+B,MACnD,IAAIpC,GAAY,GAAI,KAAMK,GAAS8B,MAAO9B,GAAS+B,MACnD,IAAIpC,GAAY,EAAG,EAAGK,GAASgC,MAAOhC,GAASiC,MAC/C,IAAItC,GAAY,EAAG,EAAGK,GAASkC,MAAOlC,GAASmC,OAEjDnC,GAASoC,SAAW,CAClB,MACA,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,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,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QAEFpC,GAASqC,QAAU,CACjB,MACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QAEFrC,GAASsC,QAAU,CACjB,MACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QAEFtC,GAASuC,cAAgB,CACvB,CACE,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,KACC,GAEH,CACE,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,KACC,GAEH,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAE9DvC,GAASwC,iBAAmB,CAC1B,CAAC,MAAO,KAAM,MAAO,GACrB,CAAC,MAAO,KAAM,MAAO,GACrB,CAAC,MAAO,KAAM,KAAM,IAEtBxC,GAASyC,WAAa,CAAC,EAAG,EAAG,GAAI,GAAI,IACrC,IAAIC,GAAYt5J,GAAOkkI,QACnBC,GAAQnkI,GAAOmkI,MACfo1B,GAASv5J,GAAOqkI,KAChBm1B,GAAcx5J,GAAO0kI,UACrB+0B,GAAYz5J,GAAO4kI,QACnB80B,GAAW15J,GAAO+kI,OAKtB,SAAS40B,KACP,IAAIC,EAAM,KACNnE,EAAK,KACLtqB,EAAM,KAMV,SAAS0uB,EAAMpoJ,GACb,OAAOqoJ,EAAMroJ,EAAIkoJ,GAAYI,OAC/B,CAPA18J,KAAKiuI,WAAa,SAAS0uB,EAAKC,EAAKzuB,GACnCouB,EAAMI,EACNvE,EAAKwE,EACL9uB,EAAMK,CACR,EAIAnuI,KAAK68J,OAAS,SAASzoJ,GACrB,OAAO0oJ,EAAO1oJ,EAChB,EACA,IAAI2oJ,EAAc,qBACdC,EA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IAAK,KACrD,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACnB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAErB,IAAIA,GACF,CACE,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEF,CACE,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,KAEF,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACnB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAErB,IAAIA,GACF,CACE,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEF,CACE,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,KAEF,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACnB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAErB,IAAIA,GACF,CACE,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEF,CACE,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,KAEF,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACnB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,KAGvB,IAAIqP,EAAQN,GAAYe,EAAQR,EAAS,GACrCI,EAASX,GAAYe,GACrBK,EAAQpB,GAAYc,GACpBO,EAAQrB,GAAYc,GAExB,SAASQ,EAAQluB,EAAK5hI,GACpB,IAAIstI,EAAMnN,EAAIoZ,WAAWv5I,EAAG4hI,GAG5B,OAFA0L,GAAOkiB,EACPliB,EAAMjqI,KAAKsoI,IAAI,GAAI2B,EAAM,GAAK1L,EAAIyR,UAC3B/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ACf,CACA,SAASc,EAAWC,EAAM1mJ,EAAMilJ,EAAOS,EAAOC,EAAKT,EAAaC,EAAc1Y,EAAMka,EAAIC,EAAMtB,EAAOC,EAAOsB,EAASC,GACnHx4K,KAAK6oJ,WAAan3H,EAClB1xB,KAAKu3K,aAAeZ,EACpB32K,KAAKi4K,UAAYb,EACjBp3K,KAAKy4K,QAAUpB,EACfr3K,KAAKy3K,OAASb,EACd52K,KAAK03K,KAAOb,EACZ72K,KAAK04K,OAASva,EACdn+J,KAAK4pH,MAAQyuD,EACbr4K,KAAK23K,YAAcW,EACnBt4K,KAAK63K,UAAYb,EACjBh3K,KAAK83K,UAAYb,EACjBj3K,KAAKg4K,QAAUO,EACfv4K,KAAK24K,QAAUH,CACjB,CACA,IAAII,EACJ54K,KAAKiuI,WAAa,SAAS4qC,GACzBD,EAAOC,CACT,EACA,IAAIC,EAAqB,CACvB,IAAIrC,EACF,EACA,EACA,EACA,EACA,IACA,KACC,KACA,IACD,IACA,EACA,EACA,EACA,EACA,GACA,KAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,KACC,KACA,IACD,IACA,IACA,EACA,EACA,EACA,GACA,MAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,KACC,KACA,IACD,IACA,EACA,EACA,EACA,EACA,GACA,MAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,KACC,KACA,IACD,IACA,GACC,EACD,EACA,EACA,GACA,MAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,EACA,KACC,IACA,IACD,IACA,KACC,EACD,EACA,EACA,EACA,MAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,IACA,GACA,IACC,IACD,GACC,GACD,KACA,EACA,EACA,MAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,IACA,IACA,KACC,KACD,KACC,GACD,KACA,EACA,EACA,KAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,IACA,GACA,KACC,KACD,GACC,GACD,KACA,EACA,EACA,KAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,IACA,IACA,MACC,KACD,IACC,GACD,KACA,EACA,EACA,GAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,IACA,IACA,KACC,GACD,IACC,GACD,KACA,EACA,EACA,GAEF,IAAIA,EACF,GACA,EACA,EACA,EACA,IACA,IACA,EACA,GACC,GACD,IACC,GACD,KACA,EACA,EACA,IAGAsC,EAAqB,CACvB,IAAItC,EACF,EACA,EACA,EACA,EACA,IACA,IACC,GACA,EACD,IACA,EACA,EACA,EACA,EACA,GACA,KAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,IACC,KACA,IACD,IACA,IACA,EACA,EACA,EACA,GACA,MAEF,IAAIA,EAAW,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,KAAM,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,MACnE,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,IACC,KACA,KACD,IACA,GACC,EACD,EACA,EACA,GACA,MAEF,IAAIA,EAAW,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,IAAK,GAAK,EAAG,KAAM,EAAG,EAAG,EAAG,EAAG,MACpE,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,IACC,EACD,MACC,IACD,GACC,GACD,KACA,EACA,EACA,MAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,IACC,EACD,MACC,IACD,KACC,GACD,KACA,EACA,EACA,GAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,GACA,GACA,GACC,KACD,GACC,GACD,KACA,EACA,EACA,GAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,GACA,EACA,KACC,GACD,IACC,GACD,KACA,EACA,EACA,GAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,GACA,IACA,MACC,GACD,IACC,GACD,KACA,EACA,EACA,GAEF,IAAIA,EACF,GACA,EACA,EACA,EACA,IACA,GACA,EACA,MACC,GACD,IACC,GACD,KACA,EACA,EACA,IA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5C,GAAX/lK,EACFo9H,EAAIsL,MAAQ5tE,EAAK4tE,MACR7pI,KAAK01G,IAAI6oB,EAAIsL,QAAS,GAAK,IACpCtL,EAAIsL,MAAQ5tE,EAAK4tE,OACJ,GAAX1oI,IACFo9H,EAAI2Z,MAAQv+I,EACZ4kI,EAAI0Z,WAAa70I,EAErB,CACA,IAAIglK,EAAiB,CACnB,IAAIjB,EACF,EACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,GACC,GACD,GACA,MACA,GAEF,IAAIA,EACF,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,GACC,GACD,GACA,KACA,GAEF,IAAIA,EACF,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,GACC,GACD,GACA,KACA,GAEF,IAAIA,EACF,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,GACC,GACD,GACA,KACA,GAEF,IAAIA,EACF,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,GACC,GACD,GACA,KACA,GAEF,IAAIA,EACF,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,GACC,GACD,GACA,KACA,GAEF,IAAIA,EACF,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,GACC,EACD,GACA,KACA,GAEF,IAAIA,EACF,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,GACC,EACD,GACA,KACA,GAEF,IAAIA,EACF,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,EACA,EACA,EACA,KACA,GAEF,IAAIA,EACF,GACA,EACA,EACA,EACA,IACA,IACA,IACA,EACA,IACA,EACA,EACA,IACA,KACA,GAEF,IAAIA,EACF,IACA,EACA,EACA,EACA,KACA,IACA,IACA,EACA,IACA,EACA,EACA,IACA,KACA,GAEF,IAAIA,EACF,IACA,EACA,EACA,EACA,KACA,IACA,IACA,EACA,IACA,EACA,EACA,EACA,KACA,GAEF,IAAIA,EACF,IACA,EACA,EA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ACF,CACA,IAAIj5C,GAASjkI,GAAOikI,OAChBC,GAAUlkI,GAAOkkI,QACjBE,GAAapkI,GAAOokI,WACpBE,GAAStkI,GAAOskI,OAChB64C,GAAan9K,GAAOwkI,SACpB44C,GAAWp9K,GAAO+kI,OAGtB,SAASs4C,KACP,IAAIpH,EACAt2E,EACA/7F,EACJvG,KAAKiuI,WAAa,SAAS4qC,EAAO3qC,EAAK/7F,GACrCymI,EAAOC,EACPv2E,EAAK4rC,EACL3nI,EAAI4rC,CACN,EACA,IAAI8tI,EAAc,EACdC,EAAa,EACbC,EAAW,EACXC,EAAiB,EACjBC,EAAgBL,GAAOK,cACvBC,EAAeN,GAAOM,aACtBC,EAAgBF,EAAgB,EAAI,EAAI,EAAI,EAAI,EAChDG,EAAiBD,EAAgB,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EACjFE,EAAgB,IAChBC,EAAgB,GAChBC,EAAiB,GACjBC,EAAa,KACbC,EAAU,OACVC,EAAU,OACVC,EAAc,CAChB,EACA,MACA,MACA,IACA,MACA,IACA,IACA,MACA,MACA,KACA,KACA,MACA,KACA,MACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,MACA,KACA,KACA,MACA,MACA,KACA,MACA,KACA,KACA,MACA,MACA,KACA,KACA,MACA,KACA,MACA,MACA,KACA,KACA,MACA,MACA,IACA,MACA,KACA,KACA,MACA,KACA,MACA,MACA,KACA,MACA,KACA,KACA,MACA,MACA,KACA,KACA,MACA,KACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,MACA,KACA,MACA,MACA,KACA,KACA,MACA,MACA,KACA,MACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEF,SAASC,EAAOC,EAAIxR,GAIlB,GAHAwR,EAAG7yB,gBACH6yB,EAAGp9B,KAAO4rB,EACVwR,EAAGryJ,SACCqyJ,EAAGryJ,KAAOqyJ,EAAG/yB,QAGb+yB,EAAGniD,IAAMmiD,EAAGhjK,OACdgjK,EAAG9yB,IAAI8yB,EAAGniD,KAAOmiD,EAAGp9B,IACpBo9B,EAAGniD,MACHmiD,EAAGryJ,KAAO,GAERqyJ,EAAGniD,KAAOmiD,EAAGhjK,MAAM,CACrB,IAAK,IAAI/X,EAAI,EAAGA,EAAI+6K,EAAGhjK,KAAM/X,GAAK,EAChC+6K,EAAG9yB,IAAIjoJ,EAAI,GAAK+6K,EAAG9yB,IAAIjoJ,GAEzB+6K,EAAG/yB,MAAQ,EACX+yB,EAAGniD,KAAO,CACZ,CACF,CACA,SAASoiD,EAAcD,EAAIt2I,GACzB,KAAIs2I,EAAGniD,KAAO,GAEd,IAAK,IAAI54H,EAAI,EAAGA,EAAIm6K,IAAiBn6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","sources":["webpack://src/./node_modules/axios/index.js","webpack://src/./node_modules/axios/lib/adapters/xhr.js","webpack://src/./node_modules/axios/lib/axios.js","webpack://src/./node_modules/axios/lib/cancel/Cancel.js","webpack://src/./node_modules/axios/lib/cancel/CancelToken.js","webpack://src/./node_modules/axios/lib/cancel/isCancel.js","webpack://src/./node_modules/axios/lib/core/Axios.js","webpack://src/./node_modules/axios/lib/core/InterceptorManager.js","webpack://src/./node_modules/axios/lib/core/buildFullPath.js","webpack://src/./node_modules/axios/lib/core/createError.js","webpack://src/./node_modules/axios/lib/core/dispatchRequest.js","webpack://src/./node_modules/axios/lib/core/enhanceError.js","webpack://src/./node_modules/axios/lib/core/mergeConfig.js","webpack://src/./node_modules/axios/lib/core/settle.js","webpack://src/./node_modules/axios/lib/core/transformData.js","webpack://src/./node_modules/axios/lib/defaults.js","webpack://src/./node_modules/axios/lib/helpers/bind.js","webpack://src/./node_modules/axios/lib/helpers/buildURL.js","webpack://src/./node_modules/axios/lib/helpers/combineURLs.js","webpack://src/./node_modules/axios/lib/helpers/cookies.js","webpack://src/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://src/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://src/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://src/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://src/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://src/./node_modules/axios/lib/helpers/spread.js","webpack://src/./node_modules/axios/lib/utils.js","webpack://src/./js/compatibility.ts","webpack://src/./node_modules/vue-loader/dist/exportHelper.js","webpack://src/./node_modules/core-js/internals/a-callable.js","webpack://src/./node_modules/core-js/internals/an-object.js","webpack://src/./node_modules/core-js/internals/array-includes.js","webpack://src/./node_modules/core-js/internals/array-set-length.js","webpack://src/./node_modules/core-js/internals/classof-raw.js","webpack://src/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://src/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://src/./node_modules/core-js/internals/create-property-descriptor.js","webpack://src/./node_modules/core-js/internals/define-built-in.js","webpack://src/./node_modules/core-js/internals/define-global-property.js","webpack://src/./node_modules/core-js/internals/descriptors.js","webpack://src/./node_modules/core-js/internals/document-create-element.js","webpack://src/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://src/./node_modules/core-js/internals/engine-user-agent.js","webpack://src/./node_modules/core-js/internals/engine-v8-version.js","webpack://src/./node_modules/core-js/internals/enum-bug-keys.js","webpack://src/./node_modules/core-js/internals/export.js","webpack://src/./node_modules/core-js/internals/fails.js","webpack://src/./node_modules/core-js/internals/function-bind-native.js","webpack://src/./node_modules/core-js/internals/function-call.js","webpack://src/./node_modules/core-js/internals/function-name.js","webpack://src/./node_modules/core-js/internals/function-uncurry-this.js","webpack://src/./node_modules/core-js/internals/get-built-in.js","webpack://src/./node_modules/core-js/internals/get-method.js","webpack://src/./node_modules/core-js/internals/global.js","webpack://src/./node_modules/core-js/internals/has-own-property.js","webpack://src/./node_modules/core-js/internals/hidden-keys.js","webpack://src/./node_modules/core-js/internals/ie8-dom-define.js","webpack://src/./node_modules/core-js/internals/indexed-object.js","webpack://src/./node_modules/core-js/internals/inspect-source.js","webpack://src/./node_modules/core-js/internals/internal-state.js","webpack://src/./node_modules/core-js/internals/is-array.js","webpack://src/./node_modules/core-js/internals/is-callable.js","webpack://src/./node_modules/core-js/internals/is-forced.js","webpack://src/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://src/./node_modules/core-js/internals/is-object.js","webpack://src/./node_modules/core-js/internals/is-pure.js","webpack://src/./node_modules/core-js/internals/is-symbol.js","webpack://src/./node_modules/core-js/internals/length-of-array-like.js","webpack://src/./node_modules/core-js/internals/make-built-in.js","webpack://src/./node_modules/core-js/internals/math-trunc.js","webpack://src/./node_modules/core-js/internals/object-define-property.js","webpack://src/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://src/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://src/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://src/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://src/./node_modules/core-js/internals/object-keys-internal.js","webpack://src/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://src/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://src/./node_modules/core-js/internals/own-keys.js","webpack://src/./node_modules/core-js/internals/require-object-coercible.js","webpack://src/./node_modules/core-js/internals/shared-key.js","webpack://src/./node_modules/core-js/internals/shared-store.js","webpack://src/./node_modules/core-js/internals/shared.js","webpack://src/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://src/./node_modules/core-js/internals/to-absolute-index.js","webpack://src/./node_modules/core-js/internals/to-indexed-object.js","webpack://src/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://src/./node_modules/core-js/internals/to-length.js","webpack://src/./node_modules/core-js/internals/to-object.js","webpack://src/./node_modules/core-js/internals/to-primitive.js","webpack://src/./node_modules/core-js/internals/to-property-key.js","webpack://src/./node_modules/core-js/internals/try-to-string.js","webpack://src/./node_modules/core-js/internals/uid.js","webpack://src/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://src/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://src/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://src/./node_modules/core-js/internals/well-known-symbol.js","webpack://src/./node_modules/core-js/modules/es.array.push.js","webpack://src/webpack/bootstrap","webpack://src/webpack/runtime/compat get default export","webpack://src/webpack/runtime/define property getters","webpack://src/webpack/runtime/global","webpack://src/webpack/runtime/hasOwnProperty shorthand","webpack://src/./node_modules/@vue/compat/dist/vue.runtime.esm-bundler.js","webpack://src/./js/components/ChatComponent.vue?e262","webpack://src/./js/components/ChatComponent.vue","webpack://src/./node_modules/vue-advanced-chat/dist/vue-advanced-chat.es.js","webpack://src/./js/components/ChatComponent.vue?ef42","webpack://src/./js/components/NotificationsBell.vue?641f","webpack://src/./js/components/NotificationsBell.vue","webpack://src/./js/components/sub/NotificationMessage.vue?cc67","webpack://src/./js/components/sub/NotificationMessage.vue","webpack://src/./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://src/./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack://src/./node_modules/date-fns/esm/toDate/index.js","webpack://src/./node_modules/date-fns/esm/startOfDay/index.js","webpack://src/./node_modules/date-fns/esm/differenceInCalendarDays/index.js","webpack://src/./node_modules/date-fns/esm/isDate/index.js","webpack://src/./node_modules/date-fns/esm/isValid/index.js","webpack://src/./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack://src/./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack://src/./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack://src/./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack://src/./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack://src/./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack://src/./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack://src/./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack://src/./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack://src/./node_modules/date-fns/esm/locale/en-US/index.js","webpack://src/./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack://src/./node_modules/date-fns/esm/addMilliseconds/index.js","webpack://src/./node_modules/date-fns/esm/subMilliseconds/index.js","webpack://src/./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack://src/./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack://src/./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack://src/./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack://src/./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack://src/./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack://src/./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack://src/./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack://src/./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack://src/./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack://src/./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack://src/./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack://src/./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack://src/./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack://src/./node_modules/date-fns/esm/format/index.js","webpack://src/./node_modules/date-fns/esm/formatRelative/index.js","webpack://src/./node_modules/date-fns/esm/locale/fr/_lib/formatDistance/index.js","webpack://src/./node_modules/date-fns/esm/locale/fr/_lib/formatLong/index.js","webpack://src/./node_modules/date-fns/esm/locale/fr/_lib/formatRelative/index.js","webpack://src/./node_modules/date-fns/esm/locale/fr/_lib/localize/index.js","webpack://src/./node_modules/date-fns/esm/locale/fr/_lib/match/index.js","webpack://src/./node_modules/date-fns/esm/locale/fr/index.js","webpack://src/./js/components/sub/NotificationMessage.vue?4cf0","webpack://src/./js/components/NotificationsBell.vue?67bf","webpack://src/./js/video/constants.ts","webpack://src/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://src/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://src/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://src/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://src/./js/video/utils.ts","webpack://src/./js/video/VideoPlayer.ts","webpack://src/./js/video/SyncVideoPlayer.ts","webpack://src/./js/video/VideoComponent.vue?c30e","webpack://src/./js/video/VideoComponent.vue","webpack://src/./js/video/VideoComponent.vue?eef0","webpack://src/./js/main.ts"],"sourcesContent":["module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","window.addEventListener(\"DOMContentLoaded\", () => {\n\n const testVideo = document.createElement(\"video\");\n if (testVideo.canPlayType) {\n // Check for Webm support\n const webm = \"\" !== testVideo.canPlayType('video/webm; codecs=\"vp8, vorbis\"');\n if (!webm){\n const container = document.getElementById(\"content\");\n if(container){\n const p = document.createElement(\"p\");\n p.classList.add(\"warning\");\n container.prepend(p);\n p.innerHTML = `\n Votre navigateur n'est pas compatible avec le format video <abbr title=\"WebM est un format de fichier multimédia ouvert, principalement destiné à un usage sur le web.\">WebM</abbr> des cours en direct.\n Veuillez téléchargez Firefox ou Google Chrome dans leur dernière version.\n `;\n }\n }\n \n }\n});","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// runtime helper for setting properties on components\n// in a tree-shakable way\nexports.default = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw new $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","'use strict';\nvar global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nmodule.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","'use strict';\nvar global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = global[TARGET] && global[TARGET].prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n","'use strict';\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nmodule.exports = false;\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\).*$/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nvar global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.35.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.35.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n var len = toIntegerOrInfinity(argument);\n return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 <= 121 and Safari <= 15.4; FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","/**\n* @vue/compat v3.4.15\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nfunction makeMap(str, expectsLowerCase) {\n const set = new Set(str.split(\",\"));\n return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val);\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty$1 = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty$1.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction((str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n});\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](arg);\n }\n};\nconst def = (obj, key, value) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n let ret = \"\";\n if (!styles || isString(styles)) {\n return ret;\n }\n for (const key in styles) {\n const value = styles[key];\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n if (isString(value) || typeof value === \"number\") {\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props)\n return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length)\n return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b)\n return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (val && val.__v_isRef) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v;\n};\n\nfunction warn$2(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n }\n }\n get active() {\n return this._active;\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n activeEffectScope = this;\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this._active) {\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n this._active = false;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction recordEffectScope(effect, scope = activeEffectScope) {\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeEffect;\nclass ReactiveEffect {\n constructor(fn, trigger, scheduler, scope) {\n this.fn = fn;\n this.trigger = trigger;\n this.scheduler = scheduler;\n this.active = true;\n this.deps = [];\n /**\n * @internal\n */\n this._dirtyLevel = 2;\n /**\n * @internal\n */\n this._trackId = 0;\n /**\n * @internal\n */\n this._runnings = 0;\n /**\n * @internal\n */\n this._shouldSchedule = false;\n /**\n * @internal\n */\n this._depsLength = 0;\n recordEffectScope(this, scope);\n }\n get dirty() {\n if (this._dirtyLevel === 1) {\n pauseTracking();\n for (let i = 0; i < this._depsLength; i++) {\n const dep = this.deps[i];\n if (dep.computed) {\n triggerComputed(dep.computed);\n if (this._dirtyLevel >= 2) {\n break;\n }\n }\n }\n if (this._dirtyLevel < 2) {\n this._dirtyLevel = 0;\n }\n resetTracking();\n }\n return this._dirtyLevel >= 2;\n }\n set dirty(v) {\n this._dirtyLevel = v ? 2 : 0;\n }\n run() {\n this._dirtyLevel = 0;\n if (!this.active) {\n return this.fn();\n }\n let lastShouldTrack = shouldTrack;\n let lastEffect = activeEffect;\n try {\n shouldTrack = true;\n activeEffect = this;\n this._runnings++;\n preCleanupEffect(this);\n return this.fn();\n } finally {\n postCleanupEffect(this);\n this._runnings--;\n activeEffect = lastEffect;\n shouldTrack = lastShouldTrack;\n }\n }\n stop() {\n var _a;\n if (this.active) {\n preCleanupEffect(this);\n postCleanupEffect(this);\n (_a = this.onStop) == null ? void 0 : _a.call(this);\n this.active = false;\n }\n }\n}\nfunction triggerComputed(computed) {\n return computed.value;\n}\nfunction preCleanupEffect(effect2) {\n effect2._trackId++;\n effect2._depsLength = 0;\n}\nfunction postCleanupEffect(effect2) {\n if (effect2.deps && effect2.deps.length > effect2._depsLength) {\n for (let i = effect2._depsLength; i < effect2.deps.length; i++) {\n cleanupDepEffect(effect2.deps[i], effect2);\n }\n effect2.deps.length = effect2._depsLength;\n }\n}\nfunction cleanupDepEffect(dep, effect2) {\n const trackId = dep.get(effect2);\n if (trackId !== void 0 && effect2._trackId !== trackId) {\n dep.delete(effect2);\n if (dep.size === 0) {\n dep.cleanup();\n }\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const _effect = new ReactiveEffect(fn, NOOP, () => {\n if (_effect.dirty) {\n _effect.run();\n }\n });\n if (options) {\n extend(_effect, options);\n if (options.scope)\n recordEffectScope(_effect, options.scope);\n }\n if (!options || !options.lazy) {\n _effect.run();\n }\n const runner = _effect.run.bind(_effect);\n runner.effect = _effect;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nlet pauseScheduleStack = 0;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction pauseScheduling() {\n pauseScheduleStack++;\n}\nfunction resetScheduling() {\n pauseScheduleStack--;\n while (!pauseScheduleStack && queueEffectSchedulers.length) {\n queueEffectSchedulers.shift()();\n }\n}\nfunction trackEffect(effect2, dep, debuggerEventExtraInfo) {\n var _a;\n if (dep.get(effect2) !== effect2._trackId) {\n dep.set(effect2, effect2._trackId);\n const oldDep = effect2.deps[effect2._depsLength];\n if (oldDep !== dep) {\n if (oldDep) {\n cleanupDepEffect(oldDep, effect2);\n }\n effect2.deps[effect2._depsLength++] = dep;\n } else {\n effect2._depsLength++;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrack) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n }\n}\nconst queueEffectSchedulers = [];\nfunction triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {\n var _a;\n pauseScheduling();\n for (const effect2 of dep.keys()) {\n if (effect2._dirtyLevel < dirtyLevel && dep.get(effect2) === effect2._trackId) {\n const lastDirtyLevel = effect2._dirtyLevel;\n effect2._dirtyLevel = dirtyLevel;\n if (lastDirtyLevel === 0) {\n effect2._shouldSchedule = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n effect2.trigger();\n }\n }\n }\n scheduleEffects(dep);\n resetScheduling();\n}\nfunction scheduleEffects(dep) {\n for (const effect2 of dep.keys()) {\n if (effect2.scheduler && effect2._shouldSchedule && (!effect2._runnings || effect2.allowRecurse) && dep.get(effect2) === effect2._trackId) {\n effect2._shouldSchedule = false;\n queueEffectSchedulers.push(effect2.scheduler);\n }\n }\n}\n\nconst createDep = (cleanup, computed) => {\n const dep = /* @__PURE__ */ new Map();\n dep.cleanup = cleanup;\n dep.computed = computed;\n return dep;\n};\n\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"iterate\" : \"\");\nconst MAP_KEY_ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"Map key iterate\" : \"\");\nfunction track(target, type, key) {\n if (shouldTrack && activeEffect) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = createDep(() => depsMap.delete(key)));\n }\n trackEffect(\n activeEffect,\n dep,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key\n } : void 0\n );\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n return;\n }\n let deps = [];\n if (type === \"clear\") {\n deps = [...depsMap.values()];\n } else if (key === \"length\" && isArray(target)) {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || !isSymbol(key2) && key2 >= newLength) {\n deps.push(dep);\n }\n });\n } else {\n if (key !== void 0) {\n deps.push(depsMap.get(key));\n }\n switch (type) {\n case \"add\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isIntegerKey(key)) {\n deps.push(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n pauseScheduling();\n for (const dep of deps) {\n if (dep) {\n triggerEffects(\n dep,\n 2,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n } : void 0\n );\n }\n }\n resetScheduling();\n}\nfunction getDepFromReactive(object, key) {\n var _a;\n return (_a = targetMap.get(object)) == null ? void 0 : _a.get(key);\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nconst arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations = {};\n [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\", i + \"\");\n }\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n return arr[key](...args.map(toRaw));\n } else {\n return res;\n }\n };\n });\n [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n pauseTracking();\n pauseScheduling();\n const res = toRaw(this)[key].apply(this, args);\n resetScheduling();\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n}\nfunction hasOwnProperty(key) {\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _shallow = false) {\n this._isReadonly = _isReadonly;\n this._shallow = _shallow;\n }\n get(target, key, receiver) {\n const isReadonly2 = this._isReadonly, shallow = this._shallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return shallow;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the reciever is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n if (targetIsArray && hasOwn(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (shallow) {\n return res;\n }\n if (isRef(res)) {\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(shallow = false) {\n super(false, shallow);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n if (!this._shallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n return false;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(shallow = false) {\n super(true, shallow);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(\n true\n);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get(target, key, isReadonly = false, isShallow = false) {\n target = target[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has: has2 } = getProto(rawTarget);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n if (has2.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has2.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n}\nfunction has(key, isReadonly = false) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly = false) {\n target = target[\"__v_raw\"];\n !isReadonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n}\nfunction add(value) {\n value = toRaw(value);\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n}\nfunction set(key, value) {\n value = toRaw(value);\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2 ? get2.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\", void 0, void 0, oldTarget);\n }\n return result;\n}\nfunction createForEach(isReadonly, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly, isShallow) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n console.warn(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations2 = {\n get(key) {\n return get(this, key);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations2 = {\n get(key) {\n return get(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = [\"keys\", \"values\", \"entries\", Symbol.iterator];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod(\n method,\n false,\n false\n );\n readonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n false\n );\n shallowInstrumentations2[method] = createIterableMethod(\n method,\n false,\n true\n );\n shallowReadonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n true\n );\n });\n return [\n mutableInstrumentations2,\n readonlyInstrumentations2,\n shallowInstrumentations2,\n shallowReadonlyInstrumentations2\n ];\n}\nconst [\n mutableInstrumentations,\n readonlyInstrumentations,\n shallowInstrumentations,\n shallowReadonlyInstrumentations\n] = /* @__PURE__ */ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly, shallow) {\n const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has2, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has2.call(target, rawKey)) {\n const type = toRawType(target);\n console.warn(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n console.warn(`value cannot be made reactive: ${String(target)}`);\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n def(value, \"__v_skip\", true);\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nclass ComputedRefImpl {\n constructor(getter, _setter, isReadonly, isSSR) {\n this._setter = _setter;\n this.dep = void 0;\n this.__v_isRef = true;\n this[\"__v_isReadonly\"] = false;\n this.effect = new ReactiveEffect(\n () => getter(this._value),\n () => triggerRefValue(this, 1),\n () => this.dep && scheduleEffects(this.dep)\n );\n this.effect.computed = this;\n this.effect.active = this._cacheable = !isSSR;\n this[\"__v_isReadonly\"] = isReadonly;\n }\n get value() {\n const self = toRaw(this);\n if (!self._cacheable || self.effect.dirty) {\n if (hasChanged(self._value, self._value = self.effect.run())) {\n triggerRefValue(self, 2);\n }\n }\n trackRefValue(self);\n if (self.effect._dirtyLevel >= 1) {\n triggerRefValue(self, 1);\n }\n return self._value;\n }\n set value(newValue) {\n this._setter(newValue);\n }\n // #region polyfill _dirty for backward compatibility third party code for Vue <= 3.3.x\n get _dirty() {\n return this.effect.dirty;\n }\n set _dirty(v) {\n this.effect.dirty = v;\n }\n // #endregion\n}\nfunction computed$1(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n const onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = !!(process.env.NODE_ENV !== \"production\") ? () => {\n console.warn(\"Write operation failed: computed value is readonly\");\n } : NOOP;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.effect.onTrack = debugOptions.onTrack;\n cRef.effect.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nfunction trackRefValue(ref2) {\n if (shouldTrack && activeEffect) {\n ref2 = toRaw(ref2);\n trackEffect(\n activeEffect,\n ref2.dep || (ref2.dep = createDep(\n () => ref2.dep = void 0,\n ref2 instanceof ComputedRefImpl ? ref2 : void 0\n )),\n !!(process.env.NODE_ENV !== \"production\") ? {\n target: ref2,\n type: \"get\",\n key: \"value\"\n } : void 0\n );\n }\n}\nfunction triggerRefValue(ref2, dirtyLevel = 2, newVal) {\n ref2 = toRaw(ref2);\n const dep = ref2.dep;\n if (dep) {\n triggerEffects(\n dep,\n dirtyLevel,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: newVal\n } : void 0\n );\n }\n}\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, __v_isShallow) {\n this.__v_isShallow = __v_isShallow;\n this.dep = void 0;\n this.__v_isRef = true;\n this._rawValue = __v_isShallow ? value : toRaw(value);\n this._value = __v_isShallow ? value : toReactive(value);\n }\n get value() {\n trackRefValue(this);\n return this._value;\n }\n set value(newVal) {\n const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);\n newVal = useDirectValue ? newVal : toRaw(newVal);\n if (hasChanged(newVal, this._rawValue)) {\n this._rawValue = newVal;\n this._value = useDirectValue ? newVal : toReactive(newVal);\n triggerRefValue(this, 2, newVal);\n }\n }\n}\nfunction triggerRef(ref2) {\n triggerRefValue(ref2, 2, !!(process.env.NODE_ENV !== \"production\") ? ref2.value : void 0);\n}\nfunction unref(ref2) {\n return isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this.dep = void 0;\n this.__v_isRef = true;\n const { get, set } = factory(\n () => trackRefValue(this),\n () => triggerRefValue(this)\n );\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n console.warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this.__v_isRef = true;\n }\n get value() {\n const val = this._object[this._key];\n return val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(toRaw(this._object), this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this.__v_isRef = true;\n this.__v_isReadonly = true;\n }\n get value() {\n return this._getter();\n }\n}\nfunction toRef(source, key, defaultValue) {\n if (isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n const val = source[key];\n return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);\n}\n\nconst TrackOpTypes = {\n \"GET\": \"get\",\n \"HAS\": \"has\",\n \"ITERATE\": \"iterate\"\n};\nconst TriggerOpTypes = {\n \"SET\": \"set\",\n \"ADD\": \"add\",\n \"DELETE\": \"delete\",\n \"CLEAR\": \"clear\"\n};\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nfunction warn$1(msg, ...args) {\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n msg + args.join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\"))\n return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn$1(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorCodes = {\n \"SETUP_FUNCTION\": 0,\n \"0\": \"SETUP_FUNCTION\",\n \"RENDER_FUNCTION\": 1,\n \"1\": \"RENDER_FUNCTION\",\n \"WATCH_GETTER\": 2,\n \"2\": \"WATCH_GETTER\",\n \"WATCH_CALLBACK\": 3,\n \"3\": \"WATCH_CALLBACK\",\n \"WATCH_CLEANUP\": 4,\n \"4\": \"WATCH_CLEANUP\",\n \"NATIVE_EVENT_HANDLER\": 5,\n \"5\": \"NATIVE_EVENT_HANDLER\",\n \"COMPONENT_EVENT_HANDLER\": 6,\n \"6\": \"COMPONENT_EVENT_HANDLER\",\n \"VNODE_HOOK\": 7,\n \"7\": \"VNODE_HOOK\",\n \"DIRECTIVE_HOOK\": 8,\n \"8\": \"DIRECTIVE_HOOK\",\n \"TRANSITION_HOOK\": 9,\n \"9\": \"TRANSITION_HOOK\",\n \"APP_ERROR_HANDLER\": 10,\n \"10\": \"APP_ERROR_HANDLER\",\n \"APP_WARN_HANDLER\": 11,\n \"11\": \"APP_WARN_HANDLER\",\n \"FUNCTION_REF\": 12,\n \"12\": \"FUNCTION_REF\",\n \"ASYNC_COMPONENT_LOADER\": 13,\n \"13\": \"ASYNC_COMPONENT_LOADER\",\n \"SCHEDULER\": 14,\n \"14\": \"SCHEDULER\"\n};\nconst ErrorTypeStrings$1 = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core .\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n let res;\n try {\n res = args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n return res;\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n const appErrorHandler = instance.appContext.config.errorHandler;\n if (appErrorHandler) {\n callWithErrorHandling(\n appErrorHandler,\n null,\n 10,\n [err, exposedInstance, errorInfo]\n );\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings$1[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else {\n console.error(err);\n }\n}\n\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.pre) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!queue.length || !queue.includes(\n job,\n isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex\n )) {\n if (job.id == null) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(job.id), 0, job);\n }\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true;\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction invalidateJob(job) {\n const i = queue.indexOf(job);\n if (i > flushIndex) {\n queue.splice(i, 1);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (!activePostFlushCbs || !activePostFlushCbs.includes(\n cb,\n cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex\n )) {\n pendingPostFlushCbs.push(cb);\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.pre) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n cb();\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\n continue;\n }\n activePostFlushCbs[postFlushIndex]();\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nconst comparator = (a, b) => {\n const diff = getId(a) - getId(b);\n if (diff === 0) {\n if (a.pre && !b.pre)\n return -1;\n if (b.pre && !a.pre)\n return 1;\n }\n return diff;\n};\nfunction flushJobs(seen) {\n isFlushPending = false;\n isFlushing = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n queue.sort(comparator);\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && job.active !== false) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n callWithErrorHandling(job, null, 14);\n }\n }\n } finally {\n flushIndex = 0;\n queue.length = 0;\n flushPostFlushCbs(seen);\n isFlushing = false;\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n if (!seen.has(fn)) {\n seen.set(fn, 1);\n } else {\n const count = seen.get(fn);\n if (count > RECURSION_LIMIT) {\n const instance = fn.ownerInstance;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n } else {\n seen.set(fn, count + 1);\n }\n }\n}\n\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = /* @__PURE__ */ new Set();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n instance.effect.dirty = true;\n instance.update();\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record)\n return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (const instance of instances) {\n const oldComp = normalizeClassComponent(instance.type);\n if (!hmrDirtyComponents.has(oldComp)) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.add(oldComp);\n }\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n hmrDirtyComponents.add(oldComp);\n instance.ceReload(newComp.styles);\n hmrDirtyComponents.delete(oldComp);\n } else if (instance.parent) {\n instance.parent.effect.dirty = true;\n queueJob(instance.parent.update);\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n }\n queuePostFlushCb(() => {\n for (const instance of instances) {\n hmrDirtyComponents.delete(\n normalizeClassComponent(instance.type)\n );\n }\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools$1;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$2(event, ...args) {\n if (devtools$1) {\n devtools$1.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook$1(hook, target) {\n var _a, _b;\n devtools$1 = hook;\n if (devtools$1) {\n devtools$1.enabled = true;\n buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook$1(newHook, target);\n });\n setTimeout(() => {\n if (!devtools$1) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$2(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$2(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:added\" /* COMPONENT_ADDED */\n);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools$1 && typeof devtools$1.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools$1.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$2(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:start\" /* PERFORMANCE_START */\n);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:end\" /* PERFORMANCE_END */\n);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$2(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$2(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nconst DeprecationTypes$1 = {\n \"GLOBAL_MOUNT\": \"GLOBAL_MOUNT\",\n \"GLOBAL_MOUNT_CONTAINER\": \"GLOBAL_MOUNT_CONTAINER\",\n \"GLOBAL_EXTEND\": \"GLOBAL_EXTEND\",\n \"GLOBAL_PROTOTYPE\": \"GLOBAL_PROTOTYPE\",\n \"GLOBAL_SET\": \"GLOBAL_SET\",\n \"GLOBAL_DELETE\": \"GLOBAL_DELETE\",\n \"GLOBAL_OBSERVABLE\": \"GLOBAL_OBSERVABLE\",\n \"GLOBAL_PRIVATE_UTIL\": \"GLOBAL_PRIVATE_UTIL\",\n \"CONFIG_SILENT\": \"CONFIG_SILENT\",\n \"CONFIG_DEVTOOLS\": \"CONFIG_DEVTOOLS\",\n \"CONFIG_KEY_CODES\": \"CONFIG_KEY_CODES\",\n \"CONFIG_PRODUCTION_TIP\": \"CONFIG_PRODUCTION_TIP\",\n \"CONFIG_IGNORED_ELEMENTS\": \"CONFIG_IGNORED_ELEMENTS\",\n \"CONFIG_WHITESPACE\": \"CONFIG_WHITESPACE\",\n \"CONFIG_OPTION_MERGE_STRATS\": \"CONFIG_OPTION_MERGE_STRATS\",\n \"INSTANCE_SET\": \"INSTANCE_SET\",\n \"INSTANCE_DELETE\": \"INSTANCE_DELETE\",\n \"INSTANCE_DESTROY\": \"INSTANCE_DESTROY\",\n \"INSTANCE_EVENT_EMITTER\": \"INSTANCE_EVENT_EMITTER\",\n \"INSTANCE_EVENT_HOOKS\": \"INSTANCE_EVENT_HOOKS\",\n \"INSTANCE_CHILDREN\": \"INSTANCE_CHILDREN\",\n \"INSTANCE_LISTENERS\": \"INSTANCE_LISTENERS\",\n \"INSTANCE_SCOPED_SLOTS\": \"INSTANCE_SCOPED_SLOTS\",\n \"INSTANCE_ATTRS_CLASS_STYLE\": \"INSTANCE_ATTRS_CLASS_STYLE\",\n \"OPTIONS_DATA_FN\": \"OPTIONS_DATA_FN\",\n \"OPTIONS_DATA_MERGE\": \"OPTIONS_DATA_MERGE\",\n \"OPTIONS_BEFORE_DESTROY\": \"OPTIONS_BEFORE_DESTROY\",\n \"OPTIONS_DESTROYED\": \"OPTIONS_DESTROYED\",\n \"WATCH_ARRAY\": \"WATCH_ARRAY\",\n \"PROPS_DEFAULT_THIS\": \"PROPS_DEFAULT_THIS\",\n \"V_ON_KEYCODE_MODIFIER\": \"V_ON_KEYCODE_MODIFIER\",\n \"CUSTOM_DIR\": \"CUSTOM_DIR\",\n \"ATTR_FALSE_VALUE\": \"ATTR_FALSE_VALUE\",\n \"ATTR_ENUMERATED_COERCION\": \"ATTR_ENUMERATED_COERCION\",\n \"TRANSITION_CLASSES\": \"TRANSITION_CLASSES\",\n \"TRANSITION_GROUP_ROOT\": \"TRANSITION_GROUP_ROOT\",\n \"COMPONENT_ASYNC\": \"COMPONENT_ASYNC\",\n \"COMPONENT_FUNCTIONAL\": \"COMPONENT_FUNCTIONAL\",\n \"COMPONENT_V_MODEL\": \"COMPONENT_V_MODEL\",\n \"RENDER_FUNCTION\": \"RENDER_FUNCTION\",\n \"FILTERS\": \"FILTERS\",\n \"PRIVATE_APIS\": \"PRIVATE_APIS\"\n};\nconst deprecationData = {\n [\"GLOBAL_MOUNT\"]: {\n message: `The global app bootstrapping API has changed: vm.$mount() and the \"el\" option have been removed. Use createApp(RootComponent).mount() instead.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#mounting-app-instance`\n },\n [\"GLOBAL_MOUNT_CONTAINER\"]: {\n message: `Vue detected directives on the mount container. In Vue 3, the container is no longer considered part of the template and will not be processed/replaced.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/mount-changes.html`\n },\n [\"GLOBAL_EXTEND\"]: {\n message: `Vue.extend() has been removed in Vue 3. Use defineComponent() instead.`,\n link: `https://vuejs.org/api/general.html#definecomponent`\n },\n [\"GLOBAL_PROTOTYPE\"]: {\n message: `Vue.prototype is no longer available in Vue 3. Use app.config.globalProperties instead.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#vue-prototype-replaced-by-config-globalproperties`\n },\n [\"GLOBAL_SET\"]: {\n message: `Vue.set() has been removed as it is no longer needed in Vue 3. Simply use native JavaScript mutations.`\n },\n [\"GLOBAL_DELETE\"]: {\n message: `Vue.delete() has been removed as it is no longer needed in Vue 3. Simply use native JavaScript mutations.`\n },\n [\"GLOBAL_OBSERVABLE\"]: {\n message: `Vue.observable() has been removed. Use \\`import { reactive } from \"vue\"\\` from Composition API instead.`,\n link: `https://vuejs.org/api/reactivity-core.html#reactive`\n },\n [\"GLOBAL_PRIVATE_UTIL\"]: {\n message: `Vue.util has been removed. Please refactor to avoid its usage since it was an internal API even in Vue 2.`\n },\n [\"CONFIG_SILENT\"]: {\n message: `config.silent has been removed because it is not good practice to intentionally suppress warnings. You can use your browser console's filter features to focus on relevant messages.`\n },\n [\"CONFIG_DEVTOOLS\"]: {\n message: `config.devtools has been removed. To enable devtools for production, configure the __VUE_PROD_DEVTOOLS__ compile-time flag.`,\n link: `https://github.com/vuejs/core/tree/main/packages/vue#bundler-build-feature-flags`\n },\n [\"CONFIG_KEY_CODES\"]: {\n message: `config.keyCodes has been removed. In Vue 3, you can directly use the kebab-case key names as v-on modifiers.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/keycode-modifiers.html`\n },\n [\"CONFIG_PRODUCTION_TIP\"]: {\n message: `config.productionTip has been removed.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#config-productiontip-removed`\n },\n [\"CONFIG_IGNORED_ELEMENTS\"]: {\n message: () => {\n let msg = `config.ignoredElements has been removed.`;\n if (isRuntimeOnly()) {\n msg += ` Pass the \"isCustomElement\" option to @vue/compiler-dom instead.`;\n } else {\n msg += ` Use config.isCustomElement instead.`;\n }\n return msg;\n },\n link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#config-ignoredelements-is-now-config-iscustomelement`\n },\n [\"CONFIG_WHITESPACE\"]: {\n // this warning is only relevant in the full build when using runtime\n // compilation, so it's put in the runtime compatConfig list.\n message: `Vue 3 compiler's whitespace option will default to \"condense\" instead of \"preserve\". To suppress this warning, provide an explicit value for \\`config.compilerOptions.whitespace\\`.`\n },\n [\"CONFIG_OPTION_MERGE_STRATS\"]: {\n message: `config.optionMergeStrategies no longer exposes internal strategies. Use custom merge functions instead.`\n },\n [\"INSTANCE_SET\"]: {\n message: `vm.$set() has been removed as it is no longer needed in Vue 3. Simply use native JavaScript mutations.`\n },\n [\"INSTANCE_DELETE\"]: {\n message: `vm.$delete() has been removed as it is no longer needed in Vue 3. Simply use native JavaScript mutations.`\n },\n [\"INSTANCE_DESTROY\"]: {\n message: `vm.$destroy() has been removed. Use app.unmount() instead.`,\n link: `https://vuejs.org/api/application.html#app-unmount`\n },\n [\"INSTANCE_EVENT_EMITTER\"]: {\n message: `vm.$on/$once/$off() have been removed. Use an external event emitter library instead.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/events-api.html`\n },\n [\"INSTANCE_EVENT_HOOKS\"]: {\n message: (event) => `\"${event}\" lifecycle events are no longer supported. From templates, use the \"vue:\" prefix instead of \"hook:\". For example, @${event} should be changed to @vue:${event.slice(5)}. From JavaScript, use Composition API to dynamically register lifecycle hooks.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/vnode-lifecycle-events.html`\n },\n [\"INSTANCE_CHILDREN\"]: {\n message: `vm.$children has been removed. Consider refactoring your logic to avoid relying on direct access to child components.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/children.html`\n },\n [\"INSTANCE_LISTENERS\"]: {\n message: `vm.$listeners has been removed. In Vue 3, parent v-on listeners are included in vm.$attrs and it is no longer necessary to separately use v-on=\"$listeners\" if you are already using v-bind=\"$attrs\". (Note: the Vue 3 behavior only applies if this compat config is disabled)`,\n link: `https://v3-migration.vuejs.org/breaking-changes/listeners-removed.html`\n },\n [\"INSTANCE_SCOPED_SLOTS\"]: {\n message: `vm.$scopedSlots has been removed. Use vm.$slots instead.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/slots-unification.html`\n },\n [\"INSTANCE_ATTRS_CLASS_STYLE\"]: {\n message: (componentName) => `Component <${componentName || \"Anonymous\"}> has \\`inheritAttrs: false\\` but is relying on class/style fallthrough from parent. In Vue 3, class/style are now included in $attrs and will no longer fallthrough when inheritAttrs is false. If you are already using v-bind=\"$attrs\" on component root it should render the same end result. If you are binding $attrs to a non-root element and expecting class/style to fallthrough on root, you will need to now manually bind them on root via :class=\"$attrs.class\".`,\n link: `https://v3-migration.vuejs.org/breaking-changes/attrs-includes-class-style.html`\n },\n [\"OPTIONS_DATA_FN\"]: {\n message: `The \"data\" option can no longer be a plain object. Always use a function.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/data-option.html`\n },\n [\"OPTIONS_DATA_MERGE\"]: {\n message: (key) => `Detected conflicting key \"${key}\" when merging data option values. In Vue 3, data keys are merged shallowly and will override one another.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/data-option.html#mixin-merge-behavior-change`\n },\n [\"OPTIONS_BEFORE_DESTROY\"]: {\n message: `\\`beforeDestroy\\` has been renamed to \\`beforeUnmount\\`.`\n },\n [\"OPTIONS_DESTROYED\"]: {\n message: `\\`destroyed\\` has been renamed to \\`unmounted\\`.`\n },\n [\"WATCH_ARRAY\"]: {\n message: `\"watch\" option or vm.$watch on an array value will no longer trigger on array mutation unless the \"deep\" option is specified. If current usage is intended, you can disable the compat behavior and suppress this warning with:\n\n configureCompat({ ${\"WATCH_ARRAY\"}: false })\n`,\n link: `https://v3-migration.vuejs.org/breaking-changes/watch.html`\n },\n [\"PROPS_DEFAULT_THIS\"]: {\n message: (key) => `props default value function no longer has access to \"this\". The compat build only offers access to this.$options.(found in prop \"${key}\")`,\n link: `https://v3-migration.vuejs.org/breaking-changes/props-default-this.html`\n },\n [\"CUSTOM_DIR\"]: {\n message: (legacyHook, newHook) => `Custom directive hook \"${legacyHook}\" has been removed. Use \"${newHook}\" instead.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/custom-directives.html`\n },\n [\"V_ON_KEYCODE_MODIFIER\"]: {\n message: `Using keyCode as v-on modifier is no longer supported. Use kebab-case key name modifiers instead.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/keycode-modifiers.html`\n },\n [\"ATTR_FALSE_VALUE\"]: {\n message: (name) => `Attribute \"${name}\" with v-bind value \\`false\\` will render ${name}=\"false\" instead of removing it in Vue 3. To remove the attribute, use \\`null\\` or \\`undefined\\` instead. If the usage is intended, you can disable the compat behavior and suppress this warning with:\n\n configureCompat({ ${\"ATTR_FALSE_VALUE\"}: false })\n`,\n link: `https://v3-migration.vuejs.org/breaking-changes/attribute-coercion.html`\n },\n [\"ATTR_ENUMERATED_COERCION\"]: {\n message: (name, value, coerced) => `Enumerated attribute \"${name}\" with v-bind value \\`${value}\\` will ${value === null ? `be removed` : `render the value as-is`} instead of coercing the value to \"${coerced}\" in Vue 3. Always use explicit \"true\" or \"false\" values for enumerated attributes. If the usage is intended, you can disable the compat behavior and suppress this warning with:\n\n configureCompat({ ${\"ATTR_ENUMERATED_COERCION\"}: false })\n`,\n link: `https://v3-migration.vuejs.org/breaking-changes/attribute-coercion.html`\n },\n [\"TRANSITION_CLASSES\"]: {\n message: ``\n // this feature cannot be runtime-detected\n },\n [\"TRANSITION_GROUP_ROOT\"]: {\n message: `<TransitionGroup> no longer renders a root <span> element by default if no \"tag\" prop is specified. If you do not rely on the span for styling, you can disable the compat behavior and suppress this warning with:\n\n configureCompat({ ${\"TRANSITION_GROUP_ROOT\"}: false })\n`,\n link: `https://v3-migration.vuejs.org/breaking-changes/transition-group.html`\n },\n [\"COMPONENT_ASYNC\"]: {\n message: (comp) => {\n const name = getComponentName(comp);\n return `Async component${name ? ` <${name}>` : `s`} should be explicitly created via \\`defineAsyncComponent()\\` in Vue 3. Plain functions will be treated as functional components in non-compat build. If you have already migrated all async component usage and intend to use plain functions for functional components, you can disable the compat behavior and suppress this warning with:\n\n configureCompat({ ${\"COMPONENT_ASYNC\"}: false })\n`;\n },\n link: `https://v3-migration.vuejs.org/breaking-changes/async-components.html`\n },\n [\"COMPONENT_FUNCTIONAL\"]: {\n message: (comp) => {\n const name = getComponentName(comp);\n return `Functional component${name ? ` <${name}>` : `s`} should be defined as a plain function in Vue 3. The \"functional\" option has been removed. NOTE: Before migrating to use plain functions for functional components, first make sure that all async components usage have been migrated and its compat behavior has been disabled.`;\n },\n link: `https://v3-migration.vuejs.org/breaking-changes/functional-components.html`\n },\n [\"COMPONENT_V_MODEL\"]: {\n message: (comp) => {\n const configMsg = `opt-in to Vue 3 behavior on a per-component basis with \\`compatConfig: { ${\"COMPONENT_V_MODEL\"}: false }\\`.`;\n if (comp.props && (isArray(comp.props) ? comp.props.includes(\"modelValue\") : hasOwn(comp.props, \"modelValue\"))) {\n return `Component declares \"modelValue\" prop, which is Vue 3 usage, but is running under Vue 2 compat v-model behavior. You can ${configMsg}`;\n }\n return `v-model usage on component has changed in Vue 3. Component that expects to work with v-model should now use the \"modelValue\" prop and emit the \"update:modelValue\" event. You can update the usage and then ${configMsg}`;\n },\n link: `https://v3-migration.vuejs.org/breaking-changes/v-model.html`\n },\n [\"RENDER_FUNCTION\"]: {\n message: `Vue 3's render function API has changed. You can opt-in to the new API with:\n\n configureCompat({ ${\"RENDER_FUNCTION\"}: false })\n\n (This can also be done per-component via the \"compatConfig\" option.)`,\n link: `https://v3-migration.vuejs.org/breaking-changes/render-function-api.html`\n },\n [\"FILTERS\"]: {\n message: `filters have been removed in Vue 3. The \"|\" symbol will be treated as native JavaScript bitwise OR operator. Use method calls or computed properties instead.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/filters.html`\n },\n [\"PRIVATE_APIS\"]: {\n message: (name) => `\"${name}\" is a Vue 2 private API that no longer exists in Vue 3. If you are seeing this warning only due to a dependency, you can suppress this warning via { PRIVATE_APIS: 'suppress-warning' }.`\n }\n};\nconst instanceWarned = /* @__PURE__ */ Object.create(null);\nconst warnCount = /* @__PURE__ */ Object.create(null);\nfunction warnDeprecation(key, instance, ...args) {\n if (!!!(process.env.NODE_ENV !== \"production\")) {\n return;\n }\n instance = instance || getCurrentInstance();\n const config = getCompatConfigForKey(key, instance);\n if (config === \"suppress-warning\") {\n return;\n }\n const dupKey = key + args.join(\"\");\n let compId = instance && formatComponentName(instance, instance.type);\n if (compId === \"Anonymous\" && instance) {\n compId = instance.uid;\n }\n const componentDupKey = dupKey + compId;\n if (componentDupKey in instanceWarned) {\n return;\n }\n instanceWarned[componentDupKey] = true;\n if (dupKey in warnCount) {\n warn$1(`(deprecation ${key}) (${++warnCount[dupKey] + 1})`);\n return;\n }\n warnCount[dupKey] = 0;\n const { message, link } = deprecationData[key];\n warn$1(\n `(deprecation ${key}) ${typeof message === \"function\" ? message(...args) : message}${link ? `\n Details: ${link}` : ``}`\n );\n if (!isCompatEnabled(key, instance, true)) {\n console.error(\n `^ The above deprecation's compat behavior is disabled and will likely lead to runtime errors.`\n );\n }\n}\nconst globalCompatConfig = {\n MODE: 2\n};\nfunction configureCompat$1(config) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateCompatConfig(config);\n }\n extend(globalCompatConfig, config);\n}\nconst seenConfigObjects = /* @__PURE__ */ new WeakSet();\nconst warnedInvalidKeys = {};\nfunction validateCompatConfig(config, instance) {\n if (seenConfigObjects.has(config)) {\n return;\n }\n seenConfigObjects.add(config);\n for (const key of Object.keys(config)) {\n if (key !== \"MODE\" && !(key in deprecationData) && !(key in warnedInvalidKeys)) {\n if (key.startsWith(\"COMPILER_\")) {\n if (isRuntimeOnly()) {\n warn$1(\n `Deprecation config \"${key}\" is compiler-specific and you are running a runtime-only build of Vue. This deprecation should be configured via compiler options in your build setup instead.\nDetails: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`\n );\n }\n } else {\n warn$1(`Invalid deprecation config \"${key}\".`);\n }\n warnedInvalidKeys[key] = true;\n }\n }\n if (instance && config[\"OPTIONS_DATA_MERGE\"] != null) {\n warn$1(\n `Deprecation config \"${\"OPTIONS_DATA_MERGE\"}\" can only be configured globally.`\n );\n }\n}\nfunction getCompatConfigForKey(key, instance) {\n const instanceConfig = instance && instance.type.compatConfig;\n if (instanceConfig && key in instanceConfig) {\n return instanceConfig[key];\n }\n return globalCompatConfig[key];\n}\nfunction isCompatEnabled(key, instance, enableForBuiltIn = false) {\n if (!enableForBuiltIn && instance && instance.type.__isBuiltIn) {\n return false;\n }\n const rawMode = getCompatConfigForKey(\"MODE\", instance) || 2;\n const val = getCompatConfigForKey(key, instance);\n const mode = isFunction(rawMode) ? rawMode(instance && instance.type) : rawMode;\n if (mode === 2) {\n return val !== false;\n } else {\n return val === true || val === \"suppress-warning\";\n }\n}\nfunction assertCompatEnabled(key, instance, ...args) {\n if (!isCompatEnabled(key, instance)) {\n throw new Error(`${key} compat has been disabled.`);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warnDeprecation(key, instance, ...args);\n }\n}\nfunction softAssertCompatEnabled(key, instance, ...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnDeprecation(key, instance, ...args);\n }\n return isCompatEnabled(key, instance);\n}\nfunction checkCompatEnabled(key, instance, ...args) {\n const enabled = isCompatEnabled(key, instance);\n if (!!(process.env.NODE_ENV !== \"production\") && enabled) {\n warnDeprecation(key, instance, ...args);\n }\n return enabled;\n}\n\nconst eventRegistryMap = /* @__PURE__ */ new WeakMap();\nfunction getRegistry(instance) {\n let events = eventRegistryMap.get(instance);\n if (!events) {\n eventRegistryMap.set(instance, events = /* @__PURE__ */ Object.create(null));\n }\n return events;\n}\nfunction on(instance, event, fn) {\n if (isArray(event)) {\n event.forEach((e) => on(instance, e, fn));\n } else {\n if (event.startsWith(\"hook:\")) {\n assertCompatEnabled(\n \"INSTANCE_EVENT_HOOKS\",\n instance,\n event\n );\n } else {\n assertCompatEnabled(\"INSTANCE_EVENT_EMITTER\", instance);\n }\n const events = getRegistry(instance);\n (events[event] || (events[event] = [])).push(fn);\n }\n return instance.proxy;\n}\nfunction once(instance, event, fn) {\n const wrapped = (...args) => {\n off(instance, event, wrapped);\n fn.call(instance.proxy, ...args);\n };\n wrapped.fn = fn;\n on(instance, event, wrapped);\n return instance.proxy;\n}\nfunction off(instance, event, fn) {\n assertCompatEnabled(\"INSTANCE_EVENT_EMITTER\", instance);\n const vm = instance.proxy;\n if (!event) {\n eventRegistryMap.set(instance, /* @__PURE__ */ Object.create(null));\n return vm;\n }\n if (isArray(event)) {\n event.forEach((e) => off(instance, e, fn));\n return vm;\n }\n const events = getRegistry(instance);\n const cbs = events[event];\n if (!cbs) {\n return vm;\n }\n if (!fn) {\n events[event] = void 0;\n return vm;\n }\n events[event] = cbs.filter((cb) => !(cb === fn || cb.fn === fn));\n return vm;\n}\nfunction emit$1(instance, event, args) {\n const cbs = getRegistry(instance)[event];\n if (cbs) {\n callWithAsyncErrorHandling(\n cbs.map((cb) => cb.bind(instance.proxy)),\n instance,\n 6,\n args\n );\n }\n return instance.proxy;\n}\n\nconst compatModelEventPrefix = `onModelCompat:`;\nconst warnedTypes = /* @__PURE__ */ new WeakSet();\nfunction convertLegacyVModelProps(vnode) {\n const { type, shapeFlag, props, dynamicProps } = vnode;\n const comp = type;\n if (shapeFlag & 6 && props && \"modelValue\" in props) {\n if (!isCompatEnabled(\n \"COMPONENT_V_MODEL\",\n // this is a special case where we want to use the vnode component's\n // compat config instead of the current rendering instance (which is the\n // parent of the component that exposes v-model)\n { type }\n )) {\n return;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !warnedTypes.has(comp)) {\n pushWarningContext(vnode);\n warnDeprecation(\"COMPONENT_V_MODEL\", { type }, comp);\n popWarningContext();\n warnedTypes.add(comp);\n }\n const model = comp.model || {};\n applyModelFromMixins(model, comp.mixins);\n const { prop = \"value\", event = \"input\" } = model;\n if (prop !== \"modelValue\") {\n props[prop] = props.modelValue;\n delete props.modelValue;\n }\n if (dynamicProps) {\n dynamicProps[dynamicProps.indexOf(\"modelValue\")] = prop;\n }\n props[compatModelEventPrefix + event] = props[\"onUpdate:modelValue\"];\n delete props[\"onUpdate:modelValue\"];\n }\n}\nfunction applyModelFromMixins(model, mixins) {\n if (mixins) {\n mixins.forEach((m) => {\n if (m.model)\n extend(model, m.model);\n if (m.mixins)\n applyModelFromMixins(model, m.mixins);\n });\n }\n}\nfunction compatModelEmit(instance, event, args) {\n if (!isCompatEnabled(\"COMPONENT_V_MODEL\", instance)) {\n return;\n }\n const props = instance.vnode.props;\n const modelHandler = props && props[compatModelEventPrefix + event];\n if (modelHandler) {\n callWithErrorHandling(\n modelHandler,\n instance,\n 6,\n args\n );\n }\n}\n\nfunction emit(instance, event, ...rawArgs) {\n if (instance.isUnmounted)\n return;\n const props = instance.vnode.props || EMPTY_OBJ;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const {\n emitsOptions,\n propsOptions: [propsOptions]\n } = instance;\n if (emitsOptions) {\n if (!(event in emitsOptions) && !(event.startsWith(\"hook:\") || event.startsWith(compatModelEventPrefix))) {\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\n warn$1(\n `Component emitted event \"${event}\" but it is neither declared in the emits option nor as an \"${toHandlerKey(event)}\" prop.`\n );\n }\n } else {\n const validator = emitsOptions[event];\n if (isFunction(validator)) {\n const isValid = validator(...rawArgs);\n if (!isValid) {\n warn$1(\n `Invalid event arguments: event validation failed for event \"${event}\".`\n );\n }\n }\n }\n }\n }\n let args = rawArgs;\n const isModelListener = event.startsWith(\"update:\");\n const modelArg = isModelListener && event.slice(7);\n if (modelArg && modelArg in props) {\n const modifiersKey = `${modelArg === \"modelValue\" ? \"model\" : modelArg}Modifiers`;\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\n if (trim) {\n args = rawArgs.map((a) => isString(a) ? a.trim() : a);\n }\n if (number) {\n args = rawArgs.map(looseToNumber);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentEmit(instance, event, args);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n warn$1(\n `Event \"${lowerCaseEvent}\" is emitted in component ${formatComponentName(\n instance,\n instance.type\n )} but the handler is registered for \"${event}\". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use \"${hyphenate(\n event\n )}\" instead of \"${event}\".`\n );\n }\n }\n let handlerName;\n let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)\n props[handlerName = toHandlerKey(camelize(event))];\n if (!handler && isModelListener) {\n handler = props[handlerName = toHandlerKey(hyphenate(event))];\n }\n if (handler) {\n callWithAsyncErrorHandling(\n handler,\n instance,\n 6,\n args\n );\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n } else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(\n onceHandler,\n instance,\n 6,\n args\n );\n }\n {\n compatModelEmit(instance, event, args);\n return emit$1(instance, event, args);\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== void 0) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendEmits = (raw2) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (isArray(raw)) {\n raw.forEach((key) => normalized[key] = null);\n } else {\n extend(normalized, raw);\n }\n if (isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\nfunction isEmitListener(options, key) {\n if (!options || !isOn(key)) {\n return false;\n }\n if (key.startsWith(compatModelEventPrefix)) {\n return true;\n }\n key = key.slice(2).replace(/Once$/, \"\");\n return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n if (!currentScopeId) {\n currentScopeId = instance && instance.type._scopeId || null;\n }\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx)\n return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n if (isNonScopedSlot) {\n renderFnWithContext._ns = true;\n }\n return renderFnWithContext;\n}\n\nlet accessedAttrs = false;\nfunction markAttrsAccessed() {\n accessedAttrs = true;\n}\nfunction renderComponentRoot(instance) {\n const {\n type: Component,\n vnode,\n proxy,\n withProxy,\n props,\n propsOptions: [propsOptions],\n slots,\n attrs,\n emit,\n render,\n renderCache,\n data,\n setupState,\n ctx,\n inheritAttrs\n } = instance;\n let result;\n let fallthroughAttrs;\n const prev = setCurrentRenderingInstance(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n accessedAttrs = false;\n }\n try {\n if (vnode.shapeFlag & 4) {\n const proxyToUse = withProxy || proxy;\n const thisProxy = !!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup ? new Proxy(proxyToUse, {\n get(target, key, receiver) {\n warn$1(\n `Property '${String(\n key\n )}' was accessed via 'this'. Avoid using 'this' in templates.`\n );\n return Reflect.get(target, key, receiver);\n }\n }) : proxyToUse;\n result = normalizeVNode(\n render.call(\n thisProxy,\n proxyToUse,\n renderCache,\n props,\n setupState,\n data,\n ctx\n )\n );\n fallthroughAttrs = attrs;\n } else {\n const render2 = Component;\n if (!!(process.env.NODE_ENV !== \"production\") && attrs === props) {\n markAttrsAccessed();\n }\n result = normalizeVNode(\n render2.length > 1 ? render2(\n props,\n !!(process.env.NODE_ENV !== \"production\") ? {\n get attrs() {\n markAttrsAccessed();\n return attrs;\n },\n slots,\n emit\n } : { attrs, slots, emit }\n ) : render2(\n props,\n null\n /* we know it doesn't need it */\n )\n );\n fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);\n }\n } catch (err) {\n blockStack.length = 0;\n handleError(err, instance, 1);\n result = createVNode(Comment);\n }\n let root = result;\n let setRoot = void 0;\n if (!!(process.env.NODE_ENV !== \"production\") && result.patchFlag > 0 && result.patchFlag & 2048) {\n [root, setRoot] = getChildRoot(result);\n }\n if (fallthroughAttrs && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs);\n const { shapeFlag } = root;\n if (keys.length) {\n if (shapeFlag & (1 | 6)) {\n if (propsOptions && keys.some(isModelListener)) {\n fallthroughAttrs = filterModelListeners(\n fallthroughAttrs,\n propsOptions\n );\n }\n root = cloneVNode(root, fallthroughAttrs);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !accessedAttrs && root.type !== Comment) {\n const allAttrs = Object.keys(attrs);\n const eventAttrs = [];\n const extraAttrs = [];\n for (let i = 0, l = allAttrs.length; i < l; i++) {\n const key = allAttrs[i];\n if (isOn(key)) {\n if (!isModelListener(key)) {\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\n }\n } else {\n extraAttrs.push(key);\n }\n }\n if (extraAttrs.length) {\n warn$1(\n `Extraneous non-props attributes (${extraAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.`\n );\n }\n if (eventAttrs.length) {\n warn$1(\n `Extraneous non-emits event listeners (${eventAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the \"emits\" option.`\n );\n }\n }\n }\n }\n if (isCompatEnabled(\"INSTANCE_ATTRS_CLASS_STYLE\", instance) && vnode.shapeFlag & 4 && root.shapeFlag & (1 | 6)) {\n const { class: cls, style } = vnode.props || {};\n if (cls || style) {\n if (!!(process.env.NODE_ENV !== \"production\") && inheritAttrs === false) {\n warnDeprecation(\n \"INSTANCE_ATTRS_CLASS_STYLE\",\n instance,\n getComponentName(instance.type)\n );\n }\n root = cloneVNode(root, {\n class: cls,\n style\n });\n }\n }\n if (vnode.dirs) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn$1(\n `Runtime directive used on component with non-element root node. The directives will not function as intended.`\n );\n }\n root = cloneVNode(root);\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n }\n if (vnode.transition) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn$1(\n `Component inside <Transition> renders non-element root node that cannot be animated.`\n );\n }\n root.transition = vnode.transition;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && setRoot) {\n setRoot(root);\n } else {\n result = root;\n }\n setCurrentRenderingInstance(prev);\n return result;\n}\nconst getChildRoot = (vnode) => {\n const rawChildren = vnode.children;\n const dynamicChildren = vnode.dynamicChildren;\n const childRoot = filterSingleRoot(rawChildren, false);\n if (!childRoot) {\n return [vnode, void 0];\n } else if (!!(process.env.NODE_ENV !== \"production\") && childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) {\n return getChildRoot(childRoot);\n }\n const index = rawChildren.indexOf(childRoot);\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\n const setRoot = (updatedRoot) => {\n rawChildren[index] = updatedRoot;\n if (dynamicChildren) {\n if (dynamicIndex > -1) {\n dynamicChildren[dynamicIndex] = updatedRoot;\n } else if (updatedRoot.patchFlag > 0) {\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\n }\n }\n };\n return [normalizeVNode(childRoot), setRoot];\n};\nfunction filterSingleRoot(children, recurse = true) {\n let singleRoot;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isVNode(child)) {\n if (child.type !== Comment || child.children === \"v-if\") {\n if (singleRoot) {\n return;\n } else {\n singleRoot = child;\n if (!!(process.env.NODE_ENV !== \"production\") && recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) {\n return filterSingleRoot(singleRoot.children);\n }\n }\n }\n } else {\n return;\n }\n }\n return singleRoot;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === \"class\" || key === \"style\" || isOn(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nconst filterModelListeners = (attrs, props) => {\n const res = {};\n for (const key in attrs) {\n if (!isModelListener(key) || !(key.slice(9) in props)) {\n res[key] = attrs[key];\n }\n }\n return res;\n};\nconst isElementRoot = (vnode) => {\n return vnode.shapeFlag & (6 | 1) || vnode.type === Comment;\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n const { props: prevProps, children: prevChildren, component } = prevVNode;\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n const emits = component.emitsOptions;\n if (!!(process.env.NODE_ENV !== \"production\") && (prevChildren || nextChildren) && isHmrUpdating) {\n return true;\n }\n if (nextVNode.dirs || nextVNode.transition) {\n return true;\n }\n if (optimized && patchFlag >= 0) {\n if (patchFlag & 1024) {\n return true;\n }\n if (patchFlag & 16) {\n if (!prevProps) {\n return !!nextProps;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n } else if (patchFlag & 8) {\n const dynamicProps = nextVNode.dynamicProps;\n for (let i = 0; i < dynamicProps.length; i++) {\n const key = dynamicProps[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {\n return true;\n }\n }\n }\n } else {\n if (prevChildren || nextChildren) {\n if (!nextChildren || !nextChildren.$stable) {\n return true;\n }\n }\n if (prevProps === nextProps) {\n return false;\n }\n if (!prevProps) {\n return !!nextProps;\n }\n if (!nextProps) {\n return true;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n const nextKeys = Object.keys(nextProps);\n if (nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {\n return true;\n }\n }\n return false;\n}\nfunction updateHOCHostEl({ vnode, parent }, el) {\n while (parent) {\n const root = parent.subTree;\n if (root.suspense && root.suspense.activeBranch === vnode) {\n root.el = vnode.el;\n }\n if (root === vnode) {\n (vnode = parent.vnode).el = el;\n parent = parent.parent;\n } else {\n break;\n }\n }\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nconst FILTERS = \"filters\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveFilter$1(name) {\n return resolveAsset(FILTERS, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nconst isSuspense = (type) => type.__isSuspense;\nlet suspenseId = 0;\nconst SuspenseImpl = {\n name: \"Suspense\",\n // In order to make Suspense tree-shakable, we need to avoid importing it\n // directly in the renderer. The renderer checks for the __isSuspense flag\n // on a vnode's type and calls the `process` method, passing in renderer\n // internals.\n __isSuspense: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {\n if (n1 == null) {\n mountSuspense(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n } else {\n if (parentSuspense && parentSuspense.deps > 0) {\n n2.suspense = n1.suspense;\n return;\n }\n patchSuspense(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n }\n },\n hydrate: hydrateSuspense,\n create: createSuspenseBoundary,\n normalize: normalizeSuspenseChildren\n};\nconst Suspense = SuspenseImpl ;\nfunction triggerEvent(vnode, name) {\n const eventListener = vnode.props && vnode.props[name];\n if (isFunction(eventListener)) {\n eventListener();\n }\n}\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {\n const {\n p: patch,\n o: { createElement }\n } = rendererInternals;\n const hiddenContainer = createElement(\"div\");\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n container,\n hiddenContainer,\n anchor,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n patch(\n null,\n suspense.pendingBranch = vnode.ssContent,\n hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds\n );\n if (suspense.deps > 0) {\n triggerEvent(vnode, \"onPending\");\n triggerEvent(vnode, \"onFallback\");\n patch(\n null,\n vnode.ssFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds\n );\n setActiveBranch(suspense, vnode.ssFallback);\n } else {\n suspense.resolve(false, true);\n }\n}\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\n const suspense = n2.suspense = n1.suspense;\n suspense.vnode = n2;\n n2.el = n1.el;\n const newBranch = n2.ssContent;\n const newFallback = n2.ssFallback;\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\n if (pendingBranch) {\n suspense.pendingBranch = newBranch;\n if (isSameVNodeType(newBranch, pendingBranch)) {\n patch(\n pendingBranch,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else if (isInFallback) {\n if (!isHydrating) {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n }\n } else {\n suspense.pendingId = suspenseId++;\n if (isHydrating) {\n suspense.isHydrating = false;\n suspense.activeBranch = pendingBranch;\n } else {\n unmount(pendingBranch, parentComponent, suspense);\n }\n suspense.deps = 0;\n suspense.effects.length = 0;\n suspense.hiddenContainer = createElement(\"div\");\n if (isInFallback) {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n suspense.resolve(true);\n } else {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n }\n }\n } else {\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newBranch);\n } else {\n triggerEvent(n2, \"onPending\");\n suspense.pendingBranch = newBranch;\n if (newBranch.shapeFlag & 512) {\n suspense.pendingId = newBranch.component.suspenseId;\n } else {\n suspense.pendingId = suspenseId++;\n }\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n const { timeout, pendingId } = suspense;\n if (timeout > 0) {\n setTimeout(() => {\n if (suspense.pendingId === pendingId) {\n suspense.fallback(newFallback);\n }\n }, timeout);\n } else if (timeout === 0) {\n suspense.fallback(newFallback);\n }\n }\n }\n }\n}\nlet hasWarned = false;\nfunction createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\n if (!!(process.env.NODE_ENV !== \"production\") && true && !hasWarned) {\n hasWarned = true;\n console[console.info ? \"info\" : \"log\"](\n `<Suspense> is an experimental feature and its API will likely change.`\n );\n }\n const {\n p: patch,\n m: move,\n um: unmount,\n n: next,\n o: { parentNode, remove }\n } = rendererInternals;\n let parentSuspenseId;\n const isSuspensible = isVNodeSuspensible(vnode);\n if (isSuspensible) {\n if (parentSuspense == null ? void 0 : parentSuspense.pendingBranch) {\n parentSuspenseId = parentSuspense.pendingId;\n parentSuspense.deps++;\n }\n }\n const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n assertNumber(timeout, `Suspense timeout`);\n }\n const initialAnchor = anchor;\n const suspense = {\n vnode,\n parent: parentSuspense,\n parentComponent,\n namespace,\n container,\n hiddenContainer,\n deps: 0,\n pendingId: suspenseId++,\n timeout: typeof timeout === \"number\" ? timeout : -1,\n activeBranch: null,\n pendingBranch: null,\n isInFallback: !isHydrating,\n isHydrating,\n isUnmounted: false,\n effects: [],\n resolve(resume = false, sync = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!resume && !suspense.pendingBranch) {\n throw new Error(\n `suspense.resolve() is called without a pending branch.`\n );\n }\n if (suspense.isUnmounted) {\n throw new Error(\n `suspense.resolve() is called on an already unmounted suspense boundary.`\n );\n }\n }\n const {\n vnode: vnode2,\n activeBranch,\n pendingBranch,\n pendingId,\n effects,\n parentComponent: parentComponent2,\n container: container2\n } = suspense;\n let delayEnter = false;\n if (suspense.isHydrating) {\n suspense.isHydrating = false;\n } else if (!resume) {\n delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = () => {\n if (pendingId === suspense.pendingId) {\n move(\n pendingBranch,\n container2,\n anchor === initialAnchor ? next(activeBranch) : anchor,\n 0\n );\n queuePostFlushCb(effects);\n }\n };\n }\n if (activeBranch) {\n if (parentNode(activeBranch.el) !== suspense.hiddenContainer) {\n anchor = next(activeBranch);\n }\n unmount(activeBranch, parentComponent2, suspense, true);\n }\n if (!delayEnter) {\n move(pendingBranch, container2, anchor, 0);\n }\n }\n setActiveBranch(suspense, pendingBranch);\n suspense.pendingBranch = null;\n suspense.isInFallback = false;\n let parent = suspense.parent;\n let hasUnresolvedAncestor = false;\n while (parent) {\n if (parent.pendingBranch) {\n parent.effects.push(...effects);\n hasUnresolvedAncestor = true;\n break;\n }\n parent = parent.parent;\n }\n if (!hasUnresolvedAncestor && !delayEnter) {\n queuePostFlushCb(effects);\n }\n suspense.effects = [];\n if (isSuspensible) {\n if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0 && !sync) {\n parentSuspense.resolve();\n }\n }\n }\n triggerEvent(vnode2, \"onResolve\");\n },\n fallback(fallbackVNode) {\n if (!suspense.pendingBranch) {\n return;\n }\n const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense;\n triggerEvent(vnode2, \"onFallback\");\n const anchor2 = next(activeBranch);\n const mountFallback = () => {\n if (!suspense.isInFallback) {\n return;\n }\n patch(\n null,\n fallbackVNode,\n container2,\n anchor2,\n parentComponent2,\n null,\n // fallback tree will not have suspense context\n namespace2,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, fallbackVNode);\n };\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = mountFallback;\n }\n suspense.isInFallback = true;\n unmount(\n activeBranch,\n parentComponent2,\n null,\n // no suspense so unmount hooks fire now\n true\n // shouldRemove\n );\n if (!delayEnter) {\n mountFallback();\n }\n },\n move(container2, anchor2, type) {\n suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type);\n suspense.container = container2;\n },\n next() {\n return suspense.activeBranch && next(suspense.activeBranch);\n },\n registerDep(instance, setupRenderEffect) {\n const isInPendingSuspense = !!suspense.pendingBranch;\n if (isInPendingSuspense) {\n suspense.deps++;\n }\n const hydratedEl = instance.vnode.el;\n instance.asyncDep.catch((err) => {\n handleError(err, instance, 0);\n }).then((asyncSetupResult) => {\n if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) {\n return;\n }\n instance.asyncResolved = true;\n const { vnode: vnode2 } = instance;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(vnode2);\n }\n handleSetupResult(instance, asyncSetupResult, false);\n if (hydratedEl) {\n vnode2.el = hydratedEl;\n }\n const placeholder = !hydratedEl && instance.subTree.el;\n setupRenderEffect(\n instance,\n vnode2,\n // component may have been moved before resolve.\n // if this is not a hydration, instance.subTree will be the comment\n // placeholder.\n parentNode(hydratedEl || instance.subTree.el),\n // anchor will not be used if this is hydration, so only need to\n // consider the comment placeholder case.\n hydratedEl ? null : next(instance.subTree),\n suspense,\n namespace,\n optimized\n );\n if (placeholder) {\n remove(placeholder);\n }\n updateHOCHostEl(instance, vnode2.el);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n if (isInPendingSuspense && --suspense.deps === 0) {\n suspense.resolve();\n }\n });\n },\n unmount(parentSuspense2, doRemove) {\n suspense.isUnmounted = true;\n if (suspense.activeBranch) {\n unmount(\n suspense.activeBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n if (suspense.pendingBranch) {\n unmount(\n suspense.pendingBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n }\n };\n return suspense;\n}\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) {\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n node.parentNode,\n // eslint-disable-next-line no-restricted-globals\n document.createElement(\"div\"),\n null,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals,\n true\n );\n const result = hydrateNode(\n node,\n suspense.pendingBranch = vnode.ssContent,\n parentComponent,\n suspense,\n slotScopeIds,\n optimized\n );\n if (suspense.deps === 0) {\n suspense.resolve(false, true);\n }\n return result;\n}\nfunction normalizeSuspenseChildren(vnode) {\n const { shapeFlag, children } = vnode;\n const isSlotChildren = shapeFlag & 32;\n vnode.ssContent = normalizeSuspenseSlot(\n isSlotChildren ? children.default : children\n );\n vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment);\n}\nfunction normalizeSuspenseSlot(s) {\n let block;\n if (isFunction(s)) {\n const trackBlock = isBlockTreeEnabled && s._c;\n if (trackBlock) {\n s._d = false;\n openBlock();\n }\n s = s();\n if (trackBlock) {\n s._d = true;\n block = currentBlock;\n closeBlock();\n }\n }\n if (isArray(s)) {\n const singleChild = filterSingleRoot(s);\n if (!!(process.env.NODE_ENV !== \"production\") && !singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) {\n warn$1(`<Suspense> slots expect a single root node.`);\n }\n s = singleChild;\n }\n s = normalizeVNode(s);\n if (block && !s.dynamicChildren) {\n s.dynamicChildren = block.filter((c) => c !== s);\n }\n return s;\n}\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (isArray(fn)) {\n suspense.effects.push(...fn);\n } else {\n suspense.effects.push(fn);\n }\n } else {\n queuePostFlushCb(fn);\n }\n}\nfunction setActiveBranch(suspense, branch) {\n suspense.activeBranch = branch;\n const { vnode, parentComponent } = suspense;\n let el = branch.el;\n while (!el && branch.component) {\n branch = branch.component.subTree;\n el = branch.el;\n }\n vnode.el = el;\n if (parentComponent && parentComponent.subTree === vnode) {\n parentComponent.vnode.el = el;\n updateHOCHostEl(parentComponent, el);\n }\n}\nfunction isVNodeSuspensible(vnode) {\n var _a;\n return ((_a = vnode.props) == null ? void 0 : _a.suspensible) != null && vnode.props.suspensible !== false;\n}\n\nconst legacyDirectiveHookMap = {\n beforeMount: \"bind\",\n mounted: \"inserted\",\n updated: [\"update\", \"componentUpdated\"],\n unmounted: \"unbind\"\n};\nfunction mapCompatDirectiveHook(name, dir, instance) {\n const mappedName = legacyDirectiveHookMap[name];\n if (mappedName) {\n if (isArray(mappedName)) {\n const hook = [];\n mappedName.forEach((mapped) => {\n const mappedHook = dir[mapped];\n if (mappedHook) {\n softAssertCompatEnabled(\n \"CUSTOM_DIR\",\n instance,\n mapped,\n name\n );\n hook.push(mappedHook);\n }\n });\n return hook.length ? hook : void 0;\n } else {\n if (dir[mappedName]) {\n softAssertCompatEnabled(\n \"CUSTOM_DIR\",\n instance,\n mappedName,\n name\n );\n }\n return dir[mappedName];\n }\n }\n}\n\nconst ssrContextKey = Symbol.for(\"v-scx\");\nconst useSSRContext = () => {\n {\n const ctx = inject(ssrContextKey);\n if (!ctx) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n );\n }\n return ctx;\n }\n};\n\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n );\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n );\n}\nconst INITIAL_WATCHER_VALUE = {};\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn$1(\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, {\n immediate,\n deep,\n flush,\n once,\n onTrack,\n onTrigger\n} = EMPTY_OBJ) {\n if (cb && once) {\n const _cb = cb;\n cb = (...args) => {\n _cb(...args);\n unwatch();\n };\n }\n if (!!(process.env.NODE_ENV !== \"production\") && deep !== void 0 && typeof deep === \"number\") {\n warn$1(\n `watch() \"deep\" option with number value will be used as watch depth in future versions. Please use a boolean instead to avoid potential breakage.`\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn$1(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn$1(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (once !== void 0) {\n warn$1(\n `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const warnInvalidSource = (s) => {\n warn$1(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const instance = currentInstance;\n const reactiveGetter = (source2) => deep === true ? source2 : (\n // for deep: false, only traverse root-level properties\n traverse(source2, deep === false ? 1 : void 0)\n );\n let getter;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return reactiveGetter(s);\n } else if (isFunction(s)) {\n return callWithErrorHandling(s, instance, 2);\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = () => callWithErrorHandling(source, instance, 2);\n } else {\n getter = () => {\n if (cleanup) {\n cleanup();\n }\n return callWithAsyncErrorHandling(\n source,\n instance,\n 3,\n [onCleanup]\n );\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && !deep) {\n const baseGetter = getter;\n getter = () => {\n const val = baseGetter();\n if (isArray(val) && checkCompatEnabled(\"WATCH_ARRAY\", instance)) {\n traverse(val);\n }\n return val;\n };\n }\n if (cb && deep) {\n const baseGetter = getter;\n getter = () => traverse(baseGetter());\n }\n let cleanup;\n let onCleanup = (fn) => {\n cleanup = effect.onStop = () => {\n callWithErrorHandling(fn, instance, 4);\n cleanup = effect.onStop = void 0;\n };\n };\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n onCleanup = NOOP;\n if (!cb) {\n getter();\n } else if (immediate) {\n callWithAsyncErrorHandling(cb, instance, 3, [\n getter(),\n isMultiSource ? [] : void 0,\n onCleanup\n ]);\n }\n if (flush === \"sync\") {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n } else {\n return NOOP;\n }\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = () => {\n if (!effect.active || !effect.dirty) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || isArray(newValue) && isCompatEnabled(\"WATCH_ARRAY\", instance)) {\n if (cleanup) {\n cleanup();\n }\n callWithAsyncErrorHandling(cb, instance, 3, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n } else {\n effect.run();\n }\n };\n job.allowRecurse = !!cb;\n let scheduler;\n if (flush === \"sync\") {\n scheduler = job;\n } else if (flush === \"post\") {\n scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);\n } else {\n job.pre = true;\n if (instance)\n job.id = instance.uid;\n scheduler = () => queueJob(job);\n }\n const effect = new ReactiveEffect(getter, NOOP, scheduler);\n const scope = getCurrentScope();\n const unwatch = () => {\n effect.stop();\n if (scope) {\n remove(scope.effects, effect);\n }\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = onTrack;\n effect.onTrigger = onTrigger;\n }\n if (cb) {\n if (immediate) {\n job();\n } else {\n oldValue = effect.run();\n }\n } else if (flush === \"post\") {\n queuePostRenderEffect(\n effect.run.bind(effect),\n instance && instance.suspense\n );\n } else {\n effect.run();\n }\n if (ssrCleanup)\n ssrCleanup.push(unwatch);\n return unwatch;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const reset = setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n reset();\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\nfunction traverse(value, depth, currentDepth = 0, seen) {\n if (!isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n if (depth && depth > 0) {\n if (currentDepth >= depth) {\n return value;\n }\n currentDepth++;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n if (isRef(value)) {\n traverse(value.value, depth, currentDepth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], depth, currentDepth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, currentDepth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, currentDepth, seen);\n }\n }\n return value;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getExposeProxy(currentRenderingInstance) || currentRenderingInstance.proxy;\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (!hook) {\n hook = mapCompatDirectiveHook(name, binding.dir, instance);\n }\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nconst leaveCbKey = Symbol(\"_leaveCb\");\nconst enterCbKey$1 = Symbol(\"_enterCb\");\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionPropsValidators = {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n};\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: BaseTransitionPropsValidators,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n let prevTransitionKey;\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n for (const c of children) {\n if (c.type !== Comment) {\n if (!!(process.env.NODE_ENV !== \"production\") && hasFound) {\n warn$1(\n \"<transition> can only be used on a single element or component. Use <transition-group> for lists.\"\n );\n break;\n }\n child = c;\n hasFound = true;\n if (!!!(process.env.NODE_ENV !== \"production\"))\n break;\n }\n }\n }\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n if (!!(process.env.NODE_ENV !== \"production\") && mode && mode !== \"in-out\" && mode !== \"out-in\" && mode !== \"default\") {\n warn$1(`invalid <transition> mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getKeepAliveChild(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n const enterHooks = resolveTransitionHooks(\n innerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(innerChild, enterHooks);\n const oldChild = instance.subTree;\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\n let transitionKeyChanged = false;\n const { getTransitionKey } = innerChild.type;\n if (getTransitionKey) {\n const key = getTransitionKey();\n if (prevTransitionKey === void 0) {\n prevTransitionKey = key;\n } else if (key !== prevTransitionKey) {\n prevTransitionKey = key;\n transitionKeyChanged = true;\n }\n }\n if (oldInnerChild && oldInnerChild.type !== Comment && (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\n const leavingHooks = resolveTransitionHooks(\n oldInnerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\") {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n if (instance.update.active !== false) {\n instance.effect.dirty = true;\n instance.update();\n }\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(\n state,\n oldInnerChild\n );\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el[leaveCbKey] = () => {\n earlyRemove();\n el[leaveCbKey] = void 0;\n delete enterHooks.delayedLeave;\n };\n enterHooks.delayedLeave = delayedLeave;\n };\n }\n }\n return child;\n };\n }\n};\n{\n BaseTransitionImpl.__isBuiltIn = true;\n}\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance) {\n const {\n appear,\n mode,\n persisted = false,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n onBeforeAppear,\n onAppear,\n onAfterAppear,\n onAppearCancelled\n } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook && callWithAsyncErrorHandling(\n hook,\n instance,\n 9,\n args\n );\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every((hook2) => hook2.length <= 1))\n done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el[leaveCbKey]) {\n el[leaveCbKey](\n true\n /* cancelled */\n );\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {\n leavingVNode.el[leaveCbKey]();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n const done = el[enterCbKey$1] = (cancelled) => {\n if (called)\n return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n } else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el[enterCbKey$1] = void 0;\n };\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove) {\n const key2 = String(vnode.key);\n if (el[enterCbKey$1]) {\n el[enterCbKey$1](\n true\n /* cancelled */\n );\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n const done = el[leaveCbKey] = (cancelled) => {\n if (called)\n return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n } else {\n callHook(onAfterLeave, [el]);\n }\n el[leaveCbKey] = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n return resolveTransitionHooks(vnode2, props, state, instance);\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getKeepAliveChild(vnode) {\n return isKeepAlive(vnode) ? (\n // #7121 ensure get the child component subtree in case\n // it's been replaced during HMR\n !!(process.env.NODE_ENV !== \"production\") && vnode.component ? vnode.component.subTree : vnode.children ? vnode.children[0] : void 0\n ) : vnode;\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128)\n keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8326: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const {\n loader,\n loadingComponent,\n errorComponent,\n delay = 200,\n timeout,\n // undefined = never times out\n suspensible = true,\n onError: userOnError\n } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n } else {\n throw err;\n }\n }).then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !comp) {\n warn$1(\n `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`\n );\n }\n if (comp && (comp.__esModule || comp[Symbol.toStringTag] === \"Module\")) {\n comp = comp.default;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n }));\n };\n return defineComponent({\n name: \"AsyncComponentWrapper\",\n __asyncLoader: load,\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(\n `Async component timed out after ${timeout}ms.`\n );\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load().then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n instance.parent.effect.dirty = true;\n queueJob(instance.parent.update);\n }\n }).catch((err) => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n } else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n } else if (loadingComponent && !delayed.value) {\n return createVNode(loadingComponent);\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, parent) {\n const { ref: ref2, props, children, ce } = parent.vnode;\n const vnode = createVNode(comp, props, children);\n vnode.ref = ref2;\n vnode.ce = ce;\n delete parent.vnode.ce;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const sharedContext = instance.ctx;\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = /* @__PURE__ */ new Map();\n const keys = /* @__PURE__ */ new Set();\n let current = null;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const {\n renderer: {\n p: patch,\n m: move,\n um: _unmount,\n o: { createElement }\n }\n } = sharedContext;\n const storageContainer = createElement(\"div\");\n sharedContext.activate = (vnode, container, anchor, namespace, optimized) => {\n const instance2 = vnode.component;\n move(vnode, container, anchor, 0, parentSuspense);\n patch(\n instance2.vnode,\n vnode,\n container,\n anchor,\n instance2,\n parentSuspense,\n namespace,\n vnode.slotScopeIds,\n optimized\n );\n queuePostRenderEffect(() => {\n instance2.isDeactivated = false;\n if (instance2.a) {\n invokeArrayFns(instance2.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance2 = vnode.component;\n move(vnode, storageContainer, null, 1, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance2.da) {\n invokeArrayFns(instance2.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n instance2.isDeactivated = true;\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n function unmount(vnode) {\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(vnode.type);\n if (name && (!filter || !filter(name))) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (!current || !isSameVNodeType(cached, current)) {\n unmount(cached);\n } else if (current) {\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n watch(\n () => [props.include, props.exclude],\n ([include, exclude]) => {\n include && pruneCache((name) => matches(include, name));\n exclude && pruneCache((name) => !matches(exclude, name));\n },\n // prune post-render after `current` has been updated\n { flush: \"post\", deep: true }\n );\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n if (pendingCacheKey != null) {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach((cached) => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type && cached.key === vnode.key) {\n resetShapeFlag(vnode);\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n const comp = vnode.type;\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n );\n const { include, exclude, max } = props;\n if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128) {\n rawVNode.ssContent = vnode;\n }\n }\n pendingCacheKey = key;\n if (cachedVNode) {\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n setTransitionHooks(vnode, vnode.transition);\n }\n vnode.shapeFlag |= 512;\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n vnode.shapeFlag |= 256;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\n{\n KeepAliveImpl.__isBuildIn = true;\n}\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n } else if (isString(pattern)) {\n return pattern.split(\",\").includes(name);\n } else if (isRegExp(pattern)) {\n return pattern.test(name);\n }\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n vnode.shapeFlag &= ~256;\n vnode.shapeFlag &= ~512;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n if (target.isUnmounted) {\n return;\n }\n pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, \"\"));\n warn$1(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => (\n // post-create lifecycle registrations are noops during SSR (except for serverPrefetch)\n (!isInSSRComponentSetup || lifecycle === \"sp\") && injectHook(lifecycle, (...args) => hook(...args), target)\n);\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\"bu\");\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\"bum\");\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\"sp\");\nconst onRenderTriggered = createHook(\n \"rtg\"\n);\nconst onRenderTracked = createHook(\n \"rtc\"\n);\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nfunction getCompatChildren(instance) {\n assertCompatEnabled(\"INSTANCE_CHILDREN\", instance);\n const root = instance.subTree;\n const children = [];\n if (root) {\n walk(root, children);\n }\n return children;\n}\nfunction walk(vnode, children) {\n if (vnode.component) {\n children.push(vnode.component.proxy);\n } else if (vnode.shapeFlag & 16) {\n const vnodes = vnode.children;\n for (let i = 0; i < vnodes.length; i++) {\n walk(vnodes[i], children);\n }\n }\n}\n\nfunction getCompatListeners(instance) {\n assertCompatEnabled(\"INSTANCE_LISTENERS\", instance);\n const listeners = {};\n const rawProps = instance.vnode.props;\n if (!rawProps) {\n return listeners;\n }\n for (const key in rawProps) {\n if (isOn(key)) {\n listeners[key[2].toLowerCase() + key.slice(3)] = rawProps[key];\n }\n }\n return listeners;\n}\n\nfunction convertLegacyRenderFn(instance) {\n const Component = instance.type;\n const render = Component.render;\n if (!render || render._rc || render._compatChecked || render._compatWrapped) {\n return;\n }\n if (render.length >= 2) {\n render._compatChecked = true;\n return;\n }\n if (checkCompatEnabled(\"RENDER_FUNCTION\", instance)) {\n const wrapped = Component.render = function compatRender() {\n return render.call(this, compatH);\n };\n wrapped._compatWrapped = true;\n }\n}\nfunction compatH(type, propsOrChildren, children) {\n if (!type) {\n type = Comment;\n }\n if (typeof type === \"string\") {\n const t = hyphenate(type);\n if (t === \"transition\" || t === \"transition-group\" || t === \"keep-alive\") {\n type = `__compat__${t}`;\n }\n type = resolveDynamicComponent(type);\n }\n const l = arguments.length;\n const is2ndArgArrayChildren = isArray(propsOrChildren);\n if (l === 2 || is2ndArgArrayChildren) {\n if (isObject(propsOrChildren) && !is2ndArgArrayChildren) {\n if (isVNode(propsOrChildren)) {\n return convertLegacySlots(createVNode(type, null, [propsOrChildren]));\n }\n return convertLegacySlots(\n convertLegacyDirectives(\n createVNode(type, convertLegacyProps(propsOrChildren, type)),\n propsOrChildren\n )\n );\n } else {\n return convertLegacySlots(createVNode(type, null, propsOrChildren));\n }\n } else {\n if (isVNode(children)) {\n children = [children];\n }\n return convertLegacySlots(\n convertLegacyDirectives(\n createVNode(type, convertLegacyProps(propsOrChildren, type), children),\n propsOrChildren\n )\n );\n }\n}\nconst skipLegacyRootLevelProps = /* @__PURE__ */ makeMap(\n \"staticStyle,staticClass,directives,model,hook\"\n);\nfunction convertLegacyProps(legacyProps, type) {\n if (!legacyProps) {\n return null;\n }\n const converted = {};\n for (const key in legacyProps) {\n if (key === \"attrs\" || key === \"domProps\" || key === \"props\") {\n extend(converted, legacyProps[key]);\n } else if (key === \"on\" || key === \"nativeOn\") {\n const listeners = legacyProps[key];\n for (const event in listeners) {\n let handlerKey = convertLegacyEventKey(event);\n if (key === \"nativeOn\")\n handlerKey += `Native`;\n const existing = converted[handlerKey];\n const incoming = listeners[event];\n if (existing !== incoming) {\n if (existing) {\n converted[handlerKey] = [].concat(existing, incoming);\n } else {\n converted[handlerKey] = incoming;\n }\n }\n }\n } else if (!skipLegacyRootLevelProps(key)) {\n converted[key] = legacyProps[key];\n }\n }\n if (legacyProps.staticClass) {\n converted.class = normalizeClass([legacyProps.staticClass, converted.class]);\n }\n if (legacyProps.staticStyle) {\n converted.style = normalizeStyle([legacyProps.staticStyle, converted.style]);\n }\n if (legacyProps.model && isObject(type)) {\n const { prop = \"value\", event = \"input\" } = type.model || {};\n converted[prop] = legacyProps.model.value;\n converted[compatModelEventPrefix + event] = legacyProps.model.callback;\n }\n return converted;\n}\nfunction convertLegacyEventKey(event) {\n if (event[0] === \"&\") {\n event = event.slice(1) + \"Passive\";\n }\n if (event[0] === \"~\") {\n event = event.slice(1) + \"Once\";\n }\n if (event[0] === \"!\") {\n event = event.slice(1) + \"Capture\";\n }\n return toHandlerKey(event);\n}\nfunction convertLegacyDirectives(vnode, props) {\n if (props && props.directives) {\n return withDirectives(\n vnode,\n props.directives.map(({ name, value, arg, modifiers }) => {\n return [\n resolveDirective(name),\n value,\n arg,\n modifiers\n ];\n })\n );\n }\n return vnode;\n}\nfunction convertLegacySlots(vnode) {\n const { props, children } = vnode;\n let slots;\n if (vnode.shapeFlag & 6 && isArray(children)) {\n slots = {};\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n const slotName = isVNode(child) && child.props && child.props.slot || \"default\";\n const slot = slots[slotName] || (slots[slotName] = []);\n if (isVNode(child) && child.type === \"template\") {\n slot.push(child.children);\n } else {\n slot.push(child);\n }\n }\n if (slots) {\n for (const key in slots) {\n const slotChildren = slots[key];\n slots[key] = () => slotChildren;\n slots[key]._ns = true;\n }\n }\n }\n const scopedSlots = props && props.scopedSlots;\n if (scopedSlots) {\n delete props.scopedSlots;\n if (slots) {\n extend(slots, scopedSlots);\n } else {\n slots = scopedSlots;\n }\n }\n if (slots) {\n normalizeChildren(vnode, slots);\n }\n return vnode;\n}\nfunction defineLegacyVNodeProperties(vnode) {\n if (isCompatEnabled(\n \"RENDER_FUNCTION\",\n currentRenderingInstance,\n true\n ) && isCompatEnabled(\n \"PRIVATE_APIS\",\n currentRenderingInstance,\n true\n )) {\n const context = currentRenderingInstance;\n const getInstance = () => vnode.component && vnode.component.proxy;\n let componentOptions;\n Object.defineProperties(vnode, {\n tag: { get: () => vnode.type },\n data: { get: () => vnode.props || {}, set: (p) => vnode.props = p },\n elm: { get: () => vnode.el },\n componentInstance: { get: getInstance },\n child: { get: getInstance },\n text: { get: () => isString(vnode.children) ? vnode.children : null },\n context: { get: () => context && context.proxy },\n componentOptions: {\n get: () => {\n if (vnode.shapeFlag & 4) {\n if (componentOptions) {\n return componentOptions;\n }\n return componentOptions = {\n Ctor: vnode.type,\n propsData: vnode.props,\n children: vnode.children\n };\n }\n }\n }\n });\n }\n}\n\nconst normalizedFunctionalComponentMap = /* @__PURE__ */ new WeakMap();\nconst legacySlotProxyHandlers = {\n get(target, key) {\n const slot = target[key];\n return slot && slot();\n }\n};\nfunction convertLegacyFunctionalComponent(comp) {\n if (normalizedFunctionalComponentMap.has(comp)) {\n return normalizedFunctionalComponentMap.get(comp);\n }\n const legacyFn = comp.render;\n const Func = (props, ctx) => {\n const instance = getCurrentInstance();\n const legacyCtx = {\n props,\n children: instance.vnode.children || [],\n data: instance.vnode.props || {},\n scopedSlots: ctx.slots,\n parent: instance.parent && instance.parent.proxy,\n slots() {\n return new Proxy(ctx.slots, legacySlotProxyHandlers);\n },\n get listeners() {\n return getCompatListeners(instance);\n },\n get injections() {\n if (comp.inject) {\n const injections = {};\n resolveInjections(comp.inject, injections);\n return injections;\n }\n return {};\n }\n };\n return legacyFn(compatH, legacyCtx);\n };\n Func.props = comp.props;\n Func.displayName = comp.name;\n Func.compatConfig = comp.compatConfig;\n Func.inheritAttrs = false;\n normalizedFunctionalComponentMap.set(comp, Func);\n return Func;\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n if (isArray(source) || isString(source)) {\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(source[i], i, void 0, cached && cached[i]);\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && !Number.isInteger(source)) {\n warn$1(`The v-for range expect an integer value but got ${source}.`);\n }\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res)\n res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) {\n if (name !== \"default\")\n props.name = name;\n return createVNode(\"slot\", props, fallback && fallback());\n }\n let slot = slots[name];\n if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n warn$1(\n `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const rendered = createBlock(\n Fragment,\n {\n key: props.key || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key || `_${name}`\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child))\n return true;\n if (child.type === Comment)\n return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn$1(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nfunction toObject(arr) {\n const res = {};\n for (let i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res;\n}\nfunction legacyBindObjectProps(data, _tag, value, _asProp, isSync) {\n if (value && isObject(value)) {\n if (isArray(value)) {\n value = toObject(value);\n }\n for (const key in value) {\n if (isReservedProp(key)) {\n data[key] = value[key];\n } else if (key === \"class\") {\n data.class = normalizeClass([data.class, value.class]);\n } else if (key === \"style\") {\n data.style = normalizeClass([data.style, value.style]);\n } else {\n const attrs = data.attrs || (data.attrs = {});\n const camelizedKey = camelize(key);\n const hyphenatedKey = hyphenate(key);\n if (!(camelizedKey in attrs) && !(hyphenatedKey in attrs)) {\n attrs[key] = value[key];\n if (isSync) {\n const on = data.on || (data.on = {});\n on[`update:${key}`] = function($event) {\n value[key] = $event;\n };\n }\n }\n }\n }\n }\n return data;\n}\nfunction legacyBindObjectListeners(props, listeners) {\n return mergeProps(props, toHandlers(listeners));\n}\nfunction legacyRenderSlot(instance, name, fallback, props, bindObject) {\n if (bindObject) {\n props = mergeProps(props, bindObject);\n }\n return renderSlot(instance.slots, name, props, fallback && (() => fallback));\n}\nfunction legacyresolveScopedSlots(fns, raw, hasDynamicKeys) {\n return createSlots(\n raw || { $stable: !hasDynamicKeys },\n mapKeyToName(fns)\n );\n}\nfunction mapKeyToName(slots) {\n for (let i = 0; i < slots.length; i++) {\n const fn = slots[i];\n if (fn) {\n if (isArray(fn)) {\n mapKeyToName(fn);\n } else {\n fn.name = fn.key || \"default\";\n }\n }\n }\n return slots;\n}\nconst staticCacheMap = /* @__PURE__ */ new WeakMap();\nfunction legacyRenderStatic(instance, index) {\n let cache = staticCacheMap.get(instance);\n if (!cache) {\n staticCacheMap.set(instance, cache = []);\n }\n if (cache[index]) {\n return cache[index];\n }\n const fn = instance.type.staticRenderFns[index];\n const ctx = instance.proxy;\n return cache[index] = fn.call(ctx, null, ctx);\n}\nfunction legacyCheckKeyCodes(instance, eventKeyCode, key, builtInKeyCode, eventKeyName, builtInKeyName) {\n const config = instance.appContext.config;\n const configKeyCodes = config.keyCodes || {};\n const mappedKeyCode = configKeyCodes[key] || builtInKeyCode;\n if (builtInKeyName && eventKeyName && !configKeyCodes[key]) {\n return isKeyNotMatch(builtInKeyName, eventKeyName);\n } else if (mappedKeyCode) {\n return isKeyNotMatch(mappedKeyCode, eventKeyCode);\n } else if (eventKeyName) {\n return hyphenate(eventKeyName) !== key;\n }\n}\nfunction isKeyNotMatch(expect, actual) {\n if (isArray(expect)) {\n return !expect.includes(actual);\n } else {\n return expect !== actual;\n }\n}\nfunction legacyMarkOnce(tree) {\n return tree;\n}\nfunction legacyBindDynamicKeys(props, values) {\n for (let i = 0; i < values.length; i += 2) {\n const key = values[i];\n if (typeof key === \"string\" && key) {\n props[values[i]] = values[i + 1];\n }\n }\n return props;\n}\nfunction legacyPrependModifier(value, symbol) {\n return typeof value === \"string\" ? symbol + value : value;\n}\n\nfunction installCompatInstanceProperties(map) {\n const set = (target, key, val) => {\n target[key] = val;\n return target[key];\n };\n const del = (target, key) => {\n delete target[key];\n };\n extend(map, {\n $set: (i) => {\n assertCompatEnabled(\"INSTANCE_SET\", i);\n return set;\n },\n $delete: (i) => {\n assertCompatEnabled(\"INSTANCE_DELETE\", i);\n return del;\n },\n $mount: (i) => {\n assertCompatEnabled(\n \"GLOBAL_MOUNT\",\n null\n );\n return i.ctx._compat_mount || NOOP;\n },\n $destroy: (i) => {\n assertCompatEnabled(\"INSTANCE_DESTROY\", i);\n return i.ctx._compat_destroy || NOOP;\n },\n // overrides existing accessor\n $slots: (i) => {\n if (isCompatEnabled(\"RENDER_FUNCTION\", i) && i.render && i.render._compatWrapped) {\n return new Proxy(i.slots, legacySlotProxyHandlers);\n }\n return !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots;\n },\n $scopedSlots: (i) => {\n assertCompatEnabled(\"INSTANCE_SCOPED_SLOTS\", i);\n const res = {};\n for (const key in i.slots) {\n const fn = i.slots[key];\n if (!fn._ns) {\n res[key] = fn;\n }\n }\n return res;\n },\n $on: (i) => on.bind(null, i),\n $once: (i) => once.bind(null, i),\n $off: (i) => off.bind(null, i),\n $children: getCompatChildren,\n $listeners: getCompatListeners\n });\n if (isCompatEnabled(\"PRIVATE_APIS\", null)) {\n extend(map, {\n // needed by many libs / render fns\n $vnode: (i) => i.vnode,\n // inject additional properties into $options for compat\n // e.g. vuex needs this.$options.parent\n $options: (i) => {\n const res = extend({}, resolveMergedOptions(i));\n res.parent = i.proxy.$parent;\n res.propsData = i.vnode.props;\n return res;\n },\n // some private properties that are likely accessed...\n _self: (i) => i.proxy,\n _uid: (i) => i.uid,\n _data: (i) => i.data,\n _isMounted: (i) => i.isMounted,\n _isDestroyed: (i) => i.isUnmounted,\n // v2 render helpers\n $createElement: () => compatH,\n _c: () => compatH,\n _o: () => legacyMarkOnce,\n _n: () => looseToNumber,\n _s: () => toDisplayString,\n _l: () => renderList,\n _t: (i) => legacyRenderSlot.bind(null, i),\n _q: () => looseEqual,\n _i: () => looseIndexOf,\n _m: (i) => legacyRenderStatic.bind(null, i),\n _f: () => resolveFilter$1,\n _k: (i) => legacyCheckKeyCodes.bind(null, i),\n _b: () => legacyBindObjectProps,\n _v: () => createTextVNode,\n _e: () => createCommentVNode,\n _u: () => legacyresolveScopedSlots,\n _g: () => legacyBindObjectListeners,\n _d: () => legacyBindDynamicKeys,\n _p: () => legacyPrependModifier\n });\n }\n}\n\nconst getPublicInstance = (i) => {\n if (!i)\n return null;\n if (isStatefulComponent(i))\n return getExposeProxy(i) || i.proxy;\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n i.effect.dirty = true;\n queueJob(i.update);\n }),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\n{\n installCompatInstanceProperties(publicPropertiesMap);\n}\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\n ) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance, \"get\", key);\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n const desc = Object.getOwnPropertyDescriptor(globalProperties, key);\n if (desc.get) {\n return desc.get.call(instance.proxy);\n } else {\n const val = globalProperties[key];\n return isFunction(val) ? Object.assign(val.bind(instance.proxy), val) : val;\n }\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`Cannot mutate <script setup> binding \"${key}\" from Options API.`);\n return false;\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n data[key] = value;\n return true;\n } else if (hasOwn(instance.props, key)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`Attempting to mutate prop \"${key}\". Props are readonly.`);\n return false;\n }\n if (key[0] === \"$\" && key.slice(1) in instance) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Attempting to mutate public property \"${key}\". Properties starting with $ are reserved and readonly.`\n );\n return false;\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && key in instance.appContext.config.globalProperties) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n value\n });\n } else {\n ctx[key] = value;\n }\n }\n return true;\n },\n has({\n _: { data, setupState, accessCache, ctx, appContext, propsOptions }\n }, key) {\n let normalizedProps;\n return !!accessCache[key] || data !== EMPTY_OBJ && hasOwn(data, key) || hasSetupBinding(setupState, key) || (normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key);\n },\n defineProperty(target, key, descriptor) {\n if (descriptor.get != null) {\n target._.accessCache[key] = 0;\n } else if (hasOwn(descriptor, \"value\")) {\n this.set(target, key, descriptor.value, null);\n }\n return Reflect.defineProperty(target, key, descriptor);\n }\n};\nif (!!(process.env.NODE_ENV !== \"production\") && true) {\n PublicInstanceProxyHandlers.ownKeys = (target) => {\n warn$1(\n `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.`\n );\n return Reflect.ownKeys(target);\n };\n}\nconst RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend(\n {},\n PublicInstanceProxyHandlers,\n {\n get(target, key) {\n if (key === Symbol.unscopables) {\n return;\n }\n return PublicInstanceProxyHandlers.get(target, key, target);\n },\n has(_, key) {\n const has = key[0] !== \"_\" && !isGloballyAllowed(key);\n if (!!(process.env.NODE_ENV !== \"production\") && !has && PublicInstanceProxyHandlers.has(_, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} should not start with _ which is a reserved prefix for Vue internals.`\n );\n }\n return has;\n }\n }\n);\nfunction createDevRenderContext(instance) {\n const target = {};\n Object.defineProperty(target, `_`, {\n configurable: true,\n enumerable: false,\n get: () => instance\n });\n Object.keys(publicPropertiesMap).forEach((key) => {\n Object.defineProperty(target, key, {\n configurable: true,\n enumerable: false,\n get: () => publicPropertiesMap[key](instance),\n // intercepted by the proxy so no need for implementation,\n // but needed to prevent set errors\n set: NOOP\n });\n });\n return target;\n}\nfunction exposePropsOnRenderContext(instance) {\n const {\n ctx,\n propsOptions: [propsOptions]\n } = instance;\n if (propsOptions) {\n Object.keys(propsOptions).forEach((key) => {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => instance.props[key],\n set: NOOP\n });\n });\n }\n}\nfunction exposeSetupStateOnRenderContext(instance) {\n const { ctx, setupState } = instance;\n Object.keys(toRaw(setupState)).forEach((key) => {\n if (!setupState.__isScriptSetup) {\n if (isReservedPrefix(key[0])) {\n warn$1(\n `setup() return property ${JSON.stringify(\n key\n )} should not start with \"$\" or \"_\" which are reserved prefixes for Vue internals.`\n );\n return;\n }\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => setupState[key],\n set: NOOP\n });\n }\n });\n}\n\nfunction deepMergeData(to, from) {\n for (const key in from) {\n const toVal = to[key];\n const fromVal = from[key];\n if (key in to && isPlainObject(toVal) && isPlainObject(fromVal)) {\n !!(process.env.NODE_ENV !== \"production\") && warnDeprecation(\"OPTIONS_DATA_MERGE\", null, key);\n deepMergeData(toVal, fromVal);\n } else {\n to[key] = fromVal;\n }\n }\n return to;\n}\n\nconst warnRuntimeUsage = (method) => warn$1(\n `${method}() is a compiler-hint helper that is only usable inside <script setup> of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.`\n);\nfunction defineProps() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineProps`);\n }\n return null;\n}\nfunction defineEmits() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineEmits`);\n }\n return null;\n}\nfunction defineExpose(exposed) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineExpose`);\n }\n}\nfunction defineOptions(options) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineOptions`);\n }\n}\nfunction defineSlots() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineSlots`);\n }\n return null;\n}\nfunction defineModel() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(\"defineModel\");\n }\n}\nfunction withDefaults(props, defaults) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`withDefaults`);\n }\n return null;\n}\nfunction useSlots() {\n return getContext().slots;\n}\nfunction useAttrs() {\n return getContext().attrs;\n}\nfunction getContext() {\n const i = getCurrentInstance();\n if (!!(process.env.NODE_ENV !== \"production\") && !i) {\n warn$1(`useContext() called without active instance.`);\n }\n return i.setupContext || (i.setupContext = createSetupContext(i));\n}\nfunction normalizePropsOrEmits(props) {\n return isArray(props) ? props.reduce(\n (normalized, p) => (normalized[p] = null, normalized),\n {}\n ) : props;\n}\nfunction mergeDefaults(raw, defaults) {\n const props = normalizePropsOrEmits(raw);\n for (const key in defaults) {\n if (key.startsWith(\"__skip\"))\n continue;\n let opt = props[key];\n if (opt) {\n if (isArray(opt) || isFunction(opt)) {\n opt = props[key] = { type: opt, default: defaults[key] };\n } else {\n opt.default = defaults[key];\n }\n } else if (opt === null) {\n opt = props[key] = { default: defaults[key] };\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`props default key \"${key}\" has no corresponding declaration.`);\n }\n if (opt && defaults[`__skip_${key}`]) {\n opt.skipFactory = true;\n }\n }\n return props;\n}\nfunction mergeModels(a, b) {\n if (!a || !b)\n return a || b;\n if (isArray(a) && isArray(b))\n return a.concat(b);\n return extend({}, normalizePropsOrEmits(a), normalizePropsOrEmits(b));\n}\nfunction createPropsRestProxy(props, excludedKeys) {\n const ret = {};\n for (const key in props) {\n if (!excludedKeys.includes(key)) {\n Object.defineProperty(ret, key, {\n enumerable: true,\n get: () => props[key]\n });\n }\n }\n return ret;\n}\nfunction withAsyncContext(getAwaitable) {\n const ctx = getCurrentInstance();\n if (!!(process.env.NODE_ENV !== \"production\") && !ctx) {\n warn$1(\n `withAsyncContext called without active current instance. This is likely a bug.`\n );\n }\n let awaitable = getAwaitable();\n unsetCurrentInstance();\n if (isPromise(awaitable)) {\n awaitable = awaitable.catch((e) => {\n setCurrentInstance(ctx);\n throw e;\n });\n }\n return [awaitable, () => setCurrentInstance(ctx)];\n}\n\nfunction createDuplicateChecker() {\n const cache = /* @__PURE__ */ Object.create(null);\n return (type, key) => {\n if (cache[key]) {\n warn$1(`${type} property \"${key}\" is already defined in ${cache[key]}.`);\n } else {\n cache[key] = type;\n }\n };\n}\nlet shouldCacheAccess = true;\nfunction applyOptions(instance) {\n const options = resolveMergedOptions(instance);\n const publicThis = instance.proxy;\n const ctx = instance.ctx;\n shouldCacheAccess = false;\n if (options.beforeCreate) {\n callHook$1(options.beforeCreate, instance, \"bc\");\n }\n const {\n // state\n data: dataOptions,\n computed: computedOptions,\n methods,\n watch: watchOptions,\n provide: provideOptions,\n inject: injectOptions,\n // lifecycle\n created,\n beforeMount,\n mounted,\n beforeUpdate,\n updated,\n activated,\n deactivated,\n beforeDestroy,\n beforeUnmount,\n destroyed,\n unmounted,\n render,\n renderTracked,\n renderTriggered,\n errorCaptured,\n serverPrefetch,\n // public API\n expose,\n inheritAttrs,\n // assets\n components,\n directives,\n filters\n } = options;\n const checkDuplicateProperties = !!(process.env.NODE_ENV !== \"production\") ? createDuplicateChecker() : null;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const [propsOptions] = instance.propsOptions;\n if (propsOptions) {\n for (const key in propsOptions) {\n checkDuplicateProperties(\"Props\" /* PROPS */, key);\n }\n }\n }\n if (injectOptions) {\n resolveInjections(injectOptions, ctx, checkDuplicateProperties);\n }\n if (methods) {\n for (const key in methods) {\n const methodHandler = methods[key];\n if (isFunction(methodHandler)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n Object.defineProperty(ctx, key, {\n value: methodHandler.bind(publicThis),\n configurable: true,\n enumerable: true,\n writable: true\n });\n } else {\n ctx[key] = methodHandler.bind(publicThis);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Methods\" /* METHODS */, key);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Method \"${key}\" has type \"${typeof methodHandler}\" in the component definition. Did you reference the function correctly?`\n );\n }\n }\n }\n if (dataOptions) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(dataOptions)) {\n warn$1(\n `The data option must be a function. Plain object usage is no longer supported.`\n );\n }\n const data = dataOptions.call(publicThis, publicThis);\n if (!!(process.env.NODE_ENV !== \"production\") && isPromise(data)) {\n warn$1(\n `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.`\n );\n }\n if (!isObject(data)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`data() should return an object.`);\n } else {\n instance.data = reactive(data);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (const key in data) {\n checkDuplicateProperties(\"Data\" /* DATA */, key);\n if (!isReservedPrefix(key[0])) {\n Object.defineProperty(ctx, key, {\n configurable: true,\n enumerable: true,\n get: () => data[key],\n set: NOOP\n });\n }\n }\n }\n }\n }\n shouldCacheAccess = true;\n if (computedOptions) {\n for (const key in computedOptions) {\n const opt = computedOptions[key];\n const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;\n if (!!(process.env.NODE_ENV !== \"production\") && get === NOOP) {\n warn$1(`Computed property \"${key}\" has no getter.`);\n }\n const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : !!(process.env.NODE_ENV !== \"production\") ? () => {\n warn$1(\n `Write operation failed: computed property \"${key}\" is readonly.`\n );\n } : NOOP;\n const c = computed({\n get,\n set\n });\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => c.value,\n set: (v) => c.value = v\n });\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Computed\" /* COMPUTED */, key);\n }\n }\n }\n if (watchOptions) {\n for (const key in watchOptions) {\n createWatcher(watchOptions[key], ctx, publicThis, key);\n }\n }\n if (provideOptions) {\n const provides = isFunction(provideOptions) ? provideOptions.call(publicThis) : provideOptions;\n Reflect.ownKeys(provides).forEach((key) => {\n provide(key, provides[key]);\n });\n }\n if (created) {\n callHook$1(created, instance, \"c\");\n }\n function registerLifecycleHook(register, hook) {\n if (isArray(hook)) {\n hook.forEach((_hook) => register(_hook.bind(publicThis)));\n } else if (hook) {\n register(hook.bind(publicThis));\n }\n }\n registerLifecycleHook(onBeforeMount, beforeMount);\n registerLifecycleHook(onMounted, mounted);\n registerLifecycleHook(onBeforeUpdate, beforeUpdate);\n registerLifecycleHook(onUpdated, updated);\n registerLifecycleHook(onActivated, activated);\n registerLifecycleHook(onDeactivated, deactivated);\n registerLifecycleHook(onErrorCaptured, errorCaptured);\n registerLifecycleHook(onRenderTracked, renderTracked);\n registerLifecycleHook(onRenderTriggered, renderTriggered);\n registerLifecycleHook(onBeforeUnmount, beforeUnmount);\n registerLifecycleHook(onUnmounted, unmounted);\n registerLifecycleHook(onServerPrefetch, serverPrefetch);\n {\n if (beforeDestroy && softAssertCompatEnabled(\"OPTIONS_BEFORE_DESTROY\", instance)) {\n registerLifecycleHook(onBeforeUnmount, beforeDestroy);\n }\n if (destroyed && softAssertCompatEnabled(\"OPTIONS_DESTROYED\", instance)) {\n registerLifecycleHook(onUnmounted, destroyed);\n }\n }\n if (isArray(expose)) {\n if (expose.length) {\n const exposed = instance.exposed || (instance.exposed = {});\n expose.forEach((key) => {\n Object.defineProperty(exposed, key, {\n get: () => publicThis[key],\n set: (val) => publicThis[key] = val\n });\n });\n } else if (!instance.exposed) {\n instance.exposed = {};\n }\n }\n if (render && instance.render === NOOP) {\n instance.render = render;\n }\n if (inheritAttrs != null) {\n instance.inheritAttrs = inheritAttrs;\n }\n if (components)\n instance.components = components;\n if (directives)\n instance.directives = directives;\n if (filters && isCompatEnabled(\"FILTERS\", instance)) {\n instance.filters = filters;\n }\n}\nfunction resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP) {\n if (isArray(injectOptions)) {\n injectOptions = normalizeInject(injectOptions);\n }\n for (const key in injectOptions) {\n const opt = injectOptions[key];\n let injected;\n if (isObject(opt)) {\n if (\"default\" in opt) {\n injected = inject(\n opt.from || key,\n opt.default,\n true\n );\n } else {\n injected = inject(opt.from || key);\n }\n } else {\n injected = inject(opt);\n }\n if (isRef(injected)) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => injected.value,\n set: (v) => injected.value = v\n });\n } else {\n ctx[key] = injected;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Inject\" /* INJECT */, key);\n }\n }\n}\nfunction callHook$1(hook, instance, type) {\n callWithAsyncErrorHandling(\n isArray(hook) ? hook.map((h) => h.bind(instance.proxy)) : hook.bind(instance.proxy),\n instance,\n type\n );\n}\nfunction createWatcher(raw, ctx, publicThis, key) {\n const getter = key.includes(\".\") ? createPathGetter(publicThis, key) : () => publicThis[key];\n if (isString(raw)) {\n const handler = ctx[raw];\n if (isFunction(handler)) {\n watch(getter, handler);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch handler specified by key \"${raw}\"`, handler);\n }\n } else if (isFunction(raw)) {\n watch(getter, raw.bind(publicThis));\n } else if (isObject(raw)) {\n if (isArray(raw)) {\n raw.forEach((r) => createWatcher(r, ctx, publicThis, key));\n } else {\n const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];\n if (isFunction(handler)) {\n watch(getter, handler, raw);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch handler specified by key \"${raw.handler}\"`, handler);\n }\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch option: \"${key}\"`, raw);\n }\n}\nfunction resolveMergedOptions(instance) {\n const base = instance.type;\n const { mixins, extends: extendsOptions } = base;\n const {\n mixins: globalMixins,\n optionsCache: cache,\n config: { optionMergeStrategies }\n } = instance.appContext;\n const cached = cache.get(base);\n let resolved;\n if (cached) {\n resolved = cached;\n } else if (!globalMixins.length && !mixins && !extendsOptions) {\n if (isCompatEnabled(\"PRIVATE_APIS\", instance)) {\n resolved = extend({}, base);\n resolved.parent = instance.parent && instance.parent.proxy;\n resolved.propsData = instance.vnode.props;\n } else {\n resolved = base;\n }\n } else {\n resolved = {};\n if (globalMixins.length) {\n globalMixins.forEach(\n (m) => mergeOptions(resolved, m, optionMergeStrategies, true)\n );\n }\n mergeOptions(resolved, base, optionMergeStrategies);\n }\n if (isObject(base)) {\n cache.set(base, resolved);\n }\n return resolved;\n}\nfunction mergeOptions(to, from, strats, asMixin = false) {\n if (isFunction(from)) {\n from = from.options;\n }\n const { mixins, extends: extendsOptions } = from;\n if (extendsOptions) {\n mergeOptions(to, extendsOptions, strats, true);\n }\n if (mixins) {\n mixins.forEach(\n (m) => mergeOptions(to, m, strats, true)\n );\n }\n for (const key in from) {\n if (asMixin && key === \"expose\") {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `\"expose\" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.`\n );\n } else {\n const strat = internalOptionMergeStrats[key] || strats && strats[key];\n to[key] = strat ? strat(to[key], from[key]) : from[key];\n }\n }\n return to;\n}\nconst internalOptionMergeStrats = {\n data: mergeDataFn,\n props: mergeEmitsOrPropsOptions,\n emits: mergeEmitsOrPropsOptions,\n // objects\n methods: mergeObjectOptions,\n computed: mergeObjectOptions,\n // lifecycle\n beforeCreate: mergeAsArray,\n created: mergeAsArray,\n beforeMount: mergeAsArray,\n mounted: mergeAsArray,\n beforeUpdate: mergeAsArray,\n updated: mergeAsArray,\n beforeDestroy: mergeAsArray,\n beforeUnmount: mergeAsArray,\n destroyed: mergeAsArray,\n unmounted: mergeAsArray,\n activated: mergeAsArray,\n deactivated: mergeAsArray,\n errorCaptured: mergeAsArray,\n serverPrefetch: mergeAsArray,\n // assets\n components: mergeObjectOptions,\n directives: mergeObjectOptions,\n // watch\n watch: mergeWatchOptions,\n // provide / inject\n provide: mergeDataFn,\n inject: mergeInject\n};\n{\n internalOptionMergeStrats.filters = mergeObjectOptions;\n}\nfunction mergeDataFn(to, from) {\n if (!from) {\n return to;\n }\n if (!to) {\n return from;\n }\n return function mergedDataFn() {\n return (isCompatEnabled(\"OPTIONS_DATA_MERGE\", null) ? deepMergeData : extend)(\n isFunction(to) ? to.call(this, this) : to,\n isFunction(from) ? from.call(this, this) : from\n );\n };\n}\nfunction mergeInject(to, from) {\n return mergeObjectOptions(normalizeInject(to), normalizeInject(from));\n}\nfunction normalizeInject(raw) {\n if (isArray(raw)) {\n const res = {};\n for (let i = 0; i < raw.length; i++) {\n res[raw[i]] = raw[i];\n }\n return res;\n }\n return raw;\n}\nfunction mergeAsArray(to, from) {\n return to ? [...new Set([].concat(to, from))] : from;\n}\nfunction mergeObjectOptions(to, from) {\n return to ? extend(/* @__PURE__ */ Object.create(null), to, from) : from;\n}\nfunction mergeEmitsOrPropsOptions(to, from) {\n if (to) {\n if (isArray(to) && isArray(from)) {\n return [.../* @__PURE__ */ new Set([...to, ...from])];\n }\n return extend(\n /* @__PURE__ */ Object.create(null),\n normalizePropsOrEmits(to),\n normalizePropsOrEmits(from != null ? from : {})\n );\n } else {\n return from;\n }\n}\nfunction mergeWatchOptions(to, from) {\n if (!to)\n return from;\n if (!from)\n return to;\n const merged = extend(/* @__PURE__ */ Object.create(null), to);\n for (const key in from) {\n merged[key] = mergeAsArray(to[key], from[key]);\n }\n return merged;\n}\n\nfunction installLegacyConfigWarnings(config) {\n const legacyConfigOptions = {\n silent: \"CONFIG_SILENT\",\n devtools: \"CONFIG_DEVTOOLS\",\n ignoredElements: \"CONFIG_IGNORED_ELEMENTS\",\n keyCodes: \"CONFIG_KEY_CODES\",\n productionTip: \"CONFIG_PRODUCTION_TIP\"\n };\n Object.keys(legacyConfigOptions).forEach((key) => {\n let val = config[key];\n Object.defineProperty(config, key, {\n enumerable: true,\n get() {\n return val;\n },\n set(newVal) {\n if (!isCopyingConfig) {\n warnDeprecation(legacyConfigOptions[key], null);\n }\n val = newVal;\n }\n });\n });\n}\nfunction installLegacyOptionMergeStrats(config) {\n config.optionMergeStrategies = new Proxy({}, {\n get(target, key) {\n if (key in target) {\n return target[key];\n }\n if (key in internalOptionMergeStrats && softAssertCompatEnabled(\n \"CONFIG_OPTION_MERGE_STRATS\",\n null\n )) {\n return internalOptionMergeStrats[key];\n }\n }\n });\n}\n\nlet isCopyingConfig = false;\nlet singletonApp;\nlet singletonCtor;\nfunction createCompatVue$1(createApp, createSingletonApp) {\n singletonApp = createSingletonApp({});\n const Vue = singletonCtor = function Vue2(options = {}) {\n return createCompatApp(options, Vue2);\n };\n function createCompatApp(options = {}, Ctor) {\n assertCompatEnabled(\"GLOBAL_MOUNT\", null);\n const { data } = options;\n if (data && !isFunction(data) && softAssertCompatEnabled(\"OPTIONS_DATA_FN\", null)) {\n options.data = () => data;\n }\n const app = createApp(options);\n if (Ctor !== Vue) {\n applySingletonPrototype(app, Ctor);\n }\n const vm = app._createRoot(options);\n if (options.el) {\n return vm.$mount(options.el);\n } else {\n return vm;\n }\n }\n Vue.version = `2.6.14-compat:${\"3.4.15\"}`;\n Vue.config = singletonApp.config;\n Vue.use = (p, ...options) => {\n if (p && isFunction(p.install)) {\n p.install(Vue, ...options);\n } else if (isFunction(p)) {\n p(Vue, ...options);\n }\n return Vue;\n };\n Vue.mixin = (m) => {\n singletonApp.mixin(m);\n return Vue;\n };\n Vue.component = (name, comp) => {\n if (comp) {\n singletonApp.component(name, comp);\n return Vue;\n } else {\n return singletonApp.component(name);\n }\n };\n Vue.directive = (name, dir) => {\n if (dir) {\n singletonApp.directive(name, dir);\n return Vue;\n } else {\n return singletonApp.directive(name);\n }\n };\n Vue.options = { _base: Vue };\n let cid = 1;\n Vue.cid = cid;\n Vue.nextTick = nextTick;\n const extendCache = /* @__PURE__ */ new WeakMap();\n function extendCtor(extendOptions = {}) {\n assertCompatEnabled(\"GLOBAL_EXTEND\", null);\n if (isFunction(extendOptions)) {\n extendOptions = extendOptions.options;\n }\n if (extendCache.has(extendOptions)) {\n return extendCache.get(extendOptions);\n }\n const Super = this;\n function SubVue(inlineOptions) {\n if (!inlineOptions) {\n return createCompatApp(SubVue.options, SubVue);\n } else {\n return createCompatApp(\n mergeOptions(\n extend({}, SubVue.options),\n inlineOptions,\n internalOptionMergeStrats\n ),\n SubVue\n );\n }\n }\n SubVue.super = Super;\n SubVue.prototype = Object.create(Vue.prototype);\n SubVue.prototype.constructor = SubVue;\n const mergeBase = {};\n for (const key in Super.options) {\n const superValue = Super.options[key];\n mergeBase[key] = isArray(superValue) ? superValue.slice() : isObject(superValue) ? extend(/* @__PURE__ */ Object.create(null), superValue) : superValue;\n }\n SubVue.options = mergeOptions(\n mergeBase,\n extendOptions,\n internalOptionMergeStrats\n );\n SubVue.options._base = SubVue;\n SubVue.extend = extendCtor.bind(SubVue);\n SubVue.mixin = Super.mixin;\n SubVue.use = Super.use;\n SubVue.cid = ++cid;\n extendCache.set(extendOptions, SubVue);\n return SubVue;\n }\n Vue.extend = extendCtor.bind(Vue);\n Vue.set = (target, key, value) => {\n assertCompatEnabled(\"GLOBAL_SET\", null);\n target[key] = value;\n };\n Vue.delete = (target, key) => {\n assertCompatEnabled(\"GLOBAL_DELETE\", null);\n delete target[key];\n };\n Vue.observable = (target) => {\n assertCompatEnabled(\"GLOBAL_OBSERVABLE\", null);\n return reactive(target);\n };\n Vue.filter = (name, filter) => {\n if (filter) {\n singletonApp.filter(name, filter);\n return Vue;\n } else {\n return singletonApp.filter(name);\n }\n };\n const util = {\n warn: !!(process.env.NODE_ENV !== \"production\") ? warn$1 : NOOP,\n extend,\n mergeOptions: (parent, child, vm) => mergeOptions(\n parent,\n child,\n vm ? void 0 : internalOptionMergeStrats\n ),\n defineReactive\n };\n Object.defineProperty(Vue, \"util\", {\n get() {\n assertCompatEnabled(\"GLOBAL_PRIVATE_UTIL\", null);\n return util;\n }\n });\n Vue.configureCompat = configureCompat$1;\n return Vue;\n}\nfunction installAppCompatProperties(app, context, render) {\n installFilterMethod(app, context);\n installLegacyOptionMergeStrats(app.config);\n if (!singletonApp) {\n return;\n }\n installCompatMount(app, context, render);\n installLegacyAPIs(app);\n applySingletonAppMutations(app);\n if (!!(process.env.NODE_ENV !== \"production\"))\n installLegacyConfigWarnings(app.config);\n}\nfunction installFilterMethod(app, context) {\n context.filters = {};\n app.filter = (name, filter) => {\n assertCompatEnabled(\"FILTERS\", null);\n if (!filter) {\n return context.filters[name];\n }\n if (!!(process.env.NODE_ENV !== \"production\") && context.filters[name]) {\n warn$1(`Filter \"${name}\" has already been registered.`);\n }\n context.filters[name] = filter;\n return app;\n };\n}\nfunction installLegacyAPIs(app) {\n Object.defineProperties(app, {\n // so that app.use() can work with legacy plugins that extend prototypes\n prototype: {\n get() {\n !!(process.env.NODE_ENV !== \"production\") && warnDeprecation(\"GLOBAL_PROTOTYPE\", null);\n return app.config.globalProperties;\n }\n },\n nextTick: { value: nextTick },\n extend: { value: singletonCtor.extend },\n set: { value: singletonCtor.set },\n delete: { value: singletonCtor.delete },\n observable: { value: singletonCtor.observable },\n util: {\n get() {\n return singletonCtor.util;\n }\n }\n });\n}\nfunction applySingletonAppMutations(app) {\n app._context.mixins = [...singletonApp._context.mixins];\n [\"components\", \"directives\", \"filters\"].forEach((key) => {\n app._context[key] = Object.create(singletonApp._context[key]);\n });\n isCopyingConfig = true;\n for (const key in singletonApp.config) {\n if (key === \"isNativeTag\")\n continue;\n if (isRuntimeOnly() && (key === \"isCustomElement\" || key === \"compilerOptions\")) {\n continue;\n }\n const val = singletonApp.config[key];\n app.config[key] = isObject(val) ? Object.create(val) : val;\n if (key === \"ignoredElements\" && isCompatEnabled(\"CONFIG_IGNORED_ELEMENTS\", null) && !isRuntimeOnly() && isArray(val)) {\n app.config.compilerOptions.isCustomElement = (tag) => {\n return val.some((v) => isString(v) ? v === tag : v.test(tag));\n };\n }\n }\n isCopyingConfig = false;\n applySingletonPrototype(app, singletonCtor);\n}\nfunction applySingletonPrototype(app, Ctor) {\n const enabled = isCompatEnabled(\"GLOBAL_PROTOTYPE\", null);\n if (enabled) {\n app.config.globalProperties = Object.create(Ctor.prototype);\n }\n let hasPrototypeAugmentations = false;\n const descriptors = Object.getOwnPropertyDescriptors(Ctor.prototype);\n for (const key in descriptors) {\n if (key !== \"constructor\") {\n hasPrototypeAugmentations = true;\n if (enabled) {\n Object.defineProperty(\n app.config.globalProperties,\n key,\n descriptors[key]\n );\n }\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && hasPrototypeAugmentations) {\n warnDeprecation(\"GLOBAL_PROTOTYPE\", null);\n }\n}\nfunction installCompatMount(app, context, render) {\n let isMounted = false;\n app._createRoot = (options) => {\n const component = app._component;\n const vnode = createVNode(component, options.propsData || null);\n vnode.appContext = context;\n const hasNoRender = !isFunction(component) && !component.render && !component.template;\n const emptyRender = () => {\n };\n const instance = createComponentInstance(vnode, null, null);\n if (hasNoRender) {\n instance.render = emptyRender;\n }\n setupComponent(instance);\n vnode.component = instance;\n vnode.isCompatRoot = true;\n instance.ctx._compat_mount = (selectorOrEl) => {\n if (isMounted) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`Root instance is already mounted.`);\n return;\n }\n let container;\n if (typeof selectorOrEl === \"string\") {\n const result = document.querySelector(selectorOrEl);\n if (!result) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Failed to mount root instance: selector \"${selectorOrEl}\" returned null.`\n );\n return;\n }\n container = result;\n } else {\n container = selectorOrEl || document.createElement(\"div\");\n }\n let namespace;\n if (container instanceof SVGElement)\n namespace = \"svg\";\n else if (typeof MathMLElement === \"function\" && container instanceof MathMLElement)\n namespace = \"mathml\";\n if (!!(process.env.NODE_ENV !== \"production\")) {\n context.reload = () => {\n const cloned = cloneVNode(vnode);\n cloned.component = null;\n render(cloned, container, namespace);\n };\n }\n if (hasNoRender && instance.render === emptyRender) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (let i = 0; i < container.attributes.length; i++) {\n const attr = container.attributes[i];\n if (attr.name !== \"v-cloak\" && /^(v-|:|@)/.test(attr.name)) {\n warnDeprecation(\"GLOBAL_MOUNT_CONTAINER\", null);\n break;\n }\n }\n }\n instance.render = null;\n component.template = container.innerHTML;\n finishComponentSetup(\n instance,\n false,\n true\n /* skip options */\n );\n }\n container.innerHTML = \"\";\n render(vnode, container, namespace);\n if (container instanceof Element) {\n container.removeAttribute(\"v-cloak\");\n container.setAttribute(\"data-v-app\", \"\");\n }\n isMounted = true;\n app._container = container;\n container.__vue_app__ = app;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsInitApp(app, version);\n }\n return instance.proxy;\n };\n instance.ctx._compat_destroy = () => {\n if (isMounted) {\n render(null, app._container);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsUnmountApp(app);\n }\n delete app._container.__vue_app__;\n } else {\n const { bum, scope, um } = instance;\n if (bum) {\n invokeArrayFns(bum);\n }\n if (isCompatEnabled(\"INSTANCE_EVENT_HOOKS\", instance)) {\n instance.emit(\"hook:beforeDestroy\");\n }\n if (scope) {\n scope.stop();\n }\n if (um) {\n invokeArrayFns(um);\n }\n if (isCompatEnabled(\"INSTANCE_EVENT_HOOKS\", instance)) {\n instance.emit(\"hook:destroyed\");\n }\n }\n };\n return instance.proxy;\n };\n}\nconst methodsToPatch = [\n \"push\",\n \"pop\",\n \"shift\",\n \"unshift\",\n \"splice\",\n \"sort\",\n \"reverse\"\n];\nconst patched = /* @__PURE__ */ new WeakSet();\nfunction defineReactive(obj, key, val) {\n if (isObject(val) && !isReactive(val) && !patched.has(val)) {\n const reactiveVal = reactive(val);\n if (isArray(val)) {\n methodsToPatch.forEach((m) => {\n val[m] = (...args) => {\n Array.prototype[m].call(reactiveVal, ...args);\n };\n });\n } else {\n Object.keys(val).forEach((key2) => {\n try {\n defineReactiveSimple(val, key2, val[key2]);\n } catch (e) {\n }\n });\n }\n }\n const i = obj.$;\n if (i && obj === i.proxy) {\n defineReactiveSimple(i.ctx, key, val);\n i.accessCache = /* @__PURE__ */ Object.create(null);\n } else if (isReactive(obj)) {\n obj[key] = val;\n } else {\n defineReactiveSimple(obj, key, val);\n }\n}\nfunction defineReactiveSimple(obj, key, val) {\n val = isObject(val) ? reactive(val) : val;\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get() {\n track(obj, \"get\", key);\n return val;\n },\n set(newVal) {\n val = isObject(newVal) ? reactive(newVal) : newVal;\n trigger(obj, \"set\", key, newVal);\n }\n });\n}\n\nfunction createAppContext() {\n return {\n app: null,\n config: {\n isNativeTag: NO,\n performance: false,\n globalProperties: {},\n optionMergeStrategies: {},\n errorHandler: void 0,\n warnHandler: void 0,\n compilerOptions: {}\n },\n mixins: [],\n components: {},\n directives: {},\n provides: /* @__PURE__ */ Object.create(null),\n optionsCache: /* @__PURE__ */ new WeakMap(),\n propsCache: /* @__PURE__ */ new WeakMap(),\n emitsCache: /* @__PURE__ */ new WeakMap()\n };\n}\nlet uid$1 = 0;\nfunction createAppAPI(render, hydrate) {\n return function createApp(rootComponent, rootProps = null) {\n if (!isFunction(rootComponent)) {\n rootComponent = extend({}, rootComponent);\n }\n if (rootProps != null && !isObject(rootProps)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`root props passed to app.mount() must be an object.`);\n rootProps = null;\n }\n const context = createAppContext();\n const installedPlugins = /* @__PURE__ */ new WeakSet();\n let isMounted = false;\n const app = context.app = {\n _uid: uid$1++,\n _component: rootComponent,\n _props: rootProps,\n _container: null,\n _context: context,\n _instance: null,\n version,\n get config() {\n return context.config;\n },\n set config(v) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `app.config cannot be replaced. Modify individual options instead.`\n );\n }\n },\n use(plugin, ...options) {\n if (installedPlugins.has(plugin)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`Plugin has already been applied to target app.`);\n } else if (plugin && isFunction(plugin.install)) {\n installedPlugins.add(plugin);\n plugin.install(app, ...options);\n } else if (isFunction(plugin)) {\n installedPlugins.add(plugin);\n plugin(app, ...options);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `A plugin must either be a function or an object with an \"install\" function.`\n );\n }\n return app;\n },\n mixin(mixin) {\n if (__VUE_OPTIONS_API__) {\n if (!context.mixins.includes(mixin)) {\n context.mixins.push(mixin);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Mixin has already been applied to target app\" + (mixin.name ? `: ${mixin.name}` : \"\")\n );\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Mixins are only available in builds supporting Options API\");\n }\n return app;\n },\n component(name, component) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateComponentName(name, context.config);\n }\n if (!component) {\n return context.components[name];\n }\n if (!!(process.env.NODE_ENV !== \"production\") && context.components[name]) {\n warn$1(`Component \"${name}\" has already been registered in target app.`);\n }\n context.components[name] = component;\n return app;\n },\n directive(name, directive) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateDirectiveName(name);\n }\n if (!directive) {\n return context.directives[name];\n }\n if (!!(process.env.NODE_ENV !== \"production\") && context.directives[name]) {\n warn$1(`Directive \"${name}\" has already been registered in target app.`);\n }\n context.directives[name] = directive;\n return app;\n },\n mount(rootContainer, isHydrate, namespace) {\n if (!isMounted) {\n if (!!(process.env.NODE_ENV !== \"production\") && rootContainer.__vue_app__) {\n warn$1(\n `There is already an app instance mounted on the host container.\n If you want to mount another app on the same host container, you need to unmount the previous app by calling \\`app.unmount()\\` first.`\n );\n }\n const vnode = createVNode(rootComponent, rootProps);\n vnode.appContext = context;\n if (namespace === true) {\n namespace = \"svg\";\n } else if (namespace === false) {\n namespace = void 0;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n context.reload = () => {\n render(\n cloneVNode(vnode),\n rootContainer,\n namespace\n );\n };\n }\n if (isHydrate && hydrate) {\n hydrate(vnode, rootContainer);\n } else {\n render(vnode, rootContainer, namespace);\n }\n isMounted = true;\n app._container = rootContainer;\n rootContainer.__vue_app__ = app;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n app._instance = vnode.component;\n devtoolsInitApp(app, version);\n }\n return getExposeProxy(vnode.component) || vnode.component.proxy;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `App has already been mounted.\nIf you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. \\`const createMyApp = () => createApp(App)\\``\n );\n }\n },\n unmount() {\n if (isMounted) {\n render(null, app._container);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n app._instance = null;\n devtoolsUnmountApp(app);\n }\n delete app._container.__vue_app__;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Cannot unmount an app that is not mounted.`);\n }\n },\n provide(key, value) {\n if (!!(process.env.NODE_ENV !== \"production\") && key in context.provides) {\n warn$1(\n `App already provides property with key \"${String(key)}\". It will be overwritten with the new value.`\n );\n }\n context.provides[key] = value;\n return app;\n },\n runWithContext(fn) {\n currentApp = app;\n try {\n return fn();\n } finally {\n currentApp = null;\n }\n }\n };\n {\n installAppCompatProperties(app, context, render);\n }\n return app;\n };\n}\nlet currentApp = null;\n\nfunction provide(key, value) {\n if (!currentInstance) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`provide() can only be used inside setup().`);\n }\n } else {\n let provides = currentInstance.provides;\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n provides[key] = value;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n const instance = currentInstance || currentRenderingInstance;\n if (instance || currentApp) {\n const provides = instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : currentApp._context.provides;\n if (provides && key in provides) {\n return provides[key];\n } else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`injection \"${String(key)}\" not found.`);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`inject() can only be used inside setup() or functional components.`);\n }\n}\nfunction hasInjectionContext() {\n return !!(currentInstance || currentRenderingInstance || currentApp);\n}\n\nfunction createPropsDefaultThis(instance, rawProps, propKey) {\n return new Proxy(\n {},\n {\n get(_, key) {\n !!(process.env.NODE_ENV !== \"production\") && warnDeprecation(\"PROPS_DEFAULT_THIS\", null, propKey);\n if (key === \"$options\") {\n return resolveMergedOptions(instance);\n }\n if (key in rawProps) {\n return rawProps[key];\n }\n const injections = instance.type.inject;\n if (injections) {\n if (isArray(injections)) {\n if (injections.includes(key)) {\n return inject(key);\n }\n } else if (key in injections) {\n return inject(key);\n }\n }\n }\n }\n );\n}\n\nfunction shouldSkipAttr(key, instance) {\n if (key === \"is\") {\n return true;\n }\n if ((key === \"class\" || key === \"style\") && isCompatEnabled(\"INSTANCE_ATTRS_CLASS_STYLE\", instance)) {\n return true;\n }\n if (isOn(key) && isCompatEnabled(\"INSTANCE_LISTENERS\", instance)) {\n return true;\n }\n if (key.startsWith(\"routerView\") || key === \"registerRouteInstance\") {\n return true;\n }\n return false;\n}\n\nfunction initProps(instance, rawProps, isStateful, isSSR = false) {\n const props = {};\n const attrs = {};\n def(attrs, InternalObjectKey, 1);\n instance.propsDefaults = /* @__PURE__ */ Object.create(null);\n setFullProps(instance, rawProps, props, attrs);\n for (const key in instance.propsOptions[0]) {\n if (!(key in props)) {\n props[key] = void 0;\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateProps(rawProps || {}, props, instance);\n }\n if (isStateful) {\n instance.props = isSSR ? props : shallowReactive(props);\n } else {\n if (!instance.type.props) {\n instance.props = attrs;\n } else {\n instance.props = props;\n }\n }\n instance.attrs = attrs;\n}\nfunction isInHmrContext(instance) {\n while (instance) {\n if (instance.type.__hmrId)\n return true;\n instance = instance.parent;\n }\n}\nfunction updateProps(instance, rawProps, rawPrevProps, optimized) {\n const {\n props,\n attrs,\n vnode: { patchFlag }\n } = instance;\n const rawCurrentProps = toRaw(props);\n const [options] = instance.propsOptions;\n let hasAttrsChanged = false;\n if (\n // always force full diff in dev\n // - #1942 if hmr is enabled with sfc component\n // - vite#872 non-sfc component used by sfc component\n !(!!(process.env.NODE_ENV !== \"production\") && isInHmrContext(instance)) && (optimized || patchFlag > 0) && !(patchFlag & 16)\n ) {\n if (patchFlag & 8) {\n const propsToUpdate = instance.vnode.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n let key = propsToUpdate[i];\n if (isEmitListener(instance.emitsOptions, key)) {\n continue;\n }\n const value = rawProps[key];\n if (options) {\n if (hasOwn(attrs, key)) {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n } else {\n const camelizedKey = camelize(key);\n props[camelizedKey] = resolvePropValue(\n options,\n rawCurrentProps,\n camelizedKey,\n value,\n instance,\n false\n );\n }\n } else {\n {\n if (isOn(key) && key.endsWith(\"Native\")) {\n key = key.slice(0, -6);\n } else if (shouldSkipAttr(key, instance)) {\n continue;\n }\n }\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n } else {\n if (setFullProps(instance, rawProps, props, attrs)) {\n hasAttrsChanged = true;\n }\n let kebabKey;\n for (const key in rawCurrentProps) {\n if (!rawProps || // for camelCase\n !hasOwn(rawProps, key) && // it's possible the original props was passed in as kebab-case\n // and converted to camelCase (#955)\n ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) {\n if (options) {\n if (rawPrevProps && // for camelCase\n (rawPrevProps[key] !== void 0 || // for kebab-case\n rawPrevProps[kebabKey] !== void 0)) {\n props[key] = resolvePropValue(\n options,\n rawCurrentProps,\n key,\n void 0,\n instance,\n true\n );\n }\n } else {\n delete props[key];\n }\n }\n }\n if (attrs !== rawCurrentProps) {\n for (const key in attrs) {\n if (!rawProps || !hasOwn(rawProps, key) && !hasOwn(rawProps, key + \"Native\")) {\n delete attrs[key];\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (hasAttrsChanged) {\n trigger(instance, \"set\", \"$attrs\");\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateProps(rawProps || {}, props, instance);\n }\n}\nfunction setFullProps(instance, rawProps, props, attrs) {\n const [options, needCastKeys] = instance.propsOptions;\n let hasAttrsChanged = false;\n let rawCastValues;\n if (rawProps) {\n for (let key in rawProps) {\n if (isReservedProp(key)) {\n continue;\n }\n {\n if (key.startsWith(\"onHook:\")) {\n softAssertCompatEnabled(\n \"INSTANCE_EVENT_HOOKS\",\n instance,\n key.slice(2).toLowerCase()\n );\n }\n if (key === \"inline-template\") {\n continue;\n }\n }\n const value = rawProps[key];\n let camelKey;\n if (options && hasOwn(options, camelKey = camelize(key))) {\n if (!needCastKeys || !needCastKeys.includes(camelKey)) {\n props[camelKey] = value;\n } else {\n (rawCastValues || (rawCastValues = {}))[camelKey] = value;\n }\n } else if (!isEmitListener(instance.emitsOptions, key)) {\n {\n if (isOn(key) && key.endsWith(\"Native\")) {\n key = key.slice(0, -6);\n } else if (shouldSkipAttr(key, instance)) {\n continue;\n }\n }\n if (!(key in attrs) || value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (needCastKeys) {\n const rawCurrentProps = toRaw(props);\n const castValues = rawCastValues || EMPTY_OBJ;\n for (let i = 0; i < needCastKeys.length; i++) {\n const key = needCastKeys[i];\n props[key] = resolvePropValue(\n options,\n rawCurrentProps,\n key,\n castValues[key],\n instance,\n !hasOwn(castValues, key)\n );\n }\n }\n return hasAttrsChanged;\n}\nfunction resolvePropValue(options, props, key, value, instance, isAbsent) {\n const opt = options[key];\n if (opt != null) {\n const hasDefault = hasOwn(opt, \"default\");\n if (hasDefault && value === void 0) {\n const defaultValue = opt.default;\n if (opt.type !== Function && !opt.skipFactory && isFunction(defaultValue)) {\n const { propsDefaults } = instance;\n if (key in propsDefaults) {\n value = propsDefaults[key];\n } else {\n const reset = setCurrentInstance(instance);\n value = propsDefaults[key] = defaultValue.call(\n isCompatEnabled(\"PROPS_DEFAULT_THIS\", instance) ? createPropsDefaultThis(instance, props, key) : null,\n props\n );\n reset();\n }\n } else {\n value = defaultValue;\n }\n }\n if (opt[0 /* shouldCast */]) {\n if (isAbsent && !hasDefault) {\n value = false;\n } else if (opt[1 /* shouldCastTrue */] && (value === \"\" || value === hyphenate(key))) {\n value = true;\n }\n }\n }\n return value;\n}\nfunction normalizePropsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.propsCache;\n const cached = cache.get(comp);\n if (cached) {\n return cached;\n }\n const raw = comp.props;\n const normalized = {};\n const needCastKeys = [];\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendProps = (raw2) => {\n if (isFunction(raw2)) {\n raw2 = raw2.options;\n }\n hasExtends = true;\n const [props, keys] = normalizePropsOptions(raw2, appContext, true);\n extend(normalized, props);\n if (keys)\n needCastKeys.push(...keys);\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendProps);\n }\n if (comp.extends) {\n extendProps(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendProps);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, EMPTY_ARR);\n }\n return EMPTY_ARR;\n }\n if (isArray(raw)) {\n for (let i = 0; i < raw.length; i++) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isString(raw[i])) {\n warn$1(`props must be strings when using array syntax.`, raw[i]);\n }\n const normalizedKey = camelize(raw[i]);\n if (validatePropName(normalizedKey)) {\n normalized[normalizedKey] = EMPTY_OBJ;\n }\n }\n } else if (raw) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(raw)) {\n warn$1(`invalid props options`, raw);\n }\n for (const key in raw) {\n const normalizedKey = camelize(key);\n if (validatePropName(normalizedKey)) {\n const opt = raw[key];\n const prop = normalized[normalizedKey] = isArray(opt) || isFunction(opt) ? { type: opt } : extend({}, opt);\n if (prop) {\n const booleanIndex = getTypeIndex(Boolean, prop.type);\n const stringIndex = getTypeIndex(String, prop.type);\n prop[0 /* shouldCast */] = booleanIndex > -1;\n prop[1 /* shouldCastTrue */] = stringIndex < 0 || booleanIndex < stringIndex;\n if (booleanIndex > -1 || hasOwn(prop, \"default\")) {\n needCastKeys.push(normalizedKey);\n }\n }\n }\n }\n }\n const res = [normalized, needCastKeys];\n if (isObject(comp)) {\n cache.set(comp, res);\n }\n return res;\n}\nfunction validatePropName(key) {\n if (key[0] !== \"$\") {\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid prop name: \"${key}\" is a reserved property.`);\n }\n return false;\n}\nfunction getType(ctor) {\n const match = ctor && ctor.toString().match(/^\\s*(function|class) (\\w+)/);\n return match ? match[2] : ctor === null ? \"null\" : \"\";\n}\nfunction isSameType(a, b) {\n return getType(a) === getType(b);\n}\nfunction getTypeIndex(type, expectedTypes) {\n if (isArray(expectedTypes)) {\n return expectedTypes.findIndex((t) => isSameType(t, type));\n } else if (isFunction(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1;\n }\n return -1;\n}\nfunction validateProps(rawProps, props, instance) {\n const resolvedValues = toRaw(props);\n const options = instance.propsOptions[0];\n for (const key in options) {\n let opt = options[key];\n if (opt == null)\n continue;\n validateProp(\n key,\n resolvedValues[key],\n opt,\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(resolvedValues) : resolvedValues,\n !hasOwn(rawProps, key) && !hasOwn(rawProps, hyphenate(key))\n );\n }\n}\nfunction validateProp(name, value, prop, props, isAbsent) {\n const { type, required, validator, skipCheck } = prop;\n if (required && isAbsent) {\n warn$1('Missing required prop: \"' + name + '\"');\n return;\n }\n if (value == null && !required) {\n return;\n }\n if (type != null && type !== true && !skipCheck) {\n let isValid = false;\n const types = isArray(type) ? type : [type];\n const expectedTypes = [];\n for (let i = 0; i < types.length && !isValid; i++) {\n const { valid, expectedType } = assertType(value, types[i]);\n expectedTypes.push(expectedType || \"\");\n isValid = valid;\n }\n if (!isValid) {\n warn$1(getInvalidTypeMessage(name, value, expectedTypes));\n return;\n }\n }\n if (validator && !validator(value, props)) {\n warn$1('Invalid prop: custom validator check failed for prop \"' + name + '\".');\n }\n}\nconst isSimpleType = /* @__PURE__ */ makeMap(\n \"String,Number,Boolean,Function,Symbol,BigInt\"\n);\nfunction assertType(value, type) {\n let valid;\n const expectedType = getType(type);\n if (isSimpleType(expectedType)) {\n const t = typeof value;\n valid = t === expectedType.toLowerCase();\n if (!valid && t === \"object\") {\n valid = value instanceof type;\n }\n } else if (expectedType === \"Object\") {\n valid = isObject(value);\n } else if (expectedType === \"Array\") {\n valid = isArray(value);\n } else if (expectedType === \"null\") {\n valid = value === null;\n } else {\n valid = value instanceof type;\n }\n return {\n valid,\n expectedType\n };\n}\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\n if (expectedTypes.length === 0) {\n return `Prop type [] for prop \"${name}\" won't match anything. Did you mean to use type Array instead?`;\n }\n let message = `Invalid prop: type check failed for prop \"${name}\". Expected ${expectedTypes.map(capitalize).join(\" | \")}`;\n const expectedType = expectedTypes[0];\n const receivedType = toRawType(value);\n const expectedValue = styleValue(value, expectedType);\n const receivedValue = styleValue(value, receivedType);\n if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) {\n message += ` with value ${expectedValue}`;\n }\n message += `, got ${receivedType} `;\n if (isExplicable(receivedType)) {\n message += `with value ${receivedValue}.`;\n }\n return message;\n}\nfunction styleValue(value, type) {\n if (type === \"String\") {\n return `\"${value}\"`;\n } else if (type === \"Number\") {\n return `${Number(value)}`;\n } else {\n return `${value}`;\n }\n}\nfunction isExplicable(type) {\n const explicitTypes = [\"string\", \"number\", \"boolean\"];\n return explicitTypes.some((elem) => type.toLowerCase() === elem);\n}\nfunction isBoolean(...args) {\n return args.some((elem) => elem.toLowerCase() === \"boolean\");\n}\n\nconst isInternalKey = (key) => key[0] === \"_\" || key === \"$stable\";\nconst normalizeSlotValue = (value) => isArray(value) ? value.map(normalizeVNode) : [normalizeVNode(value)];\nconst normalizeSlot = (key, rawSlot, ctx) => {\n if (rawSlot._n) {\n return rawSlot;\n }\n const normalized = withCtx((...args) => {\n if (!!(process.env.NODE_ENV !== \"production\") && currentInstance && (!ctx || ctx.root === currentInstance.root)) {\n warn$1(\n `Slot \"${key}\" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.`\n );\n }\n return normalizeSlotValue(rawSlot(...args));\n }, ctx);\n normalized._c = false;\n return normalized;\n};\nconst normalizeObjectSlots = (rawSlots, slots, instance) => {\n const ctx = rawSlots._ctx;\n for (const key in rawSlots) {\n if (isInternalKey(key))\n continue;\n const value = rawSlots[key];\n if (isFunction(value)) {\n slots[key] = normalizeSlot(key, value, ctx);\n } else if (value != null) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isCompatEnabled(\"RENDER_FUNCTION\", instance)) {\n warn$1(\n `Non-function value encountered for slot \"${key}\". Prefer function slots for better performance.`\n );\n }\n const normalized = normalizeSlotValue(value);\n slots[key] = () => normalized;\n }\n }\n};\nconst normalizeVNodeSlots = (instance, children) => {\n if (!!(process.env.NODE_ENV !== \"production\") && !isKeepAlive(instance.vnode) && !isCompatEnabled(\"RENDER_FUNCTION\", instance)) {\n warn$1(\n `Non-function value encountered for default slot. Prefer function slots for better performance.`\n );\n }\n const normalized = normalizeSlotValue(children);\n instance.slots.default = () => normalized;\n};\nconst initSlots = (instance, children) => {\n if (instance.vnode.shapeFlag & 32) {\n const type = children._;\n if (type) {\n instance.slots = toRaw(children);\n def(children, \"_\", type);\n } else {\n normalizeObjectSlots(\n children,\n instance.slots = {},\n instance\n );\n }\n } else {\n instance.slots = {};\n if (children) {\n normalizeVNodeSlots(instance, children);\n }\n }\n def(instance.slots, InternalObjectKey, 1);\n};\nconst updateSlots = (instance, children, optimized) => {\n const { vnode, slots } = instance;\n let needDeletionCheck = true;\n let deletionComparisonTarget = EMPTY_OBJ;\n if (vnode.shapeFlag & 32) {\n const type = children._;\n if (type) {\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n extend(slots, children);\n trigger(instance, \"set\", \"$slots\");\n } else if (optimized && type === 1) {\n needDeletionCheck = false;\n } else {\n extend(slots, children);\n if (!optimized && type === 1) {\n delete slots._;\n }\n }\n } else {\n needDeletionCheck = !children.$stable;\n normalizeObjectSlots(children, slots, instance);\n }\n deletionComparisonTarget = children;\n } else if (children) {\n normalizeVNodeSlots(instance, children);\n deletionComparisonTarget = { default: 1 };\n }\n if (needDeletionCheck) {\n for (const key in slots) {\n if (!isInternalKey(key) && deletionComparisonTarget[key] == null) {\n delete slots[key];\n }\n }\n }\n};\n\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n if (isArray(rawRef)) {\n rawRef.forEach(\n (r, i) => setRef(\n r,\n oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef),\n parentSuspense,\n vnode,\n isUnmount\n )\n );\n return;\n }\n if (isAsyncWrapper(vnode) && !isUnmount) {\n return;\n }\n const refValue = vnode.shapeFlag & 4 ? getExposeProxy(vnode.component) || vnode.component.proxy : vnode.el;\n const value = isUnmount ? null : refValue;\n const { i: owner, r: ref } = rawRef;\n if (!!(process.env.NODE_ENV !== \"production\") && !owner) {\n warn$1(\n `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`\n );\n return;\n }\n const oldRef = oldRawRef && oldRawRef.r;\n const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;\n const setupState = owner.setupState;\n if (oldRef != null && oldRef !== ref) {\n if (isString(oldRef)) {\n refs[oldRef] = null;\n if (hasOwn(setupState, oldRef)) {\n setupState[oldRef] = null;\n }\n } else if (isRef(oldRef)) {\n oldRef.value = null;\n }\n }\n if (isFunction(ref)) {\n callWithErrorHandling(ref, owner, 12, [value, refs]);\n } else {\n const _isString = isString(ref);\n const _isRef = isRef(ref);\n const isVFor = rawRef.f;\n if (_isString || _isRef) {\n const doSet = () => {\n if (isVFor) {\n const existing = _isString ? hasOwn(setupState, ref) ? setupState[ref] : refs[ref] : ref.value;\n if (isUnmount) {\n isArray(existing) && remove(existing, refValue);\n } else {\n if (!isArray(existing)) {\n if (_isString) {\n refs[ref] = [refValue];\n if (hasOwn(setupState, ref)) {\n setupState[ref] = refs[ref];\n }\n } else {\n ref.value = [refValue];\n if (rawRef.k)\n refs[rawRef.k] = ref.value;\n }\n } else if (!existing.includes(refValue)) {\n existing.push(refValue);\n }\n }\n } else if (_isString) {\n refs[ref] = value;\n if (hasOwn(setupState, ref)) {\n setupState[ref] = value;\n }\n } else if (_isRef) {\n ref.value = value;\n if (rawRef.k)\n refs[rawRef.k] = value;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n };\n if (isUnmount || isVFor) {\n doSet();\n } else {\n doSet.id = -1;\n queuePostRenderEffect(doSet, parentSuspense);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n }\n}\n\nlet hasMismatch = false;\nconst isSVGContainer = (container) => container.namespaceURI.includes(\"svg\") && container.tagName !== \"foreignObject\";\nconst isMathMLContainer = (container) => container.namespaceURI.includes(\"MathML\");\nconst getContainerType = (container) => {\n if (isSVGContainer(container))\n return \"svg\";\n if (isMathMLContainer(container))\n return \"mathml\";\n return void 0;\n};\nconst isComment = (node) => node.nodeType === 8 /* COMMENT */;\nfunction createHydrationFunctions(rendererInternals) {\n const {\n mt: mountComponent,\n p: patch,\n o: {\n patchProp,\n createText,\n nextSibling,\n parentNode,\n remove,\n insert,\n createComment\n }\n } = rendererInternals;\n const hydrate = (vnode, container) => {\n if (!container.hasChildNodes()) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Attempting to hydrate existing markup but container is empty. Performing full mount instead.`\n );\n patch(null, vnode, container);\n flushPostFlushCbs();\n container._vnode = vnode;\n return;\n }\n hasMismatch = false;\n hydrateNode(container.firstChild, vnode, null, null, null);\n flushPostFlushCbs();\n container._vnode = vnode;\n if (hasMismatch && true) {\n console.error(`Hydration completed but contains mismatches.`);\n }\n };\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\n const isFragmentStart = isComment(node) && node.data === \"[\";\n const onMismatch = () => handleMismatch(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n isFragmentStart\n );\n const { type, ref, shapeFlag, patchFlag } = vnode;\n let domType = node.nodeType;\n vnode.el = node;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n if (!(\"__vnode\" in node)) {\n Object.defineProperty(node, \"__vnode\", {\n value: vnode,\n enumerable: false\n });\n }\n if (!(\"__vueParentComponent\" in node)) {\n Object.defineProperty(node, \"__vueParentComponent\", {\n value: parentComponent,\n enumerable: false\n });\n }\n }\n if (patchFlag === -2) {\n optimized = false;\n vnode.dynamicChildren = null;\n }\n let nextNode = null;\n switch (type) {\n case Text:\n if (domType !== 3 /* TEXT */) {\n if (vnode.children === \"\") {\n insert(vnode.el = createText(\"\"), parentNode(node), node);\n nextNode = node;\n } else {\n nextNode = onMismatch();\n }\n } else {\n if (node.data !== vnode.children) {\n hasMismatch = true;\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text mismatch in`,\n node.parentNode,\n `\n - rendered on server: ${JSON.stringify(\n node.data\n )}\n - expected on client: ${JSON.stringify(vnode.children)}`\n );\n node.data = vnode.children;\n }\n nextNode = nextSibling(node);\n }\n break;\n case Comment:\n if (isTemplateNode(node)) {\n nextNode = nextSibling(node);\n replaceNode(\n vnode.el = node.content.firstChild,\n node,\n parentComponent\n );\n } else if (domType !== 8 /* COMMENT */ || isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = nextSibling(node);\n }\n break;\n case Static:\n if (isFragmentStart) {\n node = nextSibling(node);\n domType = node.nodeType;\n }\n if (domType === 1 /* ELEMENT */ || domType === 3 /* TEXT */) {\n nextNode = node;\n const needToAdoptContent = !vnode.children.length;\n for (let i = 0; i < vnode.staticCount; i++) {\n if (needToAdoptContent)\n vnode.children += nextNode.nodeType === 1 /* ELEMENT */ ? nextNode.outerHTML : nextNode.data;\n if (i === vnode.staticCount - 1) {\n vnode.anchor = nextNode;\n }\n nextNode = nextSibling(nextNode);\n }\n return isFragmentStart ? nextSibling(nextNode) : nextNode;\n } else {\n onMismatch();\n }\n break;\n case Fragment:\n if (!isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateFragment(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n break;\n default:\n if (shapeFlag & 1) {\n if ((domType !== 1 /* ELEMENT */ || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateElement(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n } else if (shapeFlag & 6) {\n vnode.slotScopeIds = slotScopeIds;\n const container = parentNode(node);\n if (isFragmentStart) {\n nextNode = locateClosingAnchor(node);\n } else if (isComment(node) && node.data === \"teleport start\") {\n nextNode = locateClosingAnchor(node, node.data, \"teleport end\");\n } else {\n nextNode = nextSibling(node);\n }\n mountComponent(\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n optimized\n );\n if (isAsyncWrapper(vnode)) {\n let subTree;\n if (isFragmentStart) {\n subTree = createVNode(Fragment);\n subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;\n } else {\n subTree = node.nodeType === 3 ? createTextVNode(\"\") : createVNode(\"div\");\n }\n subTree.el = node;\n vnode.component.subTree = subTree;\n }\n } else if (shapeFlag & 64) {\n if (domType !== 8 /* COMMENT */) {\n nextNode = onMismatch();\n } else {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateChildren\n );\n }\n } else if (shapeFlag & 128) {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n getContainerType(parentNode(node)),\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateNode\n );\n } else if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) {\n warn$1(\"Invalid HostVNode type:\", type, `(${typeof type})`);\n }\n }\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode);\n }\n return nextNode;\n };\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode;\n const forcePatch = type === \"input\" || type === \"option\";\n if (!!(process.env.NODE_ENV !== \"production\") || forcePatch || patchFlag !== -1) {\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n }\n let needCallTransitionHooks = false;\n if (isTemplateNode(el)) {\n needCallTransitionHooks = needTransition(parentSuspense, transition) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;\n const content = el.content.firstChild;\n if (needCallTransitionHooks) {\n transition.beforeEnter(content);\n }\n replaceNode(content, el, parentComponent);\n vnode.el = el = content;\n }\n if (shapeFlag & 16 && // skip if element has innerHTML / textContent\n !(props && (props.innerHTML || props.textContent))) {\n let next = hydrateChildren(\n el.firstChild,\n vnode,\n el,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n let hasWarned = false;\n while (next) {\n hasMismatch = true;\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {\n warn$1(\n `Hydration children mismatch on`,\n el,\n `\nServer rendered element contains more child nodes than client vdom.`\n );\n hasWarned = true;\n }\n const cur = next;\n next = next.nextSibling;\n remove(cur);\n }\n } else if (shapeFlag & 8) {\n if (el.textContent !== vnode.children) {\n hasMismatch = true;\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text content mismatch on`,\n el,\n `\n - rendered on server: ${el.textContent}\n - expected on client: ${vnode.children}`\n );\n el.textContent = vnode.children;\n }\n }\n if (props) {\n if (!!(process.env.NODE_ENV !== \"production\") || forcePatch || !optimized || patchFlag & (16 | 32)) {\n for (const key in props) {\n if (!!(process.env.NODE_ENV !== \"production\") && propHasMismatch(el, key, props[key], vnode)) {\n hasMismatch = true;\n }\n if (forcePatch && (key.endsWith(\"value\") || key === \"indeterminate\") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers\n key[0] === \".\") {\n patchProp(\n el,\n key,\n null,\n props[key],\n void 0,\n void 0,\n parentComponent\n );\n }\n }\n } else if (props.onClick) {\n patchProp(\n el,\n \"onClick\",\n null,\n props.onClick,\n void 0,\n void 0,\n parentComponent\n );\n }\n }\n let vnodeHooks;\n if (vnodeHooks = props && props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) {\n queueEffectWithSuspense(() => {\n vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n }\n return el.nextSibling;\n };\n const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!parentVNode.dynamicChildren;\n const children = parentVNode.children;\n const l = children.length;\n let hasWarned = false;\n for (let i = 0; i < l; i++) {\n const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);\n if (node) {\n node = hydrateNode(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n } else if (vnode.type === Text && !vnode.children) {\n continue;\n } else {\n hasMismatch = true;\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {\n warn$1(\n `Hydration children mismatch on`,\n container,\n `\nServer rendered element contains fewer child nodes than client vdom.`\n );\n hasWarned = true;\n }\n patch(\n null,\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n }\n }\n return node;\n };\n const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n const { slotScopeIds: fragmentSlotScopeIds } = vnode;\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n const container = parentNode(node);\n const next = hydrateChildren(\n nextSibling(node),\n vnode,\n container,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n if (next && isComment(next) && next.data === \"]\") {\n return nextSibling(vnode.anchor = next);\n } else {\n hasMismatch = true;\n insert(vnode.anchor = createComment(`]`), container, next);\n return next;\n }\n };\n const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {\n hasMismatch = true;\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration node mismatch:\n- rendered on server:`,\n node,\n node.nodeType === 3 /* TEXT */ ? `(text)` : isComment(node) && node.data === \"[\" ? `(start of fragment)` : ``,\n `\n- expected on client:`,\n vnode.type\n );\n vnode.el = null;\n if (isFragment) {\n const end = locateClosingAnchor(node);\n while (true) {\n const next2 = nextSibling(node);\n if (next2 && next2 !== end) {\n remove(next2);\n } else {\n break;\n }\n }\n }\n const next = nextSibling(node);\n const container = parentNode(node);\n remove(node);\n patch(\n null,\n vnode,\n container,\n next,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n return next;\n };\n const locateClosingAnchor = (node, open = \"[\", close = \"]\") => {\n let match = 0;\n while (node) {\n node = nextSibling(node);\n if (node && isComment(node)) {\n if (node.data === open)\n match++;\n if (node.data === close) {\n if (match === 0) {\n return nextSibling(node);\n } else {\n match--;\n }\n }\n }\n }\n return node;\n };\n const replaceNode = (newNode, oldNode, parentComponent) => {\n const parentNode2 = oldNode.parentNode;\n if (parentNode2) {\n parentNode2.replaceChild(newNode, oldNode);\n }\n let parent = parentComponent;\n while (parent) {\n if (parent.vnode.el === oldNode) {\n parent.vnode.el = parent.subTree.el = newNode;\n }\n parent = parent.parent;\n }\n };\n const isTemplateNode = (node) => {\n return node.nodeType === 1 /* ELEMENT */ && node.tagName.toLowerCase() === \"template\";\n };\n return [hydrate, hydrateNode];\n}\nfunction propHasMismatch(el, key, clientValue, vnode) {\n let mismatchType;\n let mismatchKey;\n let actual;\n let expected;\n if (key === \"class\") {\n actual = el.getAttribute(\"class\");\n expected = normalizeClass(clientValue);\n if (!isSetEqual(toClassSet(actual || \"\"), toClassSet(expected))) {\n mismatchType = mismatchKey = `class`;\n }\n } else if (key === \"style\") {\n actual = el.getAttribute(\"style\");\n expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue));\n const actualMap = toStyleMap(actual);\n const expectedMap = toStyleMap(expected);\n if (vnode.dirs) {\n for (const { dir, value } of vnode.dirs) {\n if (dir.name === \"show\" && !value) {\n expectedMap.set(\"display\", \"none\");\n }\n }\n }\n if (!isMapEqual(actualMap, expectedMap)) {\n mismatchType = mismatchKey = \"style\";\n }\n } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {\n if (isBooleanAttr(key)) {\n actual = el.hasAttribute(key);\n expected = includeBooleanAttr(clientValue);\n } else if (clientValue == null) {\n actual = el.hasAttribute(key);\n expected = false;\n } else {\n if (el.hasAttribute(key)) {\n actual = el.getAttribute(key);\n } else if (key === \"value\" && el.tagName === \"TEXTAREA\") {\n actual = el.value;\n } else {\n actual = false;\n }\n expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false;\n }\n if (actual !== expected) {\n mismatchType = `attribute`;\n mismatchKey = key;\n }\n }\n if (mismatchType) {\n const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}=\"${v}\"`;\n const preSegment = `Hydration ${mismatchType} mismatch on`;\n const postSegment = `\n - rendered on server: ${format(actual)}\n - expected on client: ${format(expected)}\n Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.\n You should fix the source of the mismatch.`;\n {\n warn$1(preSegment, el, postSegment);\n }\n return true;\n }\n return false;\n}\nfunction toClassSet(str) {\n return new Set(str.trim().split(/\\s+/));\n}\nfunction isSetEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const s of a) {\n if (!b.has(s)) {\n return false;\n }\n }\n return true;\n}\nfunction toStyleMap(str) {\n const styleMap = /* @__PURE__ */ new Map();\n for (const item of str.split(\";\")) {\n let [key, value] = item.split(\":\");\n key = key == null ? void 0 : key.trim();\n value = value == null ? void 0 : value.trim();\n if (key && value) {\n styleMap.set(key, value);\n }\n }\n return styleMap;\n}\nfunction isMapEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const [key, value] of a) {\n if (value !== b.get(key)) {\n return false;\n }\n }\n return true;\n}\n\nlet supported;\nlet perf;\nfunction startMeasure(instance, type) {\n if (instance.appContext.config.performance && isSupported()) {\n perf.mark(`vue-${type}-${instance.uid}`);\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now());\n }\n}\nfunction endMeasure(instance, type) {\n if (instance.appContext.config.performance && isSupported()) {\n const startTag = `vue-${type}-${instance.uid}`;\n const endTag = startTag + `:end`;\n perf.mark(endTag);\n perf.measure(\n `<${formatComponentName(instance, instance.type)}> ${type}`,\n startTag,\n endTag\n );\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now());\n }\n}\nfunction isSupported() {\n if (supported !== void 0) {\n return supported;\n }\n if (typeof window !== \"undefined\" && window.performance) {\n supported = true;\n perf = window.performance;\n } else {\n supported = false;\n }\n return supported;\n}\n\nfunction initFeatureFlags() {\n const needWarn = [];\n if (typeof __VUE_OPTIONS_API__ !== \"boolean\") {\n !!(process.env.NODE_ENV !== \"production\") && needWarn.push(`__VUE_OPTIONS_API__`);\n getGlobalThis().__VUE_OPTIONS_API__ = true;\n }\n if (typeof __VUE_PROD_DEVTOOLS__ !== \"boolean\") {\n !!(process.env.NODE_ENV !== \"production\") && needWarn.push(`__VUE_PROD_DEVTOOLS__`);\n getGlobalThis().__VUE_PROD_DEVTOOLS__ = false;\n }\n if (typeof __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ !== \"boolean\") {\n !!(process.env.NODE_ENV !== \"production\") && needWarn.push(`__VUE_PROD_HYDRATION_MISMATCH_DETAILS__`);\n getGlobalThis().__VUE_PROD_HYDRATION_MISMATCH_DETAILS__ = false;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && needWarn.length) {\n const multi = needWarn.length > 1;\n console.warn(\n `Feature flag${multi ? `s` : ``} ${needWarn.join(\", \")} ${multi ? `are` : `is`} not explicitly defined. You are running the esm-bundler build of Vue, which expects these compile-time feature flags to be globally injected via the bundler config in order to get better tree-shaking in the production bundle.\n\nFor more details, see https://link.vuejs.org/feature-flags.`\n );\n }\n}\n\nconst queuePostRenderEffect = queueEffectWithSuspense ;\nfunction createRenderer(options) {\n return baseCreateRenderer(options);\n}\nfunction createHydrationRenderer(options) {\n return baseCreateRenderer(options, createHydrationFunctions);\n}\nfunction baseCreateRenderer(options, createHydrationFns) {\n {\n initFeatureFlags();\n }\n const target = getGlobalThis();\n target.__VUE__ = true;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n setDevtoolsHook$1(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);\n }\n const {\n insert: hostInsert,\n remove: hostRemove,\n patchProp: hostPatchProp,\n createElement: hostCreateElement,\n createText: hostCreateText,\n createComment: hostCreateComment,\n setText: hostSetText,\n setElementText: hostSetElementText,\n parentNode: hostParentNode,\n nextSibling: hostNextSibling,\n setScopeId: hostSetScopeId = NOOP,\n insertStaticContent: hostInsertStaticContent\n } = options;\n const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace = void 0, slotScopeIds = null, optimized = !!(process.env.NODE_ENV !== \"production\") && isHmrUpdating ? false : !!n2.dynamicChildren) => {\n if (n1 === n2) {\n return;\n }\n if (n1 && !isSameVNodeType(n1, n2)) {\n anchor = getNextHostNode(n1);\n unmount(n1, parentComponent, parentSuspense, true);\n n1 = null;\n }\n if (n2.patchFlag === -2) {\n optimized = false;\n n2.dynamicChildren = null;\n }\n const { type, ref, shapeFlag } = n2;\n switch (type) {\n case Text:\n processText(n1, n2, container, anchor);\n break;\n case Comment:\n processCommentNode(n1, n2, container, anchor);\n break;\n case Static:\n if (n1 == null) {\n mountStaticNode(n2, container, anchor, namespace);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n patchStaticNode(n1, n2, container, namespace);\n }\n break;\n case Fragment:\n processFragment(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n break;\n default:\n if (shapeFlag & 1) {\n processElement(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else if (shapeFlag & 6) {\n processComponent(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else if (shapeFlag & 64) {\n type.process(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n internals\n );\n } else if (shapeFlag & 128) {\n type.process(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n internals\n );\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid VNode type:\", type, `(${typeof type})`);\n }\n }\n if (ref != null && parentComponent) {\n setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2);\n }\n };\n const processText = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert(\n n2.el = hostCreateText(n2.children),\n container,\n anchor\n );\n } else {\n const el = n2.el = n1.el;\n if (n2.children !== n1.children) {\n hostSetText(el, n2.children);\n }\n }\n };\n const processCommentNode = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert(\n n2.el = hostCreateComment(n2.children || \"\"),\n container,\n anchor\n );\n } else {\n n2.el = n1.el;\n }\n };\n const mountStaticNode = (n2, container, anchor, namespace) => {\n [n2.el, n2.anchor] = hostInsertStaticContent(\n n2.children,\n container,\n anchor,\n namespace,\n n2.el,\n n2.anchor\n );\n };\n const patchStaticNode = (n1, n2, container, namespace) => {\n if (n2.children !== n1.children) {\n const anchor = hostNextSibling(n1.anchor);\n removeStaticNode(n1);\n [n2.el, n2.anchor] = hostInsertStaticContent(\n n2.children,\n container,\n anchor,\n namespace\n );\n } else {\n n2.el = n1.el;\n n2.anchor = n1.anchor;\n }\n };\n const moveStaticNode = ({ el, anchor }, container, nextSibling) => {\n let next;\n while (el && el !== anchor) {\n next = hostNextSibling(el);\n hostInsert(el, container, nextSibling);\n el = next;\n }\n hostInsert(anchor, container, nextSibling);\n };\n const removeStaticNode = ({ el, anchor }) => {\n let next;\n while (el && el !== anchor) {\n next = hostNextSibling(el);\n hostRemove(el);\n el = next;\n }\n hostRemove(anchor);\n };\n const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n if (n2.type === \"svg\") {\n namespace = \"svg\";\n } else if (n2.type === \"math\") {\n namespace = \"mathml\";\n }\n if (n1 == null) {\n mountElement(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n patchElement(\n n1,\n n2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n let el;\n let vnodeHook;\n const { props, shapeFlag, transition, dirs } = vnode;\n el = vnode.el = hostCreateElement(\n vnode.type,\n namespace,\n props && props.is,\n props\n );\n if (shapeFlag & 8) {\n hostSetElementText(el, vnode.children);\n } else if (shapeFlag & 16) {\n mountChildren(\n vnode.children,\n el,\n null,\n parentComponent,\n parentSuspense,\n resolveChildrenNamespace(vnode, namespace),\n slotScopeIds,\n optimized\n );\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n }\n setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent);\n if (props) {\n for (const key in props) {\n if (key !== \"value\" && !isReservedProp(key)) {\n hostPatchProp(\n el,\n key,\n null,\n props[key],\n namespace,\n vnode.children,\n parentComponent,\n parentSuspense,\n unmountChildren\n );\n }\n }\n if (\"value\" in props) {\n hostPatchProp(el, \"value\", null, props.value, namespace);\n }\n if (vnodeHook = props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n Object.defineProperty(el, \"__vnode\", {\n value: vnode,\n enumerable: false\n });\n Object.defineProperty(el, \"__vueParentComponent\", {\n value: parentComponent,\n enumerable: false\n });\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n const needCallTransitionHooks = needTransition(parentSuspense, transition);\n if (needCallTransitionHooks) {\n transition.beforeEnter(el);\n }\n hostInsert(el, container, anchor);\n if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n };\n const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => {\n if (scopeId) {\n hostSetScopeId(el, scopeId);\n }\n if (slotScopeIds) {\n for (let i = 0; i < slotScopeIds.length; i++) {\n hostSetScopeId(el, slotScopeIds[i]);\n }\n }\n if (parentComponent) {\n let subTree = parentComponent.subTree;\n if (!!(process.env.NODE_ENV !== \"production\") && subTree.patchFlag > 0 && subTree.patchFlag & 2048) {\n subTree = filterSingleRoot(subTree.children) || subTree;\n }\n if (vnode === subTree) {\n const parentVNode = parentComponent.vnode;\n setScopeId(\n el,\n parentVNode,\n parentVNode.scopeId,\n parentVNode.slotScopeIds,\n parentComponent.parent\n );\n }\n }\n };\n const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {\n for (let i = start; i < children.length; i++) {\n const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);\n patch(\n null,\n child,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n const el = n2.el = n1.el;\n let { patchFlag, dynamicChildren, dirs } = n2;\n patchFlag |= n1.patchFlag & 16;\n const oldProps = n1.props || EMPTY_OBJ;\n const newProps = n2.props || EMPTY_OBJ;\n let vnodeHook;\n parentComponent && toggleRecurse(parentComponent, false);\n if (vnodeHook = newProps.onVnodeBeforeUpdate) {\n invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n }\n if (dirs) {\n invokeDirectiveHook(n2, n1, parentComponent, \"beforeUpdate\");\n }\n parentComponent && toggleRecurse(parentComponent, true);\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n patchFlag = 0;\n optimized = false;\n dynamicChildren = null;\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n el,\n parentComponent,\n parentSuspense,\n resolveChildrenNamespace(n2, namespace),\n slotScopeIds\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n traverseStaticChildren(n1, n2);\n }\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n el,\n null,\n parentComponent,\n parentSuspense,\n resolveChildrenNamespace(n2, namespace),\n slotScopeIds,\n false\n );\n }\n if (patchFlag > 0) {\n if (patchFlag & 16) {\n patchProps(\n el,\n n2,\n oldProps,\n newProps,\n parentComponent,\n parentSuspense,\n namespace\n );\n } else {\n if (patchFlag & 2) {\n if (oldProps.class !== newProps.class) {\n hostPatchProp(el, \"class\", null, newProps.class, namespace);\n }\n }\n if (patchFlag & 4) {\n hostPatchProp(el, \"style\", oldProps.style, newProps.style, namespace);\n }\n if (patchFlag & 8) {\n const propsToUpdate = n2.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n const key = propsToUpdate[i];\n const prev = oldProps[key];\n const next = newProps[key];\n if (next !== prev || key === \"value\") {\n hostPatchProp(\n el,\n key,\n prev,\n next,\n namespace,\n n1.children,\n parentComponent,\n parentSuspense,\n unmountChildren\n );\n }\n }\n }\n }\n if (patchFlag & 1) {\n if (n1.children !== n2.children) {\n hostSetElementText(el, n2.children);\n }\n }\n } else if (!optimized && dynamicChildren == null) {\n patchProps(\n el,\n n2,\n oldProps,\n newProps,\n parentComponent,\n parentSuspense,\n namespace\n );\n }\n if ((vnodeHook = newProps.onVnodeUpdated) || dirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n dirs && invokeDirectiveHook(n2, n1, parentComponent, \"updated\");\n }, parentSuspense);\n }\n };\n const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds) => {\n for (let i = 0; i < newChildren.length; i++) {\n const oldVNode = oldChildren[i];\n const newVNode = newChildren[i];\n const container = (\n // oldVNode may be an errored async setup() component inside Suspense\n // which will not have a mounted element\n oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent\n // of the Fragment itself so it can move its children.\n (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement\n // which also requires the correct parent container\n !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything.\n oldVNode.shapeFlag & (6 | 64)) ? hostParentNode(oldVNode.el) : (\n // In other cases, the parent container is not actually used so we\n // just pass the block element here to avoid a DOM parentNode call.\n fallbackContainer\n )\n );\n patch(\n oldVNode,\n newVNode,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n true\n );\n }\n };\n const patchProps = (el, vnode, oldProps, newProps, parentComponent, parentSuspense, namespace) => {\n if (oldProps !== newProps) {\n if (oldProps !== EMPTY_OBJ) {\n for (const key in oldProps) {\n if (!isReservedProp(key) && !(key in newProps)) {\n hostPatchProp(\n el,\n key,\n oldProps[key],\n null,\n namespace,\n vnode.children,\n parentComponent,\n parentSuspense,\n unmountChildren\n );\n }\n }\n }\n for (const key in newProps) {\n if (isReservedProp(key))\n continue;\n const next = newProps[key];\n const prev = oldProps[key];\n if (next !== prev && key !== \"value\") {\n hostPatchProp(\n el,\n key,\n prev,\n next,\n namespace,\n vnode.children,\n parentComponent,\n parentSuspense,\n unmountChildren\n );\n }\n }\n if (\"value\" in newProps) {\n hostPatchProp(el, \"value\", oldProps.value, newProps.value, namespace);\n }\n }\n };\n const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText(\"\");\n const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText(\"\");\n let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2;\n if (!!(process.env.NODE_ENV !== \"production\") && // #5523 dev root fragment may inherit directives\n (isHmrUpdating || patchFlag & 2048)) {\n patchFlag = 0;\n optimized = false;\n dynamicChildren = null;\n }\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n if (n1 == null) {\n hostInsert(fragmentStartAnchor, container, anchor);\n hostInsert(fragmentEndAnchor, container, anchor);\n mountChildren(\n // #10007\n // such fragment like `<></>` will be compiled into\n // a fragment which doesn't have a children.\n // In this case fallback to an empty array\n n2.children || [],\n container,\n fragmentEndAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result\n // of renderSlot() with no valid children\n n1.dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n container,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n traverseStaticChildren(n1, n2);\n } else if (\n // #2080 if the stable fragment has a key, it's a <template v-for> that may\n // get moved around. Make sure all root level vnodes inherit el.\n // #2134 or if it's a component root, it may also get moved around\n // as the component is being moved.\n n2.key != null || parentComponent && n2 === parentComponent.subTree\n ) {\n traverseStaticChildren(\n n1,\n n2,\n true\n /* shallow */\n );\n }\n } else {\n patchChildren(\n n1,\n n2,\n container,\n fragmentEndAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n }\n };\n const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n n2.slotScopeIds = slotScopeIds;\n if (n1 == null) {\n if (n2.shapeFlag & 512) {\n parentComponent.ctx.activate(\n n2,\n container,\n anchor,\n namespace,\n optimized\n );\n } else {\n mountComponent(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n optimized\n );\n }\n } else {\n updateComponent(n1, n2, optimized);\n }\n };\n const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {\n const compatMountInstance = initialVNode.isCompatRoot && initialVNode.component;\n const instance = compatMountInstance || (initialVNode.component = createComponentInstance(\n initialVNode,\n parentComponent,\n parentSuspense\n ));\n if (!!(process.env.NODE_ENV !== \"production\") && instance.type.__hmrId) {\n registerHMR(instance);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(initialVNode);\n startMeasure(instance, `mount`);\n }\n if (isKeepAlive(initialVNode)) {\n instance.ctx.renderer = internals;\n }\n if (!compatMountInstance) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `init`);\n }\n setupComponent(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `init`);\n }\n }\n if (instance.asyncDep) {\n parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect);\n if (!initialVNode.el) {\n const placeholder = instance.subTree = createVNode(Comment);\n processCommentNode(null, placeholder, container, anchor);\n }\n } else {\n setupRenderEffect(\n instance,\n initialVNode,\n container,\n anchor,\n parentSuspense,\n namespace,\n optimized\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n endMeasure(instance, `mount`);\n }\n };\n const updateComponent = (n1, n2, optimized) => {\n const instance = n2.component = n1.component;\n if (shouldUpdateComponent(n1, n2, optimized)) {\n if (instance.asyncDep && !instance.asyncResolved) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(n2);\n }\n updateComponentPreRender(instance, n2, optimized);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n return;\n } else {\n instance.next = n2;\n invalidateJob(instance.update);\n instance.effect.dirty = true;\n instance.update();\n }\n } else {\n n2.el = n1.el;\n instance.vnode = n2;\n }\n };\n const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, namespace, optimized) => {\n const componentUpdateFn = () => {\n if (!instance.isMounted) {\n let vnodeHook;\n const { el, props } = initialVNode;\n const { bm, m, parent } = instance;\n const isAsyncWrapperVNode = isAsyncWrapper(initialVNode);\n toggleRecurse(instance, false);\n if (bm) {\n invokeArrayFns(bm);\n }\n if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) {\n invokeVNodeHook(vnodeHook, parent, initialVNode);\n }\n if (isCompatEnabled(\"INSTANCE_EVENT_HOOKS\", instance)) {\n instance.emit(\"hook:beforeMount\");\n }\n toggleRecurse(instance, true);\n if (el && hydrateNode) {\n const hydrateSubTree = () => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `render`);\n }\n instance.subTree = renderComponentRoot(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `render`);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `hydrate`);\n }\n hydrateNode(\n el,\n instance.subTree,\n instance,\n parentSuspense,\n null\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `hydrate`);\n }\n };\n if (isAsyncWrapperVNode) {\n initialVNode.type.__asyncLoader().then(\n // note: we are moving the render call into an async callback,\n // which means it won't track dependencies - but it's ok because\n // a server-rendered async wrapper is already in resolved state\n // and it will never need to change.\n () => !instance.isUnmounted && hydrateSubTree()\n );\n } else {\n hydrateSubTree();\n }\n } else {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `render`);\n }\n const subTree = instance.subTree = renderComponentRoot(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `render`);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `patch`);\n }\n patch(\n null,\n subTree,\n container,\n anchor,\n instance,\n parentSuspense,\n namespace\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `patch`);\n }\n initialVNode.el = subTree.el;\n }\n if (m) {\n queuePostRenderEffect(m, parentSuspense);\n }\n if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) {\n const scopedInitialVNode = initialVNode;\n queuePostRenderEffect(\n () => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode),\n parentSuspense\n );\n }\n if (isCompatEnabled(\"INSTANCE_EVENT_HOOKS\", instance)) {\n queuePostRenderEffect(\n () => instance.emit(\"hook:mounted\"),\n parentSuspense\n );\n }\n if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) {\n instance.a && queuePostRenderEffect(instance.a, parentSuspense);\n if (isCompatEnabled(\"INSTANCE_EVENT_HOOKS\", instance)) {\n queuePostRenderEffect(\n () => instance.emit(\"hook:activated\"),\n parentSuspense\n );\n }\n }\n instance.isMounted = true;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance);\n }\n initialVNode = container = anchor = null;\n } else {\n let { next, bu, u, parent, vnode } = instance;\n {\n const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance);\n if (nonHydratedAsyncRoot) {\n if (next) {\n next.el = vnode.el;\n updateComponentPreRender(instance, next, optimized);\n }\n nonHydratedAsyncRoot.asyncDep.then(() => {\n if (!instance.isUnmounted) {\n componentUpdateFn();\n }\n });\n return;\n }\n }\n let originNext = next;\n let vnodeHook;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(next || instance.vnode);\n }\n toggleRecurse(instance, false);\n if (next) {\n next.el = vnode.el;\n updateComponentPreRender(instance, next, optimized);\n } else {\n next = vnode;\n }\n if (bu) {\n invokeArrayFns(bu);\n }\n if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) {\n invokeVNodeHook(vnodeHook, parent, next, vnode);\n }\n if (isCompatEnabled(\"INSTANCE_EVENT_HOOKS\", instance)) {\n instance.emit(\"hook:beforeUpdate\");\n }\n toggleRecurse(instance, true);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `render`);\n }\n const nextTree = renderComponentRoot(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `render`);\n }\n const prevTree = instance.subTree;\n instance.subTree = nextTree;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `patch`);\n }\n patch(\n prevTree,\n nextTree,\n // parent may have changed if it's in a teleport\n hostParentNode(prevTree.el),\n // anchor may have changed if it's in a fragment\n getNextHostNode(prevTree),\n instance,\n parentSuspense,\n namespace\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `patch`);\n }\n next.el = nextTree.el;\n if (originNext === null) {\n updateHOCHostEl(instance, nextTree.el);\n }\n if (u) {\n queuePostRenderEffect(u, parentSuspense);\n }\n if (vnodeHook = next.props && next.props.onVnodeUpdated) {\n queuePostRenderEffect(\n () => invokeVNodeHook(vnodeHook, parent, next, vnode),\n parentSuspense\n );\n }\n if (isCompatEnabled(\"INSTANCE_EVENT_HOOKS\", instance)) {\n queuePostRenderEffect(\n () => instance.emit(\"hook:updated\"),\n parentSuspense\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(instance);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n }\n };\n const effect = instance.effect = new ReactiveEffect(\n componentUpdateFn,\n NOOP,\n () => queueJob(update),\n instance.scope\n // track it in component's effect scope\n );\n const update = instance.update = () => {\n if (effect.dirty) {\n effect.run();\n }\n };\n update.id = instance.uid;\n toggleRecurse(instance, true);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = instance.rtc ? (e) => invokeArrayFns(instance.rtc, e) : void 0;\n effect.onTrigger = instance.rtg ? (e) => invokeArrayFns(instance.rtg, e) : void 0;\n update.ownerInstance = instance;\n }\n update();\n };\n const updateComponentPreRender = (instance, nextVNode, optimized) => {\n nextVNode.component = instance;\n const prevProps = instance.vnode.props;\n instance.vnode = nextVNode;\n instance.next = null;\n updateProps(instance, nextVNode.props, prevProps, optimized);\n updateSlots(instance, nextVNode.children, optimized);\n pauseTracking();\n flushPreFlushCbs(instance);\n resetTracking();\n };\n const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized = false) => {\n const c1 = n1 && n1.children;\n const prevShapeFlag = n1 ? n1.shapeFlag : 0;\n const c2 = n2.children;\n const { patchFlag, shapeFlag } = n2;\n if (patchFlag > 0) {\n if (patchFlag & 128) {\n patchKeyedChildren(\n c1,\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n return;\n } else if (patchFlag & 256) {\n patchUnkeyedChildren(\n c1,\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n return;\n }\n }\n if (shapeFlag & 8) {\n if (prevShapeFlag & 16) {\n unmountChildren(c1, parentComponent, parentSuspense);\n }\n if (c2 !== c1) {\n hostSetElementText(container, c2);\n }\n } else {\n if (prevShapeFlag & 16) {\n if (shapeFlag & 16) {\n patchKeyedChildren(\n c1,\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n unmountChildren(c1, parentComponent, parentSuspense, true);\n }\n } else {\n if (prevShapeFlag & 8) {\n hostSetElementText(container, \"\");\n }\n if (shapeFlag & 16) {\n mountChildren(\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n }\n }\n };\n const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n c1 = c1 || EMPTY_ARR;\n c2 = c2 || EMPTY_ARR;\n const oldLength = c1.length;\n const newLength = c2.length;\n const commonLength = Math.min(oldLength, newLength);\n let i;\n for (i = 0; i < commonLength; i++) {\n const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n patch(\n c1[i],\n nextChild,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n if (oldLength > newLength) {\n unmountChildren(\n c1,\n parentComponent,\n parentSuspense,\n true,\n false,\n commonLength\n );\n } else {\n mountChildren(\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n commonLength\n );\n }\n };\n const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n let i = 0;\n const l2 = c2.length;\n let e1 = c1.length - 1;\n let e2 = l2 - 1;\n while (i <= e1 && i <= e2) {\n const n1 = c1[i];\n const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n if (isSameVNodeType(n1, n2)) {\n patch(\n n1,\n n2,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n break;\n }\n i++;\n }\n while (i <= e1 && i <= e2) {\n const n1 = c1[e1];\n const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]);\n if (isSameVNodeType(n1, n2)) {\n patch(\n n1,\n n2,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n break;\n }\n e1--;\n e2--;\n }\n if (i > e1) {\n if (i <= e2) {\n const nextPos = e2 + 1;\n const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor;\n while (i <= e2) {\n patch(\n null,\n c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]),\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n i++;\n }\n }\n } else if (i > e2) {\n while (i <= e1) {\n unmount(c1[i], parentComponent, parentSuspense, true);\n i++;\n }\n } else {\n const s1 = i;\n const s2 = i;\n const keyToNewIndexMap = /* @__PURE__ */ new Map();\n for (i = s2; i <= e2; i++) {\n const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n if (nextChild.key != null) {\n if (!!(process.env.NODE_ENV !== \"production\") && keyToNewIndexMap.has(nextChild.key)) {\n warn$1(\n `Duplicate keys found during update:`,\n JSON.stringify(nextChild.key),\n `Make sure keys are unique.`\n );\n }\n keyToNewIndexMap.set(nextChild.key, i);\n }\n }\n let j;\n let patched = 0;\n const toBePatched = e2 - s2 + 1;\n let moved = false;\n let maxNewIndexSoFar = 0;\n const newIndexToOldIndexMap = new Array(toBePatched);\n for (i = 0; i < toBePatched; i++)\n newIndexToOldIndexMap[i] = 0;\n for (i = s1; i <= e1; i++) {\n const prevChild = c1[i];\n if (patched >= toBePatched) {\n unmount(prevChild, parentComponent, parentSuspense, true);\n continue;\n }\n let newIndex;\n if (prevChild.key != null) {\n newIndex = keyToNewIndexMap.get(prevChild.key);\n } else {\n for (j = s2; j <= e2; j++) {\n if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) {\n newIndex = j;\n break;\n }\n }\n }\n if (newIndex === void 0) {\n unmount(prevChild, parentComponent, parentSuspense, true);\n } else {\n newIndexToOldIndexMap[newIndex - s2] = i + 1;\n if (newIndex >= maxNewIndexSoFar) {\n maxNewIndexSoFar = newIndex;\n } else {\n moved = true;\n }\n patch(\n prevChild,\n c2[newIndex],\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n patched++;\n }\n }\n const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : EMPTY_ARR;\n j = increasingNewIndexSequence.length - 1;\n for (i = toBePatched - 1; i >= 0; i--) {\n const nextIndex = s2 + i;\n const nextChild = c2[nextIndex];\n const anchor = nextIndex + 1 < l2 ? c2[nextIndex + 1].el : parentAnchor;\n if (newIndexToOldIndexMap[i] === 0) {\n patch(\n null,\n nextChild,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else if (moved) {\n if (j < 0 || i !== increasingNewIndexSequence[j]) {\n move(nextChild, container, anchor, 2);\n } else {\n j--;\n }\n }\n }\n }\n };\n const move = (vnode, container, anchor, moveType, parentSuspense = null) => {\n const { el, type, transition, children, shapeFlag } = vnode;\n if (shapeFlag & 6) {\n move(vnode.component.subTree, container, anchor, moveType);\n return;\n }\n if (shapeFlag & 128) {\n vnode.suspense.move(container, anchor, moveType);\n return;\n }\n if (shapeFlag & 64) {\n type.move(vnode, container, anchor, internals);\n return;\n }\n if (type === Fragment) {\n hostInsert(el, container, anchor);\n for (let i = 0; i < children.length; i++) {\n move(children[i], container, anchor, moveType);\n }\n hostInsert(vnode.anchor, container, anchor);\n return;\n }\n if (type === Static) {\n moveStaticNode(vnode, container, anchor);\n return;\n }\n const needTransition2 = moveType !== 2 && shapeFlag & 1 && transition;\n if (needTransition2) {\n if (moveType === 0) {\n transition.beforeEnter(el);\n hostInsert(el, container, anchor);\n queuePostRenderEffect(() => transition.enter(el), parentSuspense);\n } else {\n const { leave, delayLeave, afterLeave } = transition;\n const remove2 = () => hostInsert(el, container, anchor);\n const performLeave = () => {\n leave(el, () => {\n remove2();\n afterLeave && afterLeave();\n });\n };\n if (delayLeave) {\n delayLeave(el, remove2, performLeave);\n } else {\n performLeave();\n }\n }\n } else {\n hostInsert(el, container, anchor);\n }\n };\n const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {\n const {\n type,\n props,\n ref,\n children,\n dynamicChildren,\n shapeFlag,\n patchFlag,\n dirs\n } = vnode;\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode, true);\n }\n if (shapeFlag & 256) {\n parentComponent.ctx.deactivate(vnode);\n return;\n }\n const shouldInvokeDirs = shapeFlag & 1 && dirs;\n const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);\n let vnodeHook;\n if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n if (shapeFlag & 6) {\n unmountComponent(vnode.component, parentSuspense, doRemove);\n } else {\n if (shapeFlag & 128) {\n vnode.suspense.unmount(parentSuspense, doRemove);\n return;\n }\n if (shouldInvokeDirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeUnmount\");\n }\n if (shapeFlag & 64) {\n vnode.type.remove(\n vnode,\n parentComponent,\n parentSuspense,\n optimized,\n internals,\n doRemove\n );\n } else if (dynamicChildren && // #1153: fast path should not be taken for non-stable (v-for) fragments\n (type !== Fragment || patchFlag > 0 && patchFlag & 64)) {\n unmountChildren(\n dynamicChildren,\n parentComponent,\n parentSuspense,\n false,\n true\n );\n } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) {\n unmountChildren(children, parentComponent, parentSuspense);\n }\n if (doRemove) {\n remove(vnode);\n }\n }\n if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, \"unmounted\");\n }, parentSuspense);\n }\n };\n const remove = (vnode) => {\n const { type, el, anchor, transition } = vnode;\n if (type === Fragment) {\n if (!!(process.env.NODE_ENV !== \"production\") && vnode.patchFlag > 0 && vnode.patchFlag & 2048 && transition && !transition.persisted) {\n vnode.children.forEach((child) => {\n if (child.type === Comment) {\n hostRemove(child.el);\n } else {\n remove(child);\n }\n });\n } else {\n removeFragment(el, anchor);\n }\n return;\n }\n if (type === Static) {\n removeStaticNode(vnode);\n return;\n }\n const performRemove = () => {\n hostRemove(el);\n if (transition && !transition.persisted && transition.afterLeave) {\n transition.afterLeave();\n }\n };\n if (vnode.shapeFlag & 1 && transition && !transition.persisted) {\n const { leave, delayLeave } = transition;\n const performLeave = () => leave(el, performRemove);\n if (delayLeave) {\n delayLeave(vnode.el, performRemove, performLeave);\n } else {\n performLeave();\n }\n } else {\n performRemove();\n }\n };\n const removeFragment = (cur, end) => {\n let next;\n while (cur !== end) {\n next = hostNextSibling(cur);\n hostRemove(cur);\n cur = next;\n }\n hostRemove(end);\n };\n const unmountComponent = (instance, parentSuspense, doRemove) => {\n if (!!(process.env.NODE_ENV !== \"production\") && instance.type.__hmrId) {\n unregisterHMR(instance);\n }\n const { bum, scope, update, subTree, um } = instance;\n if (bum) {\n invokeArrayFns(bum);\n }\n if (isCompatEnabled(\"INSTANCE_EVENT_HOOKS\", instance)) {\n instance.emit(\"hook:beforeDestroy\");\n }\n scope.stop();\n if (update) {\n update.active = false;\n unmount(subTree, instance, parentSuspense, doRemove);\n }\n if (um) {\n queuePostRenderEffect(um, parentSuspense);\n }\n if (isCompatEnabled(\"INSTANCE_EVENT_HOOKS\", instance)) {\n queuePostRenderEffect(\n () => instance.emit(\"hook:destroyed\"),\n parentSuspense\n );\n }\n queuePostRenderEffect(() => {\n instance.isUnmounted = true;\n }, parentSuspense);\n if (parentSuspense && parentSuspense.pendingBranch && !parentSuspense.isUnmounted && instance.asyncDep && !instance.asyncResolved && instance.suspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0) {\n parentSuspense.resolve();\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentRemoved(instance);\n }\n };\n const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => {\n for (let i = start; i < children.length; i++) {\n unmount(children[i], parentComponent, parentSuspense, doRemove, optimized);\n }\n };\n const getNextHostNode = (vnode) => {\n if (vnode.shapeFlag & 6) {\n return getNextHostNode(vnode.component.subTree);\n }\n if (vnode.shapeFlag & 128) {\n return vnode.suspense.next();\n }\n return hostNextSibling(vnode.anchor || vnode.el);\n };\n let isFlushing = false;\n const render = (vnode, container, namespace) => {\n if (vnode == null) {\n if (container._vnode) {\n unmount(container._vnode, null, null, true);\n }\n } else {\n patch(\n container._vnode || null,\n vnode,\n container,\n null,\n null,\n null,\n namespace\n );\n }\n if (!isFlushing) {\n isFlushing = true;\n flushPreFlushCbs();\n flushPostFlushCbs();\n isFlushing = false;\n }\n container._vnode = vnode;\n };\n const internals = {\n p: patch,\n um: unmount,\n m: move,\n r: remove,\n mt: mountComponent,\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n n: getNextHostNode,\n o: options\n };\n let hydrate;\n let hydrateNode;\n if (createHydrationFns) {\n [hydrate, hydrateNode] = createHydrationFns(\n internals\n );\n }\n return {\n render,\n hydrate,\n createApp: createAppAPI(render, hydrate)\n };\n}\nfunction resolveChildrenNamespace({ type, props }, currentNamespace) {\n return currentNamespace === \"svg\" && type === \"foreignObject\" || currentNamespace === \"mathml\" && type === \"annotation-xml\" && props && props.encoding && props.encoding.includes(\"html\") ? void 0 : currentNamespace;\n}\nfunction toggleRecurse({ effect, update }, allowed) {\n effect.allowRecurse = update.allowRecurse = allowed;\n}\nfunction needTransition(parentSuspense, transition) {\n return (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted;\n}\nfunction traverseStaticChildren(n1, n2, shallow = false) {\n const ch1 = n1.children;\n const ch2 = n2.children;\n if (isArray(ch1) && isArray(ch2)) {\n for (let i = 0; i < ch1.length; i++) {\n const c1 = ch1[i];\n let c2 = ch2[i];\n if (c2.shapeFlag & 1 && !c2.dynamicChildren) {\n if (c2.patchFlag <= 0 || c2.patchFlag === 32) {\n c2 = ch2[i] = cloneIfMounted(ch2[i]);\n c2.el = c1.el;\n }\n if (!shallow)\n traverseStaticChildren(c1, c2);\n }\n if (c2.type === Text) {\n c2.el = c1.el;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && c2.type === Comment && !c2.el) {\n c2.el = c1.el;\n }\n }\n }\n}\nfunction getSequence(arr) {\n const p = arr.slice();\n const result = [0];\n let i, j, u, v, c;\n const len = arr.length;\n for (i = 0; i < len; i++) {\n const arrI = arr[i];\n if (arrI !== 0) {\n j = result[result.length - 1];\n if (arr[j] < arrI) {\n p[i] = j;\n result.push(i);\n continue;\n }\n u = 0;\n v = result.length - 1;\n while (u < v) {\n c = u + v >> 1;\n if (arr[result[c]] < arrI) {\n u = c + 1;\n } else {\n v = c;\n }\n }\n if (arrI < arr[result[u]]) {\n if (u > 0) {\n p[i] = result[u - 1];\n }\n result[u] = i;\n }\n }\n }\n u = result.length;\n v = result[u - 1];\n while (u-- > 0) {\n result[u] = v;\n v = p[v];\n }\n return result;\n}\nfunction locateNonHydratedAsyncRoot(instance) {\n const subComponent = instance.subTree.component;\n if (subComponent) {\n if (subComponent.asyncDep && !subComponent.asyncResolved) {\n return subComponent;\n } else {\n return locateNonHydratedAsyncRoot(subComponent);\n }\n }\n}\n\nconst isTeleport = (type) => type.__isTeleport;\nconst isTeleportDisabled = (props) => props && (props.disabled || props.disabled === \"\");\nconst isTargetSVG = (target) => typeof SVGElement !== \"undefined\" && target instanceof SVGElement;\nconst isTargetMathML = (target) => typeof MathMLElement === \"function\" && target instanceof MathMLElement;\nconst resolveTarget = (props, select) => {\n const targetSelector = props && props.to;\n if (isString(targetSelector)) {\n if (!select) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Current renderer does not support string target for Teleports. (missing querySelector renderer option)`\n );\n return null;\n } else {\n const target = select(targetSelector);\n if (!target) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Failed to locate Teleport target with selector \"${targetSelector}\". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`\n );\n }\n return target;\n }\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && !targetSelector && !isTeleportDisabled(props)) {\n warn$1(`Invalid Teleport target: ${targetSelector}`);\n }\n return targetSelector;\n }\n};\nconst TeleportImpl = {\n name: \"Teleport\",\n __isTeleport: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {\n const {\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n o: { insert, querySelector, createText, createComment }\n } = internals;\n const disabled = isTeleportDisabled(n2.props);\n let { shapeFlag, children, dynamicChildren } = n2;\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n optimized = false;\n dynamicChildren = null;\n }\n if (n1 == null) {\n const placeholder = n2.el = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport start\") : createText(\"\");\n const mainAnchor = n2.anchor = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport end\") : createText(\"\");\n insert(placeholder, container, anchor);\n insert(mainAnchor, container, anchor);\n const target = n2.target = resolveTarget(n2.props, querySelector);\n const targetAnchor = n2.targetAnchor = createText(\"\");\n if (target) {\n insert(targetAnchor, target);\n if (namespace === \"svg\" || isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace === \"mathml\" || isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && !disabled) {\n warn$1(\"Invalid Teleport target on mount:\", target, `(${typeof target})`);\n }\n const mount = (container2, anchor2) => {\n if (shapeFlag & 16) {\n mountChildren(\n children,\n container2,\n anchor2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n if (disabled) {\n mount(container, mainAnchor);\n } else if (target) {\n mount(target, targetAnchor);\n }\n } else {\n n2.el = n1.el;\n const mainAnchor = n2.anchor = n1.anchor;\n const target = n2.target = n1.target;\n const targetAnchor = n2.targetAnchor = n1.targetAnchor;\n const wasDisabled = isTeleportDisabled(n1.props);\n const currentContainer = wasDisabled ? container : target;\n const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;\n if (namespace === \"svg\" || isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace === \"mathml\" || isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n currentContainer,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n traverseStaticChildren(n1, n2, true);\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n currentContainer,\n currentAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n false\n );\n }\n if (disabled) {\n if (!wasDisabled) {\n moveTeleport(\n n2,\n container,\n mainAnchor,\n internals,\n 1\n );\n } else {\n if (n2.props && n1.props && n2.props.to !== n1.props.to) {\n n2.props.to = n1.props.to;\n }\n }\n } else {\n if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {\n const nextTarget = n2.target = resolveTarget(\n n2.props,\n querySelector\n );\n if (nextTarget) {\n moveTeleport(\n n2,\n nextTarget,\n null,\n internals,\n 0\n );\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Invalid Teleport target on update:\",\n target,\n `(${typeof target})`\n );\n }\n } else if (wasDisabled) {\n moveTeleport(\n n2,\n target,\n targetAnchor,\n internals,\n 1\n );\n }\n }\n }\n updateCssVars(n2);\n },\n remove(vnode, parentComponent, parentSuspense, optimized, { um: unmount, o: { remove: hostRemove } }, doRemove) {\n const { shapeFlag, children, anchor, targetAnchor, target, props } = vnode;\n if (target) {\n hostRemove(targetAnchor);\n }\n doRemove && hostRemove(anchor);\n if (shapeFlag & 16) {\n const shouldRemove = doRemove || !isTeleportDisabled(props);\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n unmount(\n child,\n parentComponent,\n parentSuspense,\n shouldRemove,\n !!child.dynamicChildren\n );\n }\n }\n },\n move: moveTeleport,\n hydrate: hydrateTeleport\n};\nfunction moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {\n if (moveType === 0) {\n insert(vnode.targetAnchor, container, parentAnchor);\n }\n const { el, anchor, shapeFlag, children, props } = vnode;\n const isReorder = moveType === 2;\n if (isReorder) {\n insert(el, container, parentAnchor);\n }\n if (!isReorder || isTeleportDisabled(props)) {\n if (shapeFlag & 16) {\n for (let i = 0; i < children.length; i++) {\n move(\n children[i],\n container,\n parentAnchor,\n 2\n );\n }\n }\n }\n if (isReorder) {\n insert(anchor, container, parentAnchor);\n }\n}\nfunction hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {\n o: { nextSibling, parentNode, querySelector }\n}, hydrateChildren) {\n const target = vnode.target = resolveTarget(\n vnode.props,\n querySelector\n );\n if (target) {\n const targetNode = target._lpa || target.firstChild;\n if (vnode.shapeFlag & 16) {\n if (isTeleportDisabled(vnode.props)) {\n vnode.anchor = hydrateChildren(\n nextSibling(node),\n vnode,\n parentNode(node),\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n vnode.targetAnchor = targetNode;\n } else {\n vnode.anchor = nextSibling(node);\n let targetAnchor = targetNode;\n while (targetAnchor) {\n targetAnchor = nextSibling(targetAnchor);\n if (targetAnchor && targetAnchor.nodeType === 8 && targetAnchor.data === \"teleport anchor\") {\n vnode.targetAnchor = targetAnchor;\n target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);\n break;\n }\n }\n hydrateChildren(\n targetNode,\n vnode,\n target,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n }\n updateCssVars(vnode);\n }\n return vnode.anchor && nextSibling(vnode.anchor);\n}\nconst Teleport = TeleportImpl;\nfunction updateCssVars(vnode) {\n const ctx = vnode.ctx;\n if (ctx && ctx.ut) {\n let node = vnode.children[0].el;\n while (node && node !== vnode.targetAnchor) {\n if (node.nodeType === 1)\n node.setAttribute(\"data-v-owner\", ctx.uid);\n node = node.nextSibling;\n }\n ctx.ut();\n }\n}\n\nconst normalizedAsyncComponentMap = /* @__PURE__ */ new WeakMap();\nfunction convertLegacyAsyncComponent(comp) {\n if (normalizedAsyncComponentMap.has(comp)) {\n return normalizedAsyncComponentMap.get(comp);\n }\n let resolve;\n let reject;\n const fallbackPromise = new Promise((r, rj) => {\n resolve = r, reject = rj;\n });\n const res = comp(resolve, reject);\n let converted;\n if (isPromise(res)) {\n converted = defineAsyncComponent(() => res);\n } else if (isObject(res) && !isVNode(res) && !isArray(res)) {\n converted = defineAsyncComponent({\n loader: () => res.component,\n loadingComponent: res.loading,\n errorComponent: res.error,\n delay: res.delay,\n timeout: res.timeout\n });\n } else if (res == null) {\n converted = defineAsyncComponent(() => fallbackPromise);\n } else {\n converted = comp;\n }\n normalizedAsyncComponentMap.set(comp, converted);\n return converted;\n}\n\nfunction convertLegacyComponent(comp, instance) {\n if (comp.__isBuiltIn) {\n return comp;\n }\n if (isFunction(comp) && comp.cid) {\n comp = comp.options;\n }\n if (isFunction(comp) && checkCompatEnabled(\"COMPONENT_ASYNC\", instance, comp)) {\n return convertLegacyAsyncComponent(comp);\n }\n if (isObject(comp) && comp.functional && softAssertCompatEnabled(\n \"COMPONENT_FUNCTIONAL\",\n instance,\n comp\n )) {\n return convertLegacyFunctionalComponent(comp);\n }\n return comp;\n}\n\nconst Fragment = Symbol.for(\"v-fgt\");\nconst Text = Symbol.for(\"v-txt\");\nconst Comment = Symbol.for(\"v-cmt\");\nconst Static = Symbol.for(\"v-stc\");\nconst blockStack = [];\nlet currentBlock = null;\nfunction openBlock(disableTracking = false) {\n blockStack.push(currentBlock = disableTracking ? null : []);\n}\nfunction closeBlock() {\n blockStack.pop();\n currentBlock = blockStack[blockStack.length - 1] || null;\n}\nlet isBlockTreeEnabled = 1;\nfunction setBlockTracking(value) {\n isBlockTreeEnabled += value;\n}\nfunction setupBlock(vnode) {\n vnode.dynamicChildren = isBlockTreeEnabled > 0 ? currentBlock || EMPTY_ARR : null;\n closeBlock();\n if (isBlockTreeEnabled > 0 && currentBlock) {\n currentBlock.push(vnode);\n }\n return vnode;\n}\nfunction createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) {\n return setupBlock(\n createBaseVNode(\n type,\n props,\n children,\n patchFlag,\n dynamicProps,\n shapeFlag,\n true\n )\n );\n}\nfunction createBlock(type, props, children, patchFlag, dynamicProps) {\n return setupBlock(\n createVNode(\n type,\n props,\n children,\n patchFlag,\n dynamicProps,\n true\n )\n );\n}\nfunction isVNode(value) {\n return value ? value.__v_isVNode === true : false;\n}\nfunction isSameVNodeType(n1, n2) {\n if (!!(process.env.NODE_ENV !== \"production\") && n2.shapeFlag & 6 && hmrDirtyComponents.has(n2.type)) {\n n1.shapeFlag &= ~256;\n n2.shapeFlag &= ~512;\n return false;\n }\n return n1.type === n2.type && n1.key === n2.key;\n}\nlet vnodeArgsTransformer;\nfunction transformVNodeArgs(transformer) {\n vnodeArgsTransformer = transformer;\n}\nconst createVNodeWithArgsTransform = (...args) => {\n return _createVNode(\n ...vnodeArgsTransformer ? vnodeArgsTransformer(args, currentRenderingInstance) : args\n );\n};\nconst InternalObjectKey = `__vInternal`;\nconst normalizeKey = ({ key }) => key != null ? key : null;\nconst normalizeRef = ({\n ref,\n ref_key,\n ref_for\n}) => {\n if (typeof ref === \"number\") {\n ref = \"\" + ref;\n }\n return ref != null ? isString(ref) || isRef(ref) || isFunction(ref) ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for } : ref : null;\n};\nfunction createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) {\n const vnode = {\n __v_isVNode: true,\n __v_skip: true,\n type,\n props,\n key: props && normalizeKey(props),\n ref: props && normalizeRef(props),\n scopeId: currentScopeId,\n slotScopeIds: null,\n children,\n component: null,\n suspense: null,\n ssContent: null,\n ssFallback: null,\n dirs: null,\n transition: null,\n el: null,\n anchor: null,\n target: null,\n targetAnchor: null,\n staticCount: 0,\n shapeFlag,\n patchFlag,\n dynamicProps,\n dynamicChildren: null,\n appContext: null,\n ctx: currentRenderingInstance\n };\n if (needFullChildrenNormalization) {\n normalizeChildren(vnode, children);\n if (shapeFlag & 128) {\n type.normalize(vnode);\n }\n } else if (children) {\n vnode.shapeFlag |= isString(children) ? 8 : 16;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && vnode.key !== vnode.key) {\n warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);\n }\n if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself\n !isBlockNode && // has current parent block\n currentBlock && // presence of a patch flag indicates this node needs patching on updates.\n // component nodes also should always be patched, because even if the\n // component doesn't need to update, it needs to persist the instance on to\n // the next vnode so that it can be properly unmounted later.\n (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the\n // vnode should not be considered dynamic due to handler caching.\n vnode.patchFlag !== 32) {\n currentBlock.push(vnode);\n }\n {\n convertLegacyVModelProps(vnode);\n defineLegacyVNodeProperties(vnode);\n }\n return vnode;\n}\nconst createVNode = !!(process.env.NODE_ENV !== \"production\") ? createVNodeWithArgsTransform : _createVNode;\nfunction _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {\n if (!type || type === NULL_DYNAMIC_COMPONENT) {\n if (!!(process.env.NODE_ENV !== \"production\") && !type) {\n warn$1(`Invalid vnode type when creating vnode: ${type}.`);\n }\n type = Comment;\n }\n if (isVNode(type)) {\n const cloned = cloneVNode(\n type,\n props,\n true\n /* mergeRef: true */\n );\n if (children) {\n normalizeChildren(cloned, children);\n }\n if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {\n if (cloned.shapeFlag & 6) {\n currentBlock[currentBlock.indexOf(type)] = cloned;\n } else {\n currentBlock.push(cloned);\n }\n }\n cloned.patchFlag |= -2;\n return cloned;\n }\n if (isClassComponent(type)) {\n type = type.__vccOpts;\n }\n {\n type = convertLegacyComponent(type, currentRenderingInstance);\n }\n if (props) {\n props = guardReactiveProps(props);\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (isObject(style)) {\n if (isProxy(style) && !isArray(style)) {\n style = extend({}, style);\n }\n props.style = normalizeStyle(style);\n }\n }\n const shapeFlag = isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject(type) ? 4 : isFunction(type) ? 2 : 0;\n if (!!(process.env.NODE_ENV !== \"production\") && shapeFlag & 4 && isProxy(type)) {\n type = toRaw(type);\n warn$1(\n `Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with \\`markRaw\\` or using \\`shallowRef\\` instead of \\`ref\\`.`,\n `\nComponent that was made reactive: `,\n type\n );\n }\n return createBaseVNode(\n type,\n props,\n children,\n patchFlag,\n dynamicProps,\n shapeFlag,\n isBlockNode,\n true\n );\n}\nfunction guardReactiveProps(props) {\n if (!props)\n return null;\n return isProxy(props) || InternalObjectKey in props ? extend({}, props) : props;\n}\nfunction cloneVNode(vnode, extraProps, mergeRef = false) {\n const { props, ref, patchFlag, children } = vnode;\n const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;\n const cloned = {\n __v_isVNode: true,\n __v_skip: true,\n type: vnode.type,\n props: mergedProps,\n key: mergedProps && normalizeKey(mergedProps),\n ref: extraProps && extraProps.ref ? (\n // #2078 in the case of <component :is=\"vnode\" ref=\"extra\"/>\n // if the vnode itself already has a ref, cloneVNode will need to merge\n // the refs so the single vnode can be set on multiple refs\n mergeRef && ref ? isArray(ref) ? ref.concat(normalizeRef(extraProps)) : [ref, normalizeRef(extraProps)] : normalizeRef(extraProps)\n ) : ref,\n scopeId: vnode.scopeId,\n slotScopeIds: vnode.slotScopeIds,\n children: !!(process.env.NODE_ENV !== \"production\") && patchFlag === -1 && isArray(children) ? children.map(deepCloneVNode) : children,\n target: vnode.target,\n targetAnchor: vnode.targetAnchor,\n staticCount: vnode.staticCount,\n shapeFlag: vnode.shapeFlag,\n // if the vnode is cloned with extra props, we can no longer assume its\n // existing patch flag to be reliable and need to add the FULL_PROPS flag.\n // note: preserve flag for fragments since they use the flag for children\n // fast paths only.\n patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag,\n dynamicProps: vnode.dynamicProps,\n dynamicChildren: vnode.dynamicChildren,\n appContext: vnode.appContext,\n dirs: vnode.dirs,\n transition: vnode.transition,\n // These should technically only be non-null on mounted VNodes. However,\n // they *should* be copied for kept-alive vnodes. So we just always copy\n // them since them being non-null during a mount doesn't affect the logic as\n // they will simply be overwritten.\n component: vnode.component,\n suspense: vnode.suspense,\n ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),\n ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),\n el: vnode.el,\n anchor: vnode.anchor,\n ctx: vnode.ctx,\n ce: vnode.ce\n };\n {\n defineLegacyVNodeProperties(cloned);\n }\n return cloned;\n}\nfunction deepCloneVNode(vnode) {\n const cloned = cloneVNode(vnode);\n if (isArray(vnode.children)) {\n cloned.children = vnode.children.map(deepCloneVNode);\n }\n return cloned;\n}\nfunction createTextVNode(text = \" \", flag = 0) {\n return createVNode(Text, null, text, flag);\n}\nfunction createStaticVNode(content, numberOfNodes) {\n const vnode = createVNode(Static, null, content);\n vnode.staticCount = numberOfNodes;\n return vnode;\n}\nfunction createCommentVNode(text = \"\", asBlock = false) {\n return asBlock ? (openBlock(), createBlock(Comment, null, text)) : createVNode(Comment, null, text);\n}\nfunction normalizeVNode(child) {\n if (child == null || typeof child === \"boolean\") {\n return createVNode(Comment);\n } else if (isArray(child)) {\n return createVNode(\n Fragment,\n null,\n // #3666, avoid reference pollution when reusing vnode\n child.slice()\n );\n } else if (typeof child === \"object\") {\n return cloneIfMounted(child);\n } else {\n return createVNode(Text, null, String(child));\n }\n}\nfunction cloneIfMounted(child) {\n return child.el === null && child.patchFlag !== -1 || child.memo ? child : cloneVNode(child);\n}\nfunction normalizeChildren(vnode, children) {\n let type = 0;\n const { shapeFlag } = vnode;\n if (children == null) {\n children = null;\n } else if (isArray(children)) {\n type = 16;\n } else if (typeof children === \"object\") {\n if (shapeFlag & (1 | 64)) {\n const slot = children.default;\n if (slot) {\n slot._c && (slot._d = false);\n normalizeChildren(vnode, slot());\n slot._c && (slot._d = true);\n }\n return;\n } else {\n type = 32;\n const slotFlag = children._;\n if (!slotFlag && !(InternalObjectKey in children)) {\n children._ctx = currentRenderingInstance;\n } else if (slotFlag === 3 && currentRenderingInstance) {\n if (currentRenderingInstance.slots._ === 1) {\n children._ = 1;\n } else {\n children._ = 2;\n vnode.patchFlag |= 1024;\n }\n }\n }\n } else if (isFunction(children)) {\n children = { default: children, _ctx: currentRenderingInstance };\n type = 32;\n } else {\n children = String(children);\n if (shapeFlag & 64) {\n type = 16;\n children = [createTextVNode(children)];\n } else {\n type = 8;\n }\n }\n vnode.children = children;\n vnode.shapeFlag |= type;\n}\nfunction mergeProps(...args) {\n const ret = {};\n for (let i = 0; i < args.length; i++) {\n const toMerge = args[i];\n for (const key in toMerge) {\n if (key === \"class\") {\n if (ret.class !== toMerge.class) {\n ret.class = normalizeClass([ret.class, toMerge.class]);\n }\n } else if (key === \"style\") {\n ret.style = normalizeStyle([ret.style, toMerge.style]);\n } else if (isOn(key)) {\n const existing = ret[key];\n const incoming = toMerge[key];\n if (incoming && existing !== incoming && !(isArray(existing) && existing.includes(incoming))) {\n ret[key] = existing ? [].concat(existing, incoming) : incoming;\n }\n } else if (key !== \"\") {\n ret[key] = toMerge[key];\n }\n }\n }\n return ret;\n}\nfunction invokeVNodeHook(hook, instance, vnode, prevVNode = null) {\n callWithAsyncErrorHandling(hook, instance, 7, [\n vnode,\n prevVNode\n ]);\n}\n\nconst emptyAppContext = createAppContext();\nlet uid = 0;\nfunction createComponentInstance(vnode, parent, suspense) {\n const type = vnode.type;\n const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;\n const instance = {\n uid: uid++,\n vnode,\n type,\n parent,\n appContext,\n root: null,\n // to be immediately set\n next: null,\n subTree: null,\n // will be set synchronously right after creation\n effect: null,\n update: null,\n // will be set synchronously right after creation\n scope: new EffectScope(\n true\n /* detached */\n ),\n render: null,\n proxy: null,\n exposed: null,\n exposeProxy: null,\n withProxy: null,\n provides: parent ? parent.provides : Object.create(appContext.provides),\n accessCache: null,\n renderCache: [],\n // local resolved assets\n components: null,\n directives: null,\n // resolved props and emits options\n propsOptions: normalizePropsOptions(type, appContext),\n emitsOptions: normalizeEmitsOptions(type, appContext),\n // emit\n emit: null,\n // to be set immediately\n emitted: null,\n // props default value\n propsDefaults: EMPTY_OBJ,\n // inheritAttrs\n inheritAttrs: type.inheritAttrs,\n // state\n ctx: EMPTY_OBJ,\n data: EMPTY_OBJ,\n props: EMPTY_OBJ,\n attrs: EMPTY_OBJ,\n slots: EMPTY_OBJ,\n refs: EMPTY_OBJ,\n setupState: EMPTY_OBJ,\n setupContext: null,\n attrsProxy: null,\n slotsProxy: null,\n // suspense related\n suspense,\n suspenseId: suspense ? suspense.pendingId : 0,\n asyncDep: null,\n asyncResolved: false,\n // lifecycle hooks\n // not using enums here because it results in computed properties\n isMounted: false,\n isUnmounted: false,\n isDeactivated: false,\n bc: null,\n c: null,\n bm: null,\n m: null,\n bu: null,\n u: null,\n um: null,\n bum: null,\n da: null,\n a: null,\n rtg: null,\n rtc: null,\n ec: null,\n sp: null\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n instance.ctx = createDevRenderContext(instance);\n } else {\n instance.ctx = { _: instance };\n }\n instance.root = parent ? parent.root : instance;\n instance.emit = emit.bind(null, instance);\n if (vnode.ce) {\n vnode.ce(instance);\n }\n return instance;\n}\nlet currentInstance = null;\nconst getCurrentInstance = () => currentInstance || currentRenderingInstance;\nlet internalSetCurrentInstance;\nlet setInSSRSetupState;\n{\n const g = getGlobalThis();\n const registerGlobalSetter = (key, setter) => {\n let setters;\n if (!(setters = g[key]))\n setters = g[key] = [];\n setters.push(setter);\n return (v) => {\n if (setters.length > 1)\n setters.forEach((set) => set(v));\n else\n setters[0](v);\n };\n };\n internalSetCurrentInstance = registerGlobalSetter(\n `__VUE_INSTANCE_SETTERS__`,\n (v) => currentInstance = v\n );\n setInSSRSetupState = registerGlobalSetter(\n `__VUE_SSR_SETTERS__`,\n (v) => isInSSRComponentSetup = v\n );\n}\nconst setCurrentInstance = (instance) => {\n const prev = currentInstance;\n internalSetCurrentInstance(instance);\n instance.scope.on();\n return () => {\n instance.scope.off();\n internalSetCurrentInstance(prev);\n };\n};\nconst unsetCurrentInstance = () => {\n currentInstance && currentInstance.scope.off();\n internalSetCurrentInstance(null);\n};\nconst isBuiltInTag = /* @__PURE__ */ makeMap(\"slot,component\");\nfunction validateComponentName(name, config) {\n const appIsNativeTag = config.isNativeTag || NO;\n if (isBuiltInTag(name) || appIsNativeTag(name)) {\n warn$1(\n \"Do not use built-in or reserved HTML elements as component id: \" + name\n );\n }\n}\nfunction isStatefulComponent(instance) {\n return instance.vnode.shapeFlag & 4;\n}\nlet isInSSRComponentSetup = false;\nfunction setupComponent(instance, isSSR = false) {\n isSSR && setInSSRSetupState(isSSR);\n const { props, children } = instance.vnode;\n const isStateful = isStatefulComponent(instance);\n initProps(instance, props, isStateful, isSSR);\n initSlots(instance, children);\n const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;\n isSSR && setInSSRSetupState(false);\n return setupResult;\n}\nfunction setupStatefulComponent(instance, isSSR) {\n var _a;\n const Component = instance.type;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (Component.name) {\n validateComponentName(Component.name, instance.appContext.config);\n }\n if (Component.components) {\n const names = Object.keys(Component.components);\n for (let i = 0; i < names.length; i++) {\n validateComponentName(names[i], instance.appContext.config);\n }\n }\n if (Component.directives) {\n const names = Object.keys(Component.directives);\n for (let i = 0; i < names.length; i++) {\n validateDirectiveName(names[i]);\n }\n }\n if (Component.compilerOptions && isRuntimeOnly()) {\n warn$1(\n `\"compilerOptions\" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.`\n );\n }\n }\n instance.accessCache = /* @__PURE__ */ Object.create(null);\n instance.proxy = markRaw(new Proxy(instance.ctx, PublicInstanceProxyHandlers));\n if (!!(process.env.NODE_ENV !== \"production\")) {\n exposePropsOnRenderContext(instance);\n }\n const { setup } = Component;\n if (setup) {\n const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;\n const reset = setCurrentInstance(instance);\n pauseTracking();\n const setupResult = callWithErrorHandling(\n setup,\n instance,\n 0,\n [\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(instance.props) : instance.props,\n setupContext\n ]\n );\n resetTracking();\n reset();\n if (isPromise(setupResult)) {\n setupResult.then(unsetCurrentInstance, unsetCurrentInstance);\n if (isSSR) {\n return setupResult.then((resolvedResult) => {\n handleSetupResult(instance, resolvedResult, isSSR);\n }).catch((e) => {\n handleError(e, instance, 0);\n });\n } else {\n instance.asyncDep = setupResult;\n if (!!(process.env.NODE_ENV !== \"production\") && !instance.suspense) {\n const name = (_a = Component.name) != null ? _a : \"Anonymous\";\n warn$1(\n `Component <${name}>: setup function returned a promise, but no <Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.`\n );\n }\n }\n } else {\n handleSetupResult(instance, setupResult, isSSR);\n }\n } else {\n finishComponentSetup(instance, isSSR);\n }\n}\nfunction handleSetupResult(instance, setupResult, isSSR) {\n if (isFunction(setupResult)) {\n if (instance.type.__ssrInlineRender) {\n instance.ssrRender = setupResult;\n } else {\n instance.render = setupResult;\n }\n } else if (isObject(setupResult)) {\n if (!!(process.env.NODE_ENV !== \"production\") && isVNode(setupResult)) {\n warn$1(\n `setup() should not return VNodes directly - return a render function instead.`\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.devtoolsRawSetupState = setupResult;\n }\n instance.setupState = proxyRefs(setupResult);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n exposeSetupStateOnRenderContext(instance);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupResult !== void 0) {\n warn$1(\n `setup() should return an object. Received: ${setupResult === null ? \"null\" : typeof setupResult}`\n );\n }\n finishComponentSetup(instance, isSSR);\n}\nlet compile;\nlet installWithProxy;\nfunction registerRuntimeCompiler(_compile) {\n compile = _compile;\n installWithProxy = (i) => {\n if (i.render._rc) {\n i.withProxy = new Proxy(i.ctx, RuntimeCompiledPublicInstanceProxyHandlers);\n }\n };\n}\nconst isRuntimeOnly = () => !compile;\nfunction finishComponentSetup(instance, isSSR, skipOptions) {\n const Component = instance.type;\n {\n convertLegacyRenderFn(instance);\n if (!!(process.env.NODE_ENV !== \"production\") && Component.compatConfig) {\n validateCompatConfig(Component.compatConfig);\n }\n }\n if (!instance.render) {\n if (!isSSR && compile && !Component.render) {\n const template = instance.vnode.props && instance.vnode.props[\"inline-template\"] || Component.template || resolveMergedOptions(instance).template;\n if (template) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `compile`);\n }\n const { isCustomElement, compilerOptions } = instance.appContext.config;\n const { delimiters, compilerOptions: componentCompilerOptions } = Component;\n const finalCompilerOptions = extend(\n extend(\n {\n isCustomElement,\n delimiters\n },\n compilerOptions\n ),\n componentCompilerOptions\n );\n {\n finalCompilerOptions.compatConfig = Object.create(globalCompatConfig);\n if (Component.compatConfig) {\n extend(finalCompilerOptions.compatConfig, Component.compatConfig);\n }\n }\n Component.render = compile(template, finalCompilerOptions);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `compile`);\n }\n }\n }\n instance.render = Component.render || NOOP;\n if (installWithProxy) {\n installWithProxy(instance);\n }\n }\n if (__VUE_OPTIONS_API__ && !skipOptions) {\n const reset = setCurrentInstance(instance);\n pauseTracking();\n try {\n applyOptions(instance);\n } finally {\n resetTracking();\n reset();\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !Component.render && instance.render === NOOP && !isSSR) {\n if (!compile && Component.template) {\n warn$1(\n `Component provided template option but runtime compilation is not supported in this build of Vue.` + (` Configure your bundler to alias \"vue\" to \"vue/dist/vue.esm-bundler.js\".` )\n );\n } else {\n warn$1(`Component is missing template or render function.`);\n }\n }\n}\nfunction getAttrsProxy(instance) {\n return instance.attrsProxy || (instance.attrsProxy = new Proxy(\n instance.attrs,\n !!(process.env.NODE_ENV !== \"production\") ? {\n get(target, key) {\n markAttrsAccessed();\n track(instance, \"get\", \"$attrs\");\n return target[key];\n },\n set() {\n warn$1(`setupContext.attrs is readonly.`);\n return false;\n },\n deleteProperty() {\n warn$1(`setupContext.attrs is readonly.`);\n return false;\n }\n } : {\n get(target, key) {\n track(instance, \"get\", \"$attrs\");\n return target[key];\n }\n }\n ));\n}\nfunction getSlotsProxy(instance) {\n return instance.slotsProxy || (instance.slotsProxy = new Proxy(instance.slots, {\n get(target, key) {\n track(instance, \"get\", \"$slots\");\n return target[key];\n }\n }));\n}\nfunction createSetupContext(instance) {\n const expose = (exposed) => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (instance.exposed) {\n warn$1(`expose() should be called only once per setup().`);\n }\n if (exposed != null) {\n let exposedType = typeof exposed;\n if (exposedType === \"object\") {\n if (isArray(exposed)) {\n exposedType = \"array\";\n } else if (isRef(exposed)) {\n exposedType = \"ref\";\n }\n }\n if (exposedType !== \"object\") {\n warn$1(\n `expose() should be passed a plain object, received ${exposedType}.`\n );\n }\n }\n }\n instance.exposed = exposed || {};\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n return Object.freeze({\n get attrs() {\n return getAttrsProxy(instance);\n },\n get slots() {\n return getSlotsProxy(instance);\n },\n get emit() {\n return (event, ...args) => instance.emit(event, ...args);\n },\n expose\n });\n } else {\n return {\n get attrs() {\n return getAttrsProxy(instance);\n },\n slots: instance.slots,\n emit: instance.emit,\n expose\n };\n }\n}\nfunction getExposeProxy(instance) {\n if (instance.exposed) {\n return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {\n get(target, key) {\n if (key in target) {\n return target[key];\n } else if (key in publicPropertiesMap) {\n return publicPropertiesMap[key](instance);\n }\n },\n has(target, key) {\n return key in target || key in publicPropertiesMap;\n }\n }));\n }\n}\nconst classifyRE = /(?:^|[-_])(\\w)/g;\nconst classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, \"\");\nfunction getComponentName(Component, includeInferred = true) {\n return isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;\n}\nfunction formatComponentName(instance, Component, isRoot = false) {\n let name = getComponentName(Component);\n if (!name && Component.__file) {\n const match = Component.__file.match(/([^/\\\\]+)\\.\\w+$/);\n if (match) {\n name = match[1];\n }\n }\n if (!name && instance && instance.parent) {\n const inferFromRegistry = (registry) => {\n for (const key in registry) {\n if (registry[key] === Component) {\n return key;\n }\n }\n };\n name = inferFromRegistry(\n instance.components || instance.parent.type.components\n ) || inferFromRegistry(instance.appContext.components);\n }\n return name ? classify(name) : isRoot ? `App` : `Anonymous`;\n}\nfunction isClassComponent(value) {\n return isFunction(value) && \"__vccOpts\" in value;\n}\n\nconst computed = (getterOrOptions, debugOptions) => {\n return computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);\n};\n\nfunction useModel(props, name, options = EMPTY_OBJ) {\n const i = getCurrentInstance();\n if (!!(process.env.NODE_ENV !== \"production\") && !i) {\n warn$1(`useModel() called without active instance.`);\n return ref();\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !i.propsOptions[0][name]) {\n warn$1(`useModel() called with prop \"${name}\" which is not declared.`);\n return ref();\n }\n const camelizedName = camelize(name);\n const hyphenatedName = hyphenate(name);\n const res = customRef((track, trigger) => {\n let localValue;\n watchSyncEffect(() => {\n const propValue = props[name];\n if (hasChanged(localValue, propValue)) {\n localValue = propValue;\n trigger();\n }\n });\n return {\n get() {\n track();\n return options.get ? options.get(localValue) : localValue;\n },\n set(value) {\n const rawProps = i.vnode.props;\n if (!(rawProps && // check if parent has passed v-model\n (name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps)) && hasChanged(value, localValue)) {\n localValue = value;\n trigger();\n }\n i.emit(`update:${name}`, options.set ? options.set(value) : value);\n }\n };\n });\n const modifierKey = name === \"modelValue\" ? \"modelModifiers\" : `${name}Modifiers`;\n res[Symbol.iterator] = () => {\n let i2 = 0;\n return {\n next() {\n if (i2 < 2) {\n return { value: i2++ ? props[modifierKey] || {} : res, done: false };\n } else {\n return { done: true };\n }\n }\n };\n };\n return res;\n}\n\nfunction h(type, propsOrChildren, children) {\n const l = arguments.length;\n if (l === 2) {\n if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {\n if (isVNode(propsOrChildren)) {\n return createVNode(type, null, [propsOrChildren]);\n }\n return createVNode(type, propsOrChildren);\n } else {\n return createVNode(type, null, propsOrChildren);\n }\n } else {\n if (l > 3) {\n children = Array.prototype.slice.call(arguments, 2);\n } else if (l === 3 && isVNode(children)) {\n children = [children];\n }\n return createVNode(type, propsOrChildren, children);\n }\n}\n\nfunction initCustomFormatter() {\n if (!!!(process.env.NODE_ENV !== \"production\") || typeof window === \"undefined\") {\n return;\n }\n const vueStyle = { style: \"color:#3ba776\" };\n const numberStyle = { style: \"color:#1677ff\" };\n const stringStyle = { style: \"color:#f5222d\" };\n const keywordStyle = { style: \"color:#eb2f96\" };\n const formatter = {\n header(obj) {\n if (!isObject(obj)) {\n return null;\n }\n if (obj.__isVue) {\n return [\"div\", vueStyle, `VueInstance`];\n } else if (isRef(obj)) {\n return [\n \"div\",\n {},\n [\"span\", vueStyle, genRefFlag(obj)],\n \"<\",\n formatValue(obj.value),\n `>`\n ];\n } else if (isReactive(obj)) {\n return [\n \"div\",\n {},\n [\"span\", vueStyle, isShallow(obj) ? \"ShallowReactive\" : \"Reactive\"],\n \"<\",\n formatValue(obj),\n `>${isReadonly(obj) ? ` (readonly)` : ``}`\n ];\n } else if (isReadonly(obj)) {\n return [\n \"div\",\n {},\n [\"span\", vueStyle, isShallow(obj) ? \"ShallowReadonly\" : \"Readonly\"],\n \"<\",\n formatValue(obj),\n \">\"\n ];\n }\n return null;\n },\n hasBody(obj) {\n return obj && obj.__isVue;\n },\n body(obj) {\n if (obj && obj.__isVue) {\n return [\n \"div\",\n {},\n ...formatInstance(obj.$)\n ];\n }\n }\n };\n function formatInstance(instance) {\n const blocks = [];\n if (instance.type.props && instance.props) {\n blocks.push(createInstanceBlock(\"props\", toRaw(instance.props)));\n }\n if (instance.setupState !== EMPTY_OBJ) {\n blocks.push(createInstanceBlock(\"setup\", instance.setupState));\n }\n if (instance.data !== EMPTY_OBJ) {\n blocks.push(createInstanceBlock(\"data\", toRaw(instance.data)));\n }\n const computed = extractKeys(instance, \"computed\");\n if (computed) {\n blocks.push(createInstanceBlock(\"computed\", computed));\n }\n const injected = extractKeys(instance, \"inject\");\n if (injected) {\n blocks.push(createInstanceBlock(\"injected\", injected));\n }\n blocks.push([\n \"div\",\n {},\n [\n \"span\",\n {\n style: keywordStyle.style + \";opacity:0.66\"\n },\n \"$ (internal): \"\n ],\n [\"object\", { object: instance }]\n ]);\n return blocks;\n }\n function createInstanceBlock(type, target) {\n target = extend({}, target);\n if (!Object.keys(target).length) {\n return [\"span\", {}];\n }\n return [\n \"div\",\n { style: \"line-height:1.25em;margin-bottom:0.6em\" },\n [\n \"div\",\n {\n style: \"color:#476582\"\n },\n type\n ],\n [\n \"div\",\n {\n style: \"padding-left:1.25em\"\n },\n ...Object.keys(target).map((key) => {\n return [\n \"div\",\n {},\n [\"span\", keywordStyle, key + \": \"],\n formatValue(target[key], false)\n ];\n })\n ]\n ];\n }\n function formatValue(v, asRaw = true) {\n if (typeof v === \"number\") {\n return [\"span\", numberStyle, v];\n } else if (typeof v === \"string\") {\n return [\"span\", stringStyle, JSON.stringify(v)];\n } else if (typeof v === \"boolean\") {\n return [\"span\", keywordStyle, v];\n } else if (isObject(v)) {\n return [\"object\", { object: asRaw ? toRaw(v) : v }];\n } else {\n return [\"span\", stringStyle, String(v)];\n }\n }\n function extractKeys(instance, type) {\n const Comp = instance.type;\n if (isFunction(Comp)) {\n return;\n }\n const extracted = {};\n for (const key in instance.ctx) {\n if (isKeyOfType(Comp, key, type)) {\n extracted[key] = instance.ctx[key];\n }\n }\n return extracted;\n }\n function isKeyOfType(Comp, key, type) {\n const opts = Comp[type];\n if (isArray(opts) && opts.includes(key) || isObject(opts) && key in opts) {\n return true;\n }\n if (Comp.extends && isKeyOfType(Comp.extends, key, type)) {\n return true;\n }\n if (Comp.mixins && Comp.mixins.some((m) => isKeyOfType(m, key, type))) {\n return true;\n }\n }\n function genRefFlag(v) {\n if (isShallow(v)) {\n return `ShallowRef`;\n }\n if (v.effect) {\n return `ComputedRef`;\n }\n return `Ref`;\n }\n if (window.devtoolsFormatters) {\n window.devtoolsFormatters.push(formatter);\n } else {\n window.devtoolsFormatters = [formatter];\n }\n}\n\nfunction withMemo(memo, render, cache, index) {\n const cached = cache[index];\n if (cached && isMemoSame(cached, memo)) {\n return cached;\n }\n const ret = render();\n ret.memo = memo.slice();\n return cache[index] = ret;\n}\nfunction isMemoSame(cached, memo) {\n const prev = cached.memo;\n if (prev.length != memo.length) {\n return false;\n }\n for (let i = 0; i < prev.length; i++) {\n if (hasChanged(prev[i], memo[i])) {\n return false;\n }\n }\n if (isBlockTreeEnabled > 0 && currentBlock) {\n currentBlock.push(cached);\n }\n return true;\n}\n\nconst version = \"3.4.15\";\nconst warn = !!(process.env.NODE_ENV !== \"production\") ? warn$1 : NOOP;\nconst ErrorTypeStrings = ErrorTypeStrings$1 ;\nconst devtools = !!(process.env.NODE_ENV !== \"production\") || true ? devtools$1 : void 0;\nconst setDevtoolsHook = !!(process.env.NODE_ENV !== \"production\") || true ? setDevtoolsHook$1 : NOOP;\nconst _ssrUtils = {\n createComponentInstance,\n setupComponent,\n renderComponentRoot,\n setCurrentRenderingInstance,\n isVNode: isVNode,\n normalizeVNode\n};\nconst ssrUtils = _ssrUtils ;\nconst resolveFilter = resolveFilter$1 ;\nconst _compatUtils = {\n warnDeprecation,\n createCompatVue: createCompatVue$1,\n isCompatEnabled,\n checkCompatEnabled,\n softAssertCompatEnabled\n};\nconst compatUtils = _compatUtils ;\nconst DeprecationTypes = DeprecationTypes$1 ;\n\nconst svgNS = \"http://www.w3.org/2000/svg\";\nconst mathmlNS = \"http://www.w3.org/1998/Math/MathML\";\nconst doc = typeof document !== \"undefined\" ? document : null;\nconst templateContainer = doc && /* @__PURE__ */ doc.createElement(\"template\");\nconst nodeOps = {\n insert: (child, parent, anchor) => {\n parent.insertBefore(child, anchor || null);\n },\n remove: (child) => {\n const parent = child.parentNode;\n if (parent) {\n parent.removeChild(child);\n }\n },\n createElement: (tag, namespace, is, props) => {\n const el = namespace === \"svg\" ? doc.createElementNS(svgNS, tag) : namespace === \"mathml\" ? doc.createElementNS(mathmlNS, tag) : doc.createElement(tag, is ? { is } : void 0);\n if (tag === \"select\" && props && props.multiple != null) {\n el.setAttribute(\"multiple\", props.multiple);\n }\n return el;\n },\n createText: (text) => doc.createTextNode(text),\n createComment: (text) => doc.createComment(text),\n setText: (node, text) => {\n node.nodeValue = text;\n },\n setElementText: (el, text) => {\n el.textContent = text;\n },\n parentNode: (node) => node.parentNode,\n nextSibling: (node) => node.nextSibling,\n querySelector: (selector) => doc.querySelector(selector),\n setScopeId(el, id) {\n el.setAttribute(id, \"\");\n },\n // __UNSAFE__\n // Reason: innerHTML.\n // Static content here can only come from compiled templates.\n // As long as the user only uses trusted templates, this is safe.\n insertStaticContent(content, parent, anchor, namespace, start, end) {\n const before = anchor ? anchor.previousSibling : parent.lastChild;\n if (start && (start === end || start.nextSibling)) {\n while (true) {\n parent.insertBefore(start.cloneNode(true), anchor);\n if (start === end || !(start = start.nextSibling))\n break;\n }\n } else {\n templateContainer.innerHTML = namespace === \"svg\" ? `<svg>${content}</svg>` : namespace === \"mathml\" ? `<math>${content}</math>` : content;\n const template = templateContainer.content;\n if (namespace === \"svg\" || namespace === \"mathml\") {\n const wrapper = template.firstChild;\n while (wrapper.firstChild) {\n template.appendChild(wrapper.firstChild);\n }\n template.removeChild(wrapper);\n }\n parent.insertBefore(template, anchor);\n }\n return [\n // first\n before ? before.nextSibling : parent.firstChild,\n // last\n anchor ? anchor.previousSibling : parent.lastChild\n ];\n }\n};\n\nconst TRANSITION = \"transition\";\nconst ANIMATION = \"animation\";\nconst vtcKey = Symbol(\"_vtc\");\nconst Transition = (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots);\nTransition.displayName = \"Transition\";\n{\n Transition.__isBuiltIn = true;\n}\nconst DOMTransitionPropsValidators = {\n name: String,\n type: String,\n css: {\n type: Boolean,\n default: true\n },\n duration: [String, Number, Object],\n enterFromClass: String,\n enterActiveClass: String,\n enterToClass: String,\n appearFromClass: String,\n appearActiveClass: String,\n appearToClass: String,\n leaveFromClass: String,\n leaveActiveClass: String,\n leaveToClass: String\n};\nconst TransitionPropsValidators = Transition.props = /* @__PURE__ */ extend(\n {},\n BaseTransitionPropsValidators,\n DOMTransitionPropsValidators\n);\nconst callHook = (hook, args = []) => {\n if (isArray(hook)) {\n hook.forEach((h2) => h2(...args));\n } else if (hook) {\n hook(...args);\n }\n};\nconst hasExplicitCallback = (hook) => {\n return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false;\n};\nfunction resolveTransitionProps(rawProps) {\n const baseProps = {};\n for (const key in rawProps) {\n if (!(key in DOMTransitionPropsValidators)) {\n baseProps[key] = rawProps[key];\n }\n }\n if (rawProps.css === false) {\n return baseProps;\n }\n const {\n name = \"v\",\n type,\n duration,\n enterFromClass = `${name}-enter-from`,\n enterActiveClass = `${name}-enter-active`,\n enterToClass = `${name}-enter-to`,\n appearFromClass = enterFromClass,\n appearActiveClass = enterActiveClass,\n appearToClass = enterToClass,\n leaveFromClass = `${name}-leave-from`,\n leaveActiveClass = `${name}-leave-active`,\n leaveToClass = `${name}-leave-to`\n } = rawProps;\n const legacyClassEnabled = compatUtils.isCompatEnabled(\"TRANSITION_CLASSES\", null);\n let legacyEnterFromClass;\n let legacyAppearFromClass;\n let legacyLeaveFromClass;\n if (legacyClassEnabled) {\n const toLegacyClass = (cls) => cls.replace(/-from$/, \"\");\n if (!rawProps.enterFromClass) {\n legacyEnterFromClass = toLegacyClass(enterFromClass);\n }\n if (!rawProps.appearFromClass) {\n legacyAppearFromClass = toLegacyClass(appearFromClass);\n }\n if (!rawProps.leaveFromClass) {\n legacyLeaveFromClass = toLegacyClass(leaveFromClass);\n }\n }\n const durations = normalizeDuration(duration);\n const enterDuration = durations && durations[0];\n const leaveDuration = durations && durations[1];\n const {\n onBeforeEnter,\n onEnter,\n onEnterCancelled,\n onLeave,\n onLeaveCancelled,\n onBeforeAppear = onBeforeEnter,\n onAppear = onEnter,\n onAppearCancelled = onEnterCancelled\n } = baseProps;\n const finishEnter = (el, isAppear, done) => {\n removeTransitionClass(el, isAppear ? appearToClass : enterToClass);\n removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);\n done && done();\n };\n const finishLeave = (el, done) => {\n el._isLeaving = false;\n removeTransitionClass(el, leaveFromClass);\n removeTransitionClass(el, leaveToClass);\n removeTransitionClass(el, leaveActiveClass);\n done && done();\n };\n const makeEnterHook = (isAppear) => {\n return (el, done) => {\n const hook = isAppear ? onAppear : onEnter;\n const resolve = () => finishEnter(el, isAppear, done);\n callHook(hook, [el, resolve]);\n nextFrame(() => {\n removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);\n if (legacyClassEnabled) {\n const legacyClass = isAppear ? legacyAppearFromClass : legacyEnterFromClass;\n if (legacyClass) {\n removeTransitionClass(el, legacyClass);\n }\n }\n addTransitionClass(el, isAppear ? appearToClass : enterToClass);\n if (!hasExplicitCallback(hook)) {\n whenTransitionEnds(el, type, enterDuration, resolve);\n }\n });\n };\n };\n return extend(baseProps, {\n onBeforeEnter(el) {\n callHook(onBeforeEnter, [el]);\n addTransitionClass(el, enterFromClass);\n if (legacyClassEnabled && legacyEnterFromClass) {\n addTransitionClass(el, legacyEnterFromClass);\n }\n addTransitionClass(el, enterActiveClass);\n },\n onBeforeAppear(el) {\n callHook(onBeforeAppear, [el]);\n addTransitionClass(el, appearFromClass);\n if (legacyClassEnabled && legacyAppearFromClass) {\n addTransitionClass(el, legacyAppearFromClass);\n }\n addTransitionClass(el, appearActiveClass);\n },\n onEnter: makeEnterHook(false),\n onAppear: makeEnterHook(true),\n onLeave(el, done) {\n el._isLeaving = true;\n const resolve = () => finishLeave(el, done);\n addTransitionClass(el, leaveFromClass);\n if (legacyClassEnabled && legacyLeaveFromClass) {\n addTransitionClass(el, legacyLeaveFromClass);\n }\n forceReflow();\n addTransitionClass(el, leaveActiveClass);\n nextFrame(() => {\n if (!el._isLeaving) {\n return;\n }\n removeTransitionClass(el, leaveFromClass);\n if (legacyClassEnabled && legacyLeaveFromClass) {\n removeTransitionClass(el, legacyLeaveFromClass);\n }\n addTransitionClass(el, leaveToClass);\n if (!hasExplicitCallback(onLeave)) {\n whenTransitionEnds(el, type, leaveDuration, resolve);\n }\n });\n callHook(onLeave, [el, resolve]);\n },\n onEnterCancelled(el) {\n finishEnter(el, false);\n callHook(onEnterCancelled, [el]);\n },\n onAppearCancelled(el) {\n finishEnter(el, true);\n callHook(onAppearCancelled, [el]);\n },\n onLeaveCancelled(el) {\n finishLeave(el);\n callHook(onLeaveCancelled, [el]);\n }\n });\n}\nfunction normalizeDuration(duration) {\n if (duration == null) {\n return null;\n } else if (isObject(duration)) {\n return [NumberOf(duration.enter), NumberOf(duration.leave)];\n } else {\n const n = NumberOf(duration);\n return [n, n];\n }\n}\nfunction NumberOf(val) {\n const res = toNumber(val);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n assertNumber(res, \"<transition> explicit duration\");\n }\n return res;\n}\nfunction addTransitionClass(el, cls) {\n cls.split(/\\s+/).forEach((c) => c && el.classList.add(c));\n (el[vtcKey] || (el[vtcKey] = /* @__PURE__ */ new Set())).add(cls);\n}\nfunction removeTransitionClass(el, cls) {\n cls.split(/\\s+/).forEach((c) => c && el.classList.remove(c));\n const _vtc = el[vtcKey];\n if (_vtc) {\n _vtc.delete(cls);\n if (!_vtc.size) {\n el[vtcKey] = void 0;\n }\n }\n}\nfunction nextFrame(cb) {\n requestAnimationFrame(() => {\n requestAnimationFrame(cb);\n });\n}\nlet endId = 0;\nfunction whenTransitionEnds(el, expectedType, explicitTimeout, resolve) {\n const id = el._endId = ++endId;\n const resolveIfNotStale = () => {\n if (id === el._endId) {\n resolve();\n }\n };\n if (explicitTimeout) {\n return setTimeout(resolveIfNotStale, explicitTimeout);\n }\n const { type, timeout, propCount } = getTransitionInfo(el, expectedType);\n if (!type) {\n return resolve();\n }\n const endEvent = type + \"end\";\n let ended = 0;\n const end = () => {\n el.removeEventListener(endEvent, onEnd);\n resolveIfNotStale();\n };\n const onEnd = (e) => {\n if (e.target === el && ++ended >= propCount) {\n end();\n }\n };\n setTimeout(() => {\n if (ended < propCount) {\n end();\n }\n }, timeout + 1);\n el.addEventListener(endEvent, onEnd);\n}\nfunction getTransitionInfo(el, expectedType) {\n const styles = window.getComputedStyle(el);\n const getStyleProperties = (key) => (styles[key] || \"\").split(\", \");\n const transitionDelays = getStyleProperties(`${TRANSITION}Delay`);\n const transitionDurations = getStyleProperties(`${TRANSITION}Duration`);\n const transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n const animationDelays = getStyleProperties(`${ANIMATION}Delay`);\n const animationDurations = getStyleProperties(`${ANIMATION}Duration`);\n const animationTimeout = getTimeout(animationDelays, animationDurations);\n let type = null;\n let timeout = 0;\n let propCount = 0;\n if (expectedType === TRANSITION) {\n if (transitionTimeout > 0) {\n type = TRANSITION;\n timeout = transitionTimeout;\n propCount = transitionDurations.length;\n }\n } else if (expectedType === ANIMATION) {\n if (animationTimeout > 0) {\n type = ANIMATION;\n timeout = animationTimeout;\n propCount = animationDurations.length;\n }\n } else {\n timeout = Math.max(transitionTimeout, animationTimeout);\n type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null;\n propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0;\n }\n const hasTransform = type === TRANSITION && /\\b(transform|all)(,|$)/.test(\n getStyleProperties(`${TRANSITION}Property`).toString()\n );\n return {\n type,\n timeout,\n propCount,\n hasTransform\n };\n}\nfunction getTimeout(delays, durations) {\n while (delays.length < durations.length) {\n delays = delays.concat(delays);\n }\n return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));\n}\nfunction toMs(s) {\n if (s === \"auto\")\n return 0;\n return Number(s.slice(0, -1).replace(\",\", \".\")) * 1e3;\n}\nfunction forceReflow() {\n return document.body.offsetHeight;\n}\n\nfunction patchClass(el, value, isSVG) {\n const transitionClasses = el[vtcKey];\n if (transitionClasses) {\n value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(\" \");\n }\n if (value == null) {\n el.removeAttribute(\"class\");\n } else if (isSVG) {\n el.setAttribute(\"class\", value);\n } else {\n el.className = value;\n }\n}\n\nconst vShowOldKey = Symbol(\"_vod\");\nconst vShow = {\n beforeMount(el, { value }, { transition }) {\n el[vShowOldKey] = el.style.display === \"none\" ? \"\" : el.style.display;\n if (transition && value) {\n transition.beforeEnter(el);\n } else {\n setDisplay(el, value);\n }\n },\n mounted(el, { value }, { transition }) {\n if (transition && value) {\n transition.enter(el);\n }\n },\n updated(el, { value, oldValue }, { transition }) {\n if (!value === !oldValue)\n return;\n if (transition) {\n if (value) {\n transition.beforeEnter(el);\n setDisplay(el, true);\n transition.enter(el);\n } else {\n transition.leave(el, () => {\n setDisplay(el, false);\n });\n }\n } else {\n setDisplay(el, value);\n }\n },\n beforeUnmount(el, { value }) {\n setDisplay(el, value);\n }\n};\nif (!!(process.env.NODE_ENV !== \"production\")) {\n vShow.name = \"show\";\n}\nfunction setDisplay(el, value) {\n el.style.display = value ? el[vShowOldKey] : \"none\";\n}\nfunction initVShowForSSR() {\n vShow.getSSRProps = ({ value }) => {\n if (!value) {\n return { style: { display: \"none\" } };\n }\n };\n}\n\nconst CSS_VAR_TEXT = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"CSS_VAR_TEXT\" : \"\");\nfunction useCssVars(getter) {\n const instance = getCurrentInstance();\n if (!instance) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`useCssVars is called without current active component instance.`);\n return;\n }\n const updateTeleports = instance.ut = (vars = getter(instance.proxy)) => {\n Array.from(\n document.querySelectorAll(`[data-v-owner=\"${instance.uid}\"]`)\n ).forEach((node) => setVarsOnNode(node, vars));\n };\n const setVars = () => {\n const vars = getter(instance.proxy);\n setVarsOnVNode(instance.subTree, vars);\n updateTeleports(vars);\n };\n watchPostEffect(setVars);\n onMounted(() => {\n const ob = new MutationObserver(setVars);\n ob.observe(instance.subTree.el.parentNode, { childList: true });\n onUnmounted(() => ob.disconnect());\n });\n}\nfunction setVarsOnVNode(vnode, vars) {\n if (vnode.shapeFlag & 128) {\n const suspense = vnode.suspense;\n vnode = suspense.activeBranch;\n if (suspense.pendingBranch && !suspense.isHydrating) {\n suspense.effects.push(() => {\n setVarsOnVNode(suspense.activeBranch, vars);\n });\n }\n }\n while (vnode.component) {\n vnode = vnode.component.subTree;\n }\n if (vnode.shapeFlag & 1 && vnode.el) {\n setVarsOnNode(vnode.el, vars);\n } else if (vnode.type === Fragment) {\n vnode.children.forEach((c) => setVarsOnVNode(c, vars));\n } else if (vnode.type === Static) {\n let { el, anchor } = vnode;\n while (el) {\n setVarsOnNode(el, vars);\n if (el === anchor)\n break;\n el = el.nextSibling;\n }\n }\n}\nfunction setVarsOnNode(el, vars) {\n if (el.nodeType === 1) {\n const style = el.style;\n let cssText = \"\";\n for (const key in vars) {\n style.setProperty(`--${key}`, vars[key]);\n cssText += `--${key}: ${vars[key]};`;\n }\n style[CSS_VAR_TEXT] = cssText;\n }\n}\n\nfunction patchStyle(el, prev, next) {\n const style = el.style;\n const currentDisplay = style.display;\n const isCssString = isString(next);\n if (next && !isCssString) {\n if (prev && !isString(prev)) {\n for (const key in prev) {\n if (next[key] == null) {\n setStyle(style, key, \"\");\n }\n }\n }\n for (const key in next) {\n setStyle(style, key, next[key]);\n }\n } else {\n if (isCssString) {\n if (prev !== next) {\n const cssVarText = style[CSS_VAR_TEXT];\n if (cssVarText) {\n next += \";\" + cssVarText;\n }\n style.cssText = next;\n }\n } else if (prev) {\n el.removeAttribute(\"style\");\n }\n }\n if (vShowOldKey in el) {\n style.display = currentDisplay;\n }\n}\nconst semicolonRE = /[^\\\\];\\s*$/;\nconst importantRE = /\\s*!important$/;\nfunction setStyle(style, name, val) {\n if (isArray(val)) {\n val.forEach((v) => setStyle(style, name, v));\n } else {\n if (val == null)\n val = \"\";\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (semicolonRE.test(val)) {\n warn(\n `Unexpected semicolon at the end of '${name}' style value: '${val}'`\n );\n }\n }\n if (name.startsWith(\"--\")) {\n style.setProperty(name, val);\n } else {\n const prefixed = autoPrefix(style, name);\n if (importantRE.test(val)) {\n style.setProperty(\n hyphenate(prefixed),\n val.replace(importantRE, \"\"),\n \"important\"\n );\n } else {\n style[prefixed] = val;\n }\n }\n }\n}\nconst prefixes = [\"Webkit\", \"Moz\", \"ms\"];\nconst prefixCache = {};\nfunction autoPrefix(style, rawName) {\n const cached = prefixCache[rawName];\n if (cached) {\n return cached;\n }\n let name = camelize(rawName);\n if (name !== \"filter\" && name in style) {\n return prefixCache[rawName] = name;\n }\n name = capitalize(name);\n for (let i = 0; i < prefixes.length; i++) {\n const prefixed = prefixes[i] + name;\n if (prefixed in style) {\n return prefixCache[rawName] = prefixed;\n }\n }\n return rawName;\n}\n\nconst xlinkNS = \"http://www.w3.org/1999/xlink\";\nfunction patchAttr(el, key, value, isSVG, instance) {\n if (isSVG && key.startsWith(\"xlink:\")) {\n if (value == null) {\n el.removeAttributeNS(xlinkNS, key.slice(6, key.length));\n } else {\n el.setAttributeNS(xlinkNS, key, value);\n }\n } else {\n if (compatCoerceAttr(el, key, value, instance)) {\n return;\n }\n const isBoolean = isSpecialBooleanAttr(key);\n if (value == null || isBoolean && !includeBooleanAttr(value)) {\n el.removeAttribute(key);\n } else {\n el.setAttribute(key, isBoolean ? \"\" : value);\n }\n }\n}\nconst isEnumeratedAttr = /* @__PURE__ */ makeMap(\"contenteditable,draggable,spellcheck\") ;\nfunction compatCoerceAttr(el, key, value, instance = null) {\n if (isEnumeratedAttr(key)) {\n const v2CoercedValue = value === null ? \"false\" : typeof value !== \"boolean\" && value !== void 0 ? \"true\" : null;\n if (v2CoercedValue && compatUtils.softAssertCompatEnabled(\n \"ATTR_ENUMERATED_COERCION\",\n instance,\n key,\n value,\n v2CoercedValue\n )) {\n el.setAttribute(key, v2CoercedValue);\n return true;\n }\n } else if (value === false && !isSpecialBooleanAttr(key) && compatUtils.softAssertCompatEnabled(\n \"ATTR_FALSE_VALUE\",\n instance,\n key\n )) {\n el.removeAttribute(key);\n return true;\n }\n return false;\n}\n\nfunction patchDOMProp(el, key, value, prevChildren, parentComponent, parentSuspense, unmountChildren) {\n if (key === \"innerHTML\" || key === \"textContent\") {\n if (prevChildren) {\n unmountChildren(prevChildren, parentComponent, parentSuspense);\n }\n el[key] = value == null ? \"\" : value;\n return;\n }\n const tag = el.tagName;\n if (key === \"value\" && tag !== \"PROGRESS\" && // custom elements may use _value internally\n !tag.includes(\"-\")) {\n el._value = value;\n const oldValue = tag === \"OPTION\" ? el.getAttribute(\"value\") : el.value;\n const newValue = value == null ? \"\" : value;\n if (oldValue !== newValue) {\n el.value = newValue;\n }\n if (value == null) {\n el.removeAttribute(key);\n }\n return;\n }\n let needRemove = false;\n if (value === \"\" || value == null) {\n const type = typeof el[key];\n if (type === \"boolean\") {\n value = includeBooleanAttr(value);\n } else if (value == null && type === \"string\") {\n value = \"\";\n needRemove = true;\n } else if (type === \"number\") {\n value = 0;\n needRemove = true;\n }\n } else {\n if (value === false && compatUtils.isCompatEnabled(\n \"ATTR_FALSE_VALUE\",\n parentComponent\n )) {\n const type = typeof el[key];\n if (type === \"string\" || type === \"number\") {\n !!(process.env.NODE_ENV !== \"production\") && compatUtils.warnDeprecation(\n \"ATTR_FALSE_VALUE\",\n parentComponent,\n key\n );\n value = type === \"number\" ? 0 : \"\";\n needRemove = true;\n }\n }\n }\n try {\n el[key] = value;\n } catch (e) {\n if (!!(process.env.NODE_ENV !== \"production\") && !needRemove) {\n warn(\n `Failed setting prop \"${key}\" on <${tag.toLowerCase()}>: value ${value} is invalid.`,\n e\n );\n }\n }\n needRemove && el.removeAttribute(key);\n}\n\nfunction addEventListener(el, event, handler, options) {\n el.addEventListener(event, handler, options);\n}\nfunction removeEventListener(el, event, handler, options) {\n el.removeEventListener(event, handler, options);\n}\nconst veiKey = Symbol(\"_vei\");\nfunction patchEvent(el, rawName, prevValue, nextValue, instance = null) {\n const invokers = el[veiKey] || (el[veiKey] = {});\n const existingInvoker = invokers[rawName];\n if (nextValue && existingInvoker) {\n existingInvoker.value = nextValue;\n } else {\n const [name, options] = parseName(rawName);\n if (nextValue) {\n const invoker = invokers[rawName] = createInvoker(nextValue, instance);\n addEventListener(el, name, invoker, options);\n } else if (existingInvoker) {\n removeEventListener(el, name, existingInvoker, options);\n invokers[rawName] = void 0;\n }\n }\n}\nconst optionsModifierRE = /(?:Once|Passive|Capture)$/;\nfunction parseName(name) {\n let options;\n if (optionsModifierRE.test(name)) {\n options = {};\n let m;\n while (m = name.match(optionsModifierRE)) {\n name = name.slice(0, name.length - m[0].length);\n options[m[0].toLowerCase()] = true;\n }\n }\n const event = name[2] === \":\" ? name.slice(3) : hyphenate(name.slice(2));\n return [event, options];\n}\nlet cachedNow = 0;\nconst p = /* @__PURE__ */ Promise.resolve();\nconst getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());\nfunction createInvoker(initialValue, instance) {\n const invoker = (e) => {\n if (!e._vts) {\n e._vts = Date.now();\n } else if (e._vts <= invoker.attached) {\n return;\n }\n callWithAsyncErrorHandling(\n patchStopImmediatePropagation(e, invoker.value),\n instance,\n 5,\n [e]\n );\n };\n invoker.value = initialValue;\n invoker.attached = getNow();\n return invoker;\n}\nfunction patchStopImmediatePropagation(e, value) {\n if (isArray(value)) {\n const originalStop = e.stopImmediatePropagation;\n e.stopImmediatePropagation = () => {\n originalStop.call(e);\n e._stopped = true;\n };\n return value.map((fn) => (e2) => !e2._stopped && fn && fn(e2));\n } else {\n return value;\n }\n}\n\nconst isNativeOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // lowercase letter\nkey.charCodeAt(2) > 96 && key.charCodeAt(2) < 123;\nconst patchProp = (el, key, prevValue, nextValue, namespace, prevChildren, parentComponent, parentSuspense, unmountChildren) => {\n const isSVG = namespace === \"svg\";\n if (key === \"class\") {\n patchClass(el, nextValue, isSVG);\n } else if (key === \"style\") {\n patchStyle(el, prevValue, nextValue);\n } else if (isOn(key)) {\n if (!isModelListener(key)) {\n patchEvent(el, key, prevValue, nextValue, parentComponent);\n }\n } else if (key[0] === \".\" ? (key = key.slice(1), true) : key[0] === \"^\" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) {\n patchDOMProp(\n el,\n key,\n nextValue,\n prevChildren,\n parentComponent,\n parentSuspense,\n unmountChildren\n );\n } else {\n if (key === \"true-value\") {\n el._trueValue = nextValue;\n } else if (key === \"false-value\") {\n el._falseValue = nextValue;\n }\n patchAttr(el, key, nextValue, isSVG, parentComponent);\n }\n};\nfunction shouldSetAsProp(el, key, value, isSVG) {\n if (isSVG) {\n if (key === \"innerHTML\" || key === \"textContent\") {\n return true;\n }\n if (key in el && isNativeOn(key) && isFunction(value)) {\n return true;\n }\n return false;\n }\n if (key === \"spellcheck\" || key === \"draggable\" || key === \"translate\") {\n return false;\n }\n if (key === \"form\") {\n return false;\n }\n if (key === \"list\" && el.tagName === \"INPUT\") {\n return false;\n }\n if (key === \"type\" && el.tagName === \"TEXTAREA\") {\n return false;\n }\n if (key === \"width\" || key === \"height\") {\n const tag = el.tagName;\n if (tag === \"IMG\" || tag === \"VIDEO\" || tag === \"CANVAS\" || tag === \"SOURCE\") {\n return false;\n }\n }\n if (isNativeOn(key) && isString(value)) {\n return false;\n }\n return key in el;\n}\n\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineCustomElement(options, hydrate2) {\n const Comp = defineComponent(options);\n class VueCustomElement extends VueElement {\n constructor(initialProps) {\n super(Comp, initialProps, hydrate2);\n }\n }\n VueCustomElement.def = Comp;\n return VueCustomElement;\n}\n/*! #__NO_SIDE_EFFECTS__ */\nconst defineSSRCustomElement = /* @__NO_SIDE_EFFECTS__ */ (options) => {\n return /* @__PURE__ */ defineCustomElement(options, hydrate);\n};\nconst BaseClass = typeof HTMLElement !== \"undefined\" ? HTMLElement : class {\n};\nclass VueElement extends BaseClass {\n constructor(_def, _props = {}, hydrate2) {\n super();\n this._def = _def;\n this._props = _props;\n /**\n * @internal\n */\n this._instance = null;\n this._connected = false;\n this._resolved = false;\n this._numberProps = null;\n this._ob = null;\n if (this.shadowRoot && hydrate2) {\n hydrate2(this._createVNode(), this.shadowRoot);\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && this.shadowRoot) {\n warn(\n `Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use \\`defineSSRCustomElement\\`.`\n );\n }\n this.attachShadow({ mode: \"open\" });\n if (!this._def.__asyncLoader) {\n this._resolveProps(this._def);\n }\n }\n }\n connectedCallback() {\n this._connected = true;\n if (!this._instance) {\n if (this._resolved) {\n this._update();\n } else {\n this._resolveDef();\n }\n }\n }\n disconnectedCallback() {\n this._connected = false;\n if (this._ob) {\n this._ob.disconnect();\n this._ob = null;\n }\n nextTick(() => {\n if (!this._connected) {\n render(null, this.shadowRoot);\n this._instance = null;\n }\n });\n }\n /**\n * resolve inner component definition (handle possible async component)\n */\n _resolveDef() {\n this._resolved = true;\n for (let i = 0; i < this.attributes.length; i++) {\n this._setAttr(this.attributes[i].name);\n }\n this._ob = new MutationObserver((mutations) => {\n for (const m of mutations) {\n this._setAttr(m.attributeName);\n }\n });\n this._ob.observe(this, { attributes: true });\n const resolve = (def, isAsync = false) => {\n const { props, styles } = def;\n let numberProps;\n if (props && !isArray(props)) {\n for (const key in props) {\n const opt = props[key];\n if (opt === Number || opt && opt.type === Number) {\n if (key in this._props) {\n this._props[key] = toNumber(this._props[key]);\n }\n (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[camelize(key)] = true;\n }\n }\n }\n this._numberProps = numberProps;\n if (isAsync) {\n this._resolveProps(def);\n }\n this._applyStyles(styles);\n this._update();\n };\n const asyncDef = this._def.__asyncLoader;\n if (asyncDef) {\n asyncDef().then((def) => resolve(def, true));\n } else {\n resolve(this._def);\n }\n }\n _resolveProps(def) {\n const { props } = def;\n const declaredPropKeys = isArray(props) ? props : Object.keys(props || {});\n for (const key of Object.keys(this)) {\n if (key[0] !== \"_\" && declaredPropKeys.includes(key)) {\n this._setProp(key, this[key], true, false);\n }\n }\n for (const key of declaredPropKeys.map(camelize)) {\n Object.defineProperty(this, key, {\n get() {\n return this._getProp(key);\n },\n set(val) {\n this._setProp(key, val);\n }\n });\n }\n }\n _setAttr(key) {\n let value = this.getAttribute(key);\n const camelKey = camelize(key);\n if (this._numberProps && this._numberProps[camelKey]) {\n value = toNumber(value);\n }\n this._setProp(camelKey, value, false);\n }\n /**\n * @internal\n */\n _getProp(key) {\n return this._props[key];\n }\n /**\n * @internal\n */\n _setProp(key, val, shouldReflect = true, shouldUpdate = true) {\n if (val !== this._props[key]) {\n this._props[key] = val;\n if (shouldUpdate && this._instance) {\n this._update();\n }\n if (shouldReflect) {\n if (val === true) {\n this.setAttribute(hyphenate(key), \"\");\n } else if (typeof val === \"string\" || typeof val === \"number\") {\n this.setAttribute(hyphenate(key), val + \"\");\n } else if (!val) {\n this.removeAttribute(hyphenate(key));\n }\n }\n }\n }\n _update() {\n render(this._createVNode(), this.shadowRoot);\n }\n _createVNode() {\n const vnode = createVNode(this._def, extend({}, this._props));\n if (!this._instance) {\n vnode.ce = (instance) => {\n this._instance = instance;\n instance.isCE = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n instance.ceReload = (newStyles) => {\n if (this._styles) {\n this._styles.forEach((s) => this.shadowRoot.removeChild(s));\n this._styles.length = 0;\n }\n this._applyStyles(newStyles);\n this._instance = null;\n this._update();\n };\n }\n const dispatch = (event, args) => {\n this.dispatchEvent(\n new CustomEvent(event, {\n detail: args\n })\n );\n };\n instance.emit = (event, ...args) => {\n dispatch(event, args);\n if (hyphenate(event) !== event) {\n dispatch(hyphenate(event), args);\n }\n };\n let parent = this;\n while (parent = parent && (parent.parentNode || parent.host)) {\n if (parent instanceof VueElement) {\n instance.parent = parent._instance;\n instance.provides = parent._instance.provides;\n break;\n }\n }\n };\n }\n return vnode;\n }\n _applyStyles(styles) {\n if (styles) {\n styles.forEach((css) => {\n const s = document.createElement(\"style\");\n s.textContent = css;\n this.shadowRoot.appendChild(s);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (this._styles || (this._styles = [])).push(s);\n }\n });\n }\n }\n}\n\nfunction useCssModule(name = \"$style\") {\n {\n const instance = getCurrentInstance();\n if (!instance) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`useCssModule must be called inside setup()`);\n return EMPTY_OBJ;\n }\n const modules = instance.type.__cssModules;\n if (!modules) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`Current instance does not have CSS modules injected.`);\n return EMPTY_OBJ;\n }\n const mod = modules[name];\n if (!mod) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`Current instance does not have CSS module named \"${name}\".`);\n return EMPTY_OBJ;\n }\n return mod;\n }\n}\n\nconst positionMap = /* @__PURE__ */ new WeakMap();\nconst newPositionMap = /* @__PURE__ */ new WeakMap();\nconst moveCbKey = Symbol(\"_moveCb\");\nconst enterCbKey = Symbol(\"_enterCb\");\nconst TransitionGroupImpl = {\n name: \"TransitionGroup\",\n props: /* @__PURE__ */ extend({}, TransitionPropsValidators, {\n tag: String,\n moveClass: String\n }),\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n let prevChildren;\n let children;\n onUpdated(() => {\n if (!prevChildren.length) {\n return;\n }\n const moveClass = props.moveClass || `${props.name || \"v\"}-move`;\n if (!hasCSSTransform(\n prevChildren[0].el,\n instance.vnode.el,\n moveClass\n )) {\n return;\n }\n prevChildren.forEach(callPendingCbs);\n prevChildren.forEach(recordPosition);\n const movedChildren = prevChildren.filter(applyTranslation);\n forceReflow();\n movedChildren.forEach((c) => {\n const el = c.el;\n const style = el.style;\n addTransitionClass(el, moveClass);\n style.transform = style.webkitTransform = style.transitionDuration = \"\";\n const cb = el[moveCbKey] = (e) => {\n if (e && e.target !== el) {\n return;\n }\n if (!e || /transform$/.test(e.propertyName)) {\n el.removeEventListener(\"transitionend\", cb);\n el[moveCbKey] = null;\n removeTransitionClass(el, moveClass);\n }\n };\n el.addEventListener(\"transitionend\", cb);\n });\n });\n return () => {\n const rawProps = toRaw(props);\n const cssTransitionProps = resolveTransitionProps(rawProps);\n let tag = rawProps.tag || Fragment;\n if (!rawProps.tag && compatUtils.checkCompatEnabled(\n \"TRANSITION_GROUP_ROOT\",\n instance.parent\n )) {\n tag = \"span\";\n }\n prevChildren = children;\n children = slots.default ? getTransitionRawChildren(slots.default()) : [];\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (child.key != null) {\n setTransitionHooks(\n child,\n resolveTransitionHooks(child, cssTransitionProps, state, instance)\n );\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`<TransitionGroup> children must be keyed.`);\n }\n }\n if (prevChildren) {\n for (let i = 0; i < prevChildren.length; i++) {\n const child = prevChildren[i];\n setTransitionHooks(\n child,\n resolveTransitionHooks(child, cssTransitionProps, state, instance)\n );\n positionMap.set(child, child.el.getBoundingClientRect());\n }\n }\n return createVNode(tag, null, children);\n };\n }\n};\n{\n TransitionGroupImpl.__isBuiltIn = true;\n}\nconst removeMode = (props) => delete props.mode;\n/* @__PURE__ */ removeMode(TransitionGroupImpl.props);\nconst TransitionGroup = TransitionGroupImpl;\nfunction callPendingCbs(c) {\n const el = c.el;\n if (el[moveCbKey]) {\n el[moveCbKey]();\n }\n if (el[enterCbKey]) {\n el[enterCbKey]();\n }\n}\nfunction recordPosition(c) {\n newPositionMap.set(c, c.el.getBoundingClientRect());\n}\nfunction applyTranslation(c) {\n const oldPos = positionMap.get(c);\n const newPos = newPositionMap.get(c);\n const dx = oldPos.left - newPos.left;\n const dy = oldPos.top - newPos.top;\n if (dx || dy) {\n const s = c.el.style;\n s.transform = s.webkitTransform = `translate(${dx}px,${dy}px)`;\n s.transitionDuration = \"0s\";\n return c;\n }\n}\nfunction hasCSSTransform(el, root, moveClass) {\n const clone = el.cloneNode();\n const _vtc = el[vtcKey];\n if (_vtc) {\n _vtc.forEach((cls) => {\n cls.split(/\\s+/).forEach((c) => c && clone.classList.remove(c));\n });\n }\n moveClass.split(/\\s+/).forEach((c) => c && clone.classList.add(c));\n clone.style.display = \"none\";\n const container = root.nodeType === 1 ? root : root.parentNode;\n container.appendChild(clone);\n const { hasTransform } = getTransitionInfo(clone);\n container.removeChild(clone);\n return hasTransform;\n}\n\nconst getModelAssigner = (vnode) => {\n const fn = vnode.props[\"onUpdate:modelValue\"] || vnode.props[\"onModelCompat:input\"];\n return isArray(fn) ? (value) => invokeArrayFns(fn, value) : fn;\n};\nfunction onCompositionStart(e) {\n e.target.composing = true;\n}\nfunction onCompositionEnd(e) {\n const target = e.target;\n if (target.composing) {\n target.composing = false;\n target.dispatchEvent(new Event(\"input\"));\n }\n}\nconst assignKey = Symbol(\"_assign\");\nconst vModelText = {\n created(el, { modifiers: { lazy, trim, number } }, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n const castToNumber = number || vnode.props && vnode.props.type === \"number\";\n addEventListener(el, lazy ? \"change\" : \"input\", (e) => {\n if (e.target.composing)\n return;\n let domValue = el.value;\n if (trim) {\n domValue = domValue.trim();\n }\n if (castToNumber) {\n domValue = looseToNumber(domValue);\n }\n el[assignKey](domValue);\n });\n if (trim) {\n addEventListener(el, \"change\", () => {\n el.value = el.value.trim();\n });\n }\n if (!lazy) {\n addEventListener(el, \"compositionstart\", onCompositionStart);\n addEventListener(el, \"compositionend\", onCompositionEnd);\n addEventListener(el, \"change\", onCompositionEnd);\n }\n },\n // set value on mounted so it's after min/max for type=\"range\"\n mounted(el, { value }) {\n el.value = value == null ? \"\" : value;\n },\n beforeUpdate(el, { value, modifiers: { lazy, trim, number } }, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n if (el.composing)\n return;\n const elValue = number || el.type === \"number\" ? looseToNumber(el.value) : el.value;\n const newValue = value == null ? \"\" : value;\n if (elValue === newValue) {\n return;\n }\n if (document.activeElement === el && el.type !== \"range\") {\n if (lazy) {\n return;\n }\n if (trim && el.value.trim() === newValue) {\n return;\n }\n }\n el.value = newValue;\n }\n};\nconst vModelCheckbox = {\n // #4096 array checkboxes need to be deep traversed\n deep: true,\n created(el, _, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n addEventListener(el, \"change\", () => {\n const modelValue = el._modelValue;\n const elementValue = getValue(el);\n const checked = el.checked;\n const assign = el[assignKey];\n if (isArray(modelValue)) {\n const index = looseIndexOf(modelValue, elementValue);\n const found = index !== -1;\n if (checked && !found) {\n assign(modelValue.concat(elementValue));\n } else if (!checked && found) {\n const filtered = [...modelValue];\n filtered.splice(index, 1);\n assign(filtered);\n }\n } else if (isSet(modelValue)) {\n const cloned = new Set(modelValue);\n if (checked) {\n cloned.add(elementValue);\n } else {\n cloned.delete(elementValue);\n }\n assign(cloned);\n } else {\n assign(getCheckboxValue(el, checked));\n }\n });\n },\n // set initial checked on mount to wait for true-value/false-value\n mounted: setChecked,\n beforeUpdate(el, binding, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n setChecked(el, binding, vnode);\n }\n};\nfunction setChecked(el, { value, oldValue }, vnode) {\n el._modelValue = value;\n if (isArray(value)) {\n el.checked = looseIndexOf(value, vnode.props.value) > -1;\n } else if (isSet(value)) {\n el.checked = value.has(vnode.props.value);\n } else if (value !== oldValue) {\n el.checked = looseEqual(value, getCheckboxValue(el, true));\n }\n}\nconst vModelRadio = {\n created(el, { value }, vnode) {\n el.checked = looseEqual(value, vnode.props.value);\n el[assignKey] = getModelAssigner(vnode);\n addEventListener(el, \"change\", () => {\n el[assignKey](getValue(el));\n });\n },\n beforeUpdate(el, { value, oldValue }, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n if (value !== oldValue) {\n el.checked = looseEqual(value, vnode.props.value);\n }\n }\n};\nconst vModelSelect = {\n // <select multiple> value need to be deep traversed\n deep: true,\n created(el, { value, modifiers: { number } }, vnode) {\n const isSetModel = isSet(value);\n addEventListener(el, \"change\", () => {\n const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map(\n (o) => number ? looseToNumber(getValue(o)) : getValue(o)\n );\n el[assignKey](\n el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0]\n );\n el._assigning = true;\n nextTick(() => {\n el._assigning = false;\n });\n });\n el[assignKey] = getModelAssigner(vnode);\n },\n // set value in mounted & updated because <select> relies on its children\n // <option>s.\n mounted(el, { value, oldValue, modifiers: { number } }) {\n setSelected(el, value, oldValue, number);\n },\n beforeUpdate(el, _binding, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n },\n updated(el, { value, oldValue, modifiers: { number } }) {\n if (!el._assigning) {\n setSelected(el, value, oldValue, number);\n }\n }\n};\nfunction setSelected(el, value, oldValue, number) {\n const isMultiple = el.multiple;\n const isArrayValue = isArray(value);\n if (isMultiple && !isArrayValue && !isSet(value)) {\n !!(process.env.NODE_ENV !== \"production\") && warn(\n `<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(value).slice(8, -1)}.`\n );\n return;\n }\n if (isArrayValue && looseEqual(value, oldValue)) {\n return;\n }\n for (let i = 0, l = el.options.length; i < l; i++) {\n const option = el.options[i];\n const optionValue = getValue(option);\n if (isMultiple) {\n if (isArrayValue) {\n const optionType = typeof optionValue;\n if (optionType === \"string\" || optionType === \"number\") {\n option.selected = value.includes(\n number ? looseToNumber(optionValue) : optionValue\n );\n } else {\n option.selected = looseIndexOf(value, optionValue) > -1;\n }\n } else {\n option.selected = value.has(optionValue);\n }\n } else {\n if (looseEqual(getValue(option), value)) {\n if (el.selectedIndex !== i)\n el.selectedIndex = i;\n return;\n }\n }\n }\n if (!isMultiple && el.selectedIndex !== -1) {\n el.selectedIndex = -1;\n }\n}\nfunction getValue(el) {\n return \"_value\" in el ? el._value : el.value;\n}\nfunction getCheckboxValue(el, checked) {\n const key = checked ? \"_trueValue\" : \"_falseValue\";\n return key in el ? el[key] : checked;\n}\nconst vModelDynamic = {\n created(el, binding, vnode) {\n callModelHook(el, binding, vnode, null, \"created\");\n },\n mounted(el, binding, vnode) {\n callModelHook(el, binding, vnode, null, \"mounted\");\n },\n beforeUpdate(el, binding, vnode, prevVNode) {\n callModelHook(el, binding, vnode, prevVNode, \"beforeUpdate\");\n },\n updated(el, binding, vnode, prevVNode) {\n callModelHook(el, binding, vnode, prevVNode, \"updated\");\n }\n};\nfunction resolveDynamicModel(tagName, type) {\n switch (tagName) {\n case \"SELECT\":\n return vModelSelect;\n case \"TEXTAREA\":\n return vModelText;\n default:\n switch (type) {\n case \"checkbox\":\n return vModelCheckbox;\n case \"radio\":\n return vModelRadio;\n default:\n return vModelText;\n }\n }\n}\nfunction callModelHook(el, binding, vnode, prevVNode, hook) {\n const modelToUse = resolveDynamicModel(\n el.tagName,\n vnode.props && vnode.props.type\n );\n const fn = modelToUse[hook];\n fn && fn(el, binding, vnode, prevVNode);\n}\nfunction initVModelForSSR() {\n vModelText.getSSRProps = ({ value }) => ({ value });\n vModelRadio.getSSRProps = ({ value }, vnode) => {\n if (vnode.props && looseEqual(vnode.props.value, value)) {\n return { checked: true };\n }\n };\n vModelCheckbox.getSSRProps = ({ value }, vnode) => {\n if (isArray(value)) {\n if (vnode.props && looseIndexOf(value, vnode.props.value) > -1) {\n return { checked: true };\n }\n } else if (isSet(value)) {\n if (vnode.props && value.has(vnode.props.value)) {\n return { checked: true };\n }\n } else if (value) {\n return { checked: true };\n }\n };\n vModelDynamic.getSSRProps = (binding, vnode) => {\n if (typeof vnode.type !== \"string\") {\n return;\n }\n const modelToUse = resolveDynamicModel(\n // resolveDynamicModel expects an uppercase tag name, but vnode.type is lowercase\n vnode.type.toUpperCase(),\n vnode.props && vnode.props.type\n );\n if (modelToUse.getSSRProps) {\n return modelToUse.getSSRProps(binding, vnode);\n }\n };\n}\n\nconst systemModifiers = [\"ctrl\", \"shift\", \"alt\", \"meta\"];\nconst modifierGuards = {\n stop: (e) => e.stopPropagation(),\n prevent: (e) => e.preventDefault(),\n self: (e) => e.target !== e.currentTarget,\n ctrl: (e) => !e.ctrlKey,\n shift: (e) => !e.shiftKey,\n alt: (e) => !e.altKey,\n meta: (e) => !e.metaKey,\n left: (e) => \"button\" in e && e.button !== 0,\n middle: (e) => \"button\" in e && e.button !== 1,\n right: (e) => \"button\" in e && e.button !== 2,\n exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m))\n};\nconst withModifiers = (fn, modifiers) => {\n const cache = fn._withMods || (fn._withMods = {});\n const cacheKey = modifiers.join(\".\");\n return cache[cacheKey] || (cache[cacheKey] = (event, ...args) => {\n for (let i = 0; i < modifiers.length; i++) {\n const guard = modifierGuards[modifiers[i]];\n if (guard && guard(event, modifiers))\n return;\n }\n return fn(event, ...args);\n });\n};\nconst keyNames = {\n esc: \"escape\",\n space: \" \",\n up: \"arrow-up\",\n left: \"arrow-left\",\n right: \"arrow-right\",\n down: \"arrow-down\",\n delete: \"backspace\"\n};\nconst withKeys = (fn, modifiers) => {\n let globalKeyCodes;\n let instance = null;\n {\n instance = getCurrentInstance();\n if (compatUtils.isCompatEnabled(\"CONFIG_KEY_CODES\", instance)) {\n if (instance) {\n globalKeyCodes = instance.appContext.config.keyCodes;\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && modifiers.some((m) => /^\\d+$/.test(m))) {\n compatUtils.warnDeprecation(\n \"V_ON_KEYCODE_MODIFIER\",\n instance\n );\n }\n }\n const cache = fn._withKeys || (fn._withKeys = {});\n const cacheKey = modifiers.join(\".\");\n return cache[cacheKey] || (cache[cacheKey] = (event) => {\n if (!(\"key\" in event)) {\n return;\n }\n const eventKey = hyphenate(event.key);\n if (modifiers.some((k) => k === eventKey || keyNames[k] === eventKey)) {\n return fn(event);\n }\n {\n const keyCode = String(event.keyCode);\n if (compatUtils.isCompatEnabled(\n \"V_ON_KEYCODE_MODIFIER\",\n instance\n ) && modifiers.some((mod) => mod == keyCode)) {\n return fn(event);\n }\n if (globalKeyCodes) {\n for (const mod of modifiers) {\n const codes = globalKeyCodes[mod];\n if (codes) {\n const matches = isArray(codes) ? codes.some((code) => String(code) === keyCode) : String(codes) === keyCode;\n if (matches) {\n return fn(event);\n }\n }\n }\n }\n }\n });\n};\n\nconst rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);\nlet renderer;\nlet enabledHydration = false;\nfunction ensureRenderer() {\n return renderer || (renderer = createRenderer(rendererOptions));\n}\nfunction ensureHydrationRenderer() {\n renderer = enabledHydration ? renderer : createHydrationRenderer(rendererOptions);\n enabledHydration = true;\n return renderer;\n}\nconst render = (...args) => {\n ensureRenderer().render(...args);\n};\nconst hydrate = (...args) => {\n ensureHydrationRenderer().hydrate(...args);\n};\nconst createApp = (...args) => {\n const app = ensureRenderer().createApp(...args);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n injectNativeTagCheck(app);\n injectCompilerOptionsCheck(app);\n }\n const { mount } = app;\n app.mount = (containerOrSelector) => {\n const container = normalizeContainer(containerOrSelector);\n if (!container)\n return;\n const component = app._component;\n if (!isFunction(component) && !component.render && !component.template) {\n component.template = container.innerHTML;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (let i = 0; i < container.attributes.length; i++) {\n const attr = container.attributes[i];\n if (attr.name !== \"v-cloak\" && /^(v-|:|@)/.test(attr.name)) {\n compatUtils.warnDeprecation(\n \"GLOBAL_MOUNT_CONTAINER\",\n null\n );\n break;\n }\n }\n }\n }\n container.innerHTML = \"\";\n const proxy = mount(container, false, resolveRootNamespace(container));\n if (container instanceof Element) {\n container.removeAttribute(\"v-cloak\");\n container.setAttribute(\"data-v-app\", \"\");\n }\n return proxy;\n };\n return app;\n};\nconst createSSRApp = (...args) => {\n const app = ensureHydrationRenderer().createApp(...args);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n injectNativeTagCheck(app);\n injectCompilerOptionsCheck(app);\n }\n const { mount } = app;\n app.mount = (containerOrSelector) => {\n const container = normalizeContainer(containerOrSelector);\n if (container) {\n return mount(container, true, resolveRootNamespace(container));\n }\n };\n return app;\n};\nfunction resolveRootNamespace(container) {\n if (container instanceof SVGElement) {\n return \"svg\";\n }\n if (typeof MathMLElement === \"function\" && container instanceof MathMLElement) {\n return \"mathml\";\n }\n}\nfunction injectNativeTagCheck(app) {\n Object.defineProperty(app.config, \"isNativeTag\", {\n value: (tag) => isHTMLTag(tag) || isSVGTag(tag) || isMathMLTag(tag),\n writable: false\n });\n}\nfunction injectCompilerOptionsCheck(app) {\n if (isRuntimeOnly()) {\n const isCustomElement = app.config.isCustomElement;\n Object.defineProperty(app.config, \"isCustomElement\", {\n get() {\n return isCustomElement;\n },\n set() {\n warn(\n `The \\`isCustomElement\\` config option is deprecated. Use \\`compilerOptions.isCustomElement\\` instead.`\n );\n }\n });\n const compilerOptions = app.config.compilerOptions;\n const msg = `The \\`compilerOptions\\` config option is only respected when using a build of Vue.js that includes the runtime compiler (aka \"full build\"). Since you are using the runtime-only build, \\`compilerOptions\\` must be passed to \\`@vue/compiler-dom\\` in the build setup instead.\n- For vue-loader: pass it via vue-loader's \\`compilerOptions\\` loader option.\n- For vue-cli: see https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader\n- For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-sfc`;\n Object.defineProperty(app.config, \"compilerOptions\", {\n get() {\n warn(msg);\n return compilerOptions;\n },\n set() {\n warn(msg);\n }\n });\n }\n}\nfunction normalizeContainer(container) {\n if (isString(container)) {\n const res = document.querySelector(container);\n if (!!(process.env.NODE_ENV !== \"production\") && !res) {\n warn(\n `Failed to mount app: mount target selector \"${container}\" returned null.`\n );\n }\n return res;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && window.ShadowRoot && container instanceof window.ShadowRoot && container.mode === \"closed\") {\n warn(\n `mounting on a ShadowRoot with \\`{mode: \"closed\"}\\` may lead to unpredictable bugs`\n );\n }\n return container;\n}\nlet ssrDirectiveInitialized = false;\nconst initDirectivesForSSR = () => {\n if (!ssrDirectiveInitialized) {\n ssrDirectiveInitialized = true;\n initVModelForSSR();\n initVShowForSSR();\n }\n} ;\n\nvar runtimeDom = /*#__PURE__*/Object.freeze({\n __proto__: null,\n BaseTransition: BaseTransition,\n BaseTransitionPropsValidators: BaseTransitionPropsValidators,\n Comment: Comment,\n DeprecationTypes: DeprecationTypes,\n EffectScope: EffectScope,\n ErrorCodes: ErrorCodes,\n ErrorTypeStrings: ErrorTypeStrings,\n Fragment: Fragment,\n KeepAlive: KeepAlive,\n ReactiveEffect: ReactiveEffect,\n Static: Static,\n Suspense: Suspense,\n Teleport: Teleport,\n Text: Text,\n TrackOpTypes: TrackOpTypes,\n Transition: Transition,\n TransitionGroup: TransitionGroup,\n TriggerOpTypes: TriggerOpTypes,\n VueElement: VueElement,\n assertNumber: assertNumber,\n callWithAsyncErrorHandling: callWithAsyncErrorHandling,\n callWithErrorHandling: callWithErrorHandling,\n camelize: camelize,\n capitalize: capitalize,\n cloneVNode: cloneVNode,\n compatUtils: compatUtils,\n computed: computed,\n createApp: createApp,\n createBlock: createBlock,\n createCommentVNode: createCommentVNode,\n createElementBlock: createElementBlock,\n createElementVNode: createBaseVNode,\n createHydrationRenderer: createHydrationRenderer,\n createPropsRestProxy: createPropsRestProxy,\n createRenderer: createRenderer,\n createSSRApp: createSSRApp,\n createSlots: createSlots,\n createStaticVNode: createStaticVNode,\n createTextVNode: createTextVNode,\n createVNode: createVNode,\n customRef: customRef,\n defineAsyncComponent: defineAsyncComponent,\n defineComponent: defineComponent,\n defineCustomElement: defineCustomElement,\n defineEmits: defineEmits,\n defineExpose: defineExpose,\n defineModel: defineModel,\n defineOptions: defineOptions,\n defineProps: defineProps,\n defineSSRCustomElement: defineSSRCustomElement,\n defineSlots: defineSlots,\n devtools: devtools,\n effect: effect,\n effectScope: effectScope,\n getCurrentInstance: getCurrentInstance,\n getCurrentScope: getCurrentScope,\n getTransitionRawChildren: getTransitionRawChildren,\n guardReactiveProps: guardReactiveProps,\n h: h,\n handleError: handleError,\n hasInjectionContext: hasInjectionContext,\n hydrate: hydrate,\n initCustomFormatter: initCustomFormatter,\n initDirectivesForSSR: initDirectivesForSSR,\n inject: inject,\n isMemoSame: isMemoSame,\n isProxy: isProxy,\n isReactive: isReactive,\n isReadonly: isReadonly,\n isRef: isRef,\n isRuntimeOnly: isRuntimeOnly,\n isShallow: isShallow,\n isVNode: isVNode,\n markRaw: markRaw,\n mergeDefaults: mergeDefaults,\n mergeModels: mergeModels,\n mergeProps: mergeProps,\n nextTick: nextTick,\n normalizeClass: normalizeClass,\n normalizeProps: normalizeProps,\n normalizeStyle: normalizeStyle,\n onActivated: onActivated,\n onBeforeMount: onBeforeMount,\n onBeforeUnmount: onBeforeUnmount,\n onBeforeUpdate: onBeforeUpdate,\n onDeactivated: onDeactivated,\n onErrorCaptured: onErrorCaptured,\n onMounted: onMounted,\n onRenderTracked: onRenderTracked,\n onRenderTriggered: onRenderTriggered,\n onScopeDispose: onScopeDispose,\n onServerPrefetch: onServerPrefetch,\n onUnmounted: onUnmounted,\n onUpdated: onUpdated,\n openBlock: openBlock,\n popScopeId: popScopeId,\n provide: provide,\n proxyRefs: proxyRefs,\n pushScopeId: pushScopeId,\n queuePostFlushCb: queuePostFlushCb,\n reactive: reactive,\n readonly: readonly,\n ref: ref,\n registerRuntimeCompiler: registerRuntimeCompiler,\n render: render,\n renderList: renderList,\n renderSlot: renderSlot,\n resolveComponent: resolveComponent,\n resolveDirective: resolveDirective,\n resolveDynamicComponent: resolveDynamicComponent,\n resolveFilter: resolveFilter,\n resolveTransitionHooks: resolveTransitionHooks,\n setBlockTracking: setBlockTracking,\n setDevtoolsHook: setDevtoolsHook,\n setTransitionHooks: setTransitionHooks,\n shallowReactive: shallowReactive,\n shallowReadonly: shallowReadonly,\n shallowRef: shallowRef,\n ssrContextKey: ssrContextKey,\n ssrUtils: ssrUtils,\n stop: stop,\n toDisplayString: toDisplayString,\n toHandlerKey: toHandlerKey,\n toHandlers: toHandlers,\n toRaw: toRaw,\n toRef: toRef,\n toRefs: toRefs,\n toValue: toValue,\n transformVNodeArgs: transformVNodeArgs,\n triggerRef: triggerRef,\n unref: unref,\n useAttrs: useAttrs,\n useCssModule: useCssModule,\n useCssVars: useCssVars,\n useModel: useModel,\n useSSRContext: useSSRContext,\n useSlots: useSlots,\n useTransitionState: useTransitionState,\n vModelCheckbox: vModelCheckbox,\n vModelDynamic: vModelDynamic,\n vModelRadio: vModelRadio,\n vModelSelect: vModelSelect,\n vModelText: vModelText,\n vShow: vShow,\n version: version,\n warn: warn,\n watch: watch,\n watchEffect: watchEffect,\n watchPostEffect: watchPostEffect,\n watchSyncEffect: watchSyncEffect,\n withAsyncContext: withAsyncContext,\n withCtx: withCtx,\n withDefaults: withDefaults,\n withDirectives: withDirectives,\n withKeys: withKeys,\n withMemo: withMemo,\n withModifiers: withModifiers,\n withScopeId: withScopeId\n});\n\nfunction initDev() {\n {\n initCustomFormatter();\n }\n}\n\nif (!!(process.env.NODE_ENV !== \"production\")) {\n initDev();\n}\nfunction wrappedCreateApp(...args) {\n const app = createApp(...args);\n if (compatUtils.isCompatEnabled(\"RENDER_FUNCTION\", null)) {\n app.component(\"__compat__transition\", Transition);\n app.component(\"__compat__transition-group\", TransitionGroup);\n app.component(\"__compat__keep-alive\", KeepAlive);\n app._context.directives.show = vShow;\n app._context.directives.model = vModelDynamic;\n }\n return app;\n}\nfunction createCompatVue() {\n const Vue = compatUtils.createCompatVue(createApp, wrappedCreateApp);\n extend(Vue, runtimeDom);\n return Vue;\n}\n\nconst Vue = createCompatVue();\nVue.compile = () => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Runtime compilation is not supported in this build of Vue.` + (` Configure your bundler to alias \"vue\" to \"@vue/compat/dist/vue.esm-bundler.js\".` )\n );\n }\n};\nvar Vue$1 = Vue;\n\nconst { configureCompat } = Vue$1;\n\nexport { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, EffectScope, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, ReactiveEffect, Static, Suspense, Teleport, Text, TrackOpTypes, Transition, TransitionGroup, TriggerOpTypes, VueElement, assertNumber, callWithAsyncErrorHandling, callWithErrorHandling, camelize, capitalize, cloneVNode, compatUtils, computed, configureCompat, createApp, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSSRApp, createSlots, createStaticVNode, createTextVNode, createVNode, customRef, Vue$1 as default, defineAsyncComponent, defineComponent, defineCustomElement, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSSRCustomElement, defineSlots, devtools, effect, effectScope, getCurrentInstance, getCurrentScope, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, hydrate, initCustomFormatter, initDirectivesForSSR, inject, isMemoSame, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isShallow, isVNode, markRaw, mergeDefaults, mergeModels, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, proxyRefs, pushScopeId, queuePostFlushCb, reactive, readonly, ref, registerRuntimeCompiler, render, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, shallowReactive, shallowReadonly, shallowRef, ssrContextKey, ssrUtils, stop, toDisplayString, toHandlerKey, toHandlers, toRaw, toRef, toRefs, toValue, transformVNodeArgs, triggerRef, unref, useAttrs, useCssModule, useCssVars, useModel, useSSRContext, useSlots, useTransitionState, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, vShow, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withKeys, withMemo, withModifiers, withScopeId };\n","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_vue_advanced_chat = _resolveComponent(\"vue-advanced-chat\")!\n\n return (_openBlock(), _createBlock(_component_vue_advanced_chat, {\n \"current-user-id\": _ctx.currentUserId,\n \"rooms-loaded\": _ctx.rooms.length > 0,\n \"messages-loaded\": _ctx.messagesLoaded || null,\n \"single-room\": \"true\",\n rooms: JSON.stringify(_ctx.rooms),\n \"room-id\": _ctx.rooms[0].roomId,\n \"show-files\": \"false\",\n \"show-emojis\": \"true\",\n \"show-reaction-emojis\": \"false\",\n \"show-audio\": \"false\",\n messages: JSON.stringify(_ctx.messages),\n \"message-actions\": \n JSON.stringify([\n {\n name: 'replyMessage',\n title: 'Répondre'\n }\n ])\n ,\n \"link-options\": JSON.stringify({ disabled: false, target: '_self' }),\n \"text-messages\": \n JSON.stringify({\n ROOMS_EMPTY: 'Aucune conversation',\n ROOM_EMPTY: 'Aucune conversation sélectionnée',\n NEW_MESSAGES: 'Nouveaux messages',\n MESSAGE_DELETED: 'Ce message a été supprimé',\n MESSAGES_EMPTY: 'Aucun message',\n CONVERSATION_STARTED: 'La conversation a commencée le :',\n TYPE_MESSAGE: 'Tapez votre message',\n SEARCH: 'Rechercher',\n IS_ONLINE: 'est en ligne',\n LAST_SEEN: 'dernière connexion ',\n IS_TYPING: 'est en train de taper...'\n })\n ,\n onSendMessage: _cache[0] || (_cache[0] = ($event: any) => (_ctx.sendMessage($event.detail[0])))\n }, null, 8, [\"current-user-id\", \"rooms-loaded\", \"messages-loaded\", \"rooms\", \"room-id\", \"messages\", \"message-actions\", \"link-options\", \"text-messages\"]))\n}","<template>\n <vue-advanced-chat\n :current-user-id=\"currentUserId\"\n :rooms-loaded=\"rooms.length > 0\"\n :messages-loaded=\"messagesLoaded || null\"\n single-room=\"true\"\n :rooms=\"JSON.stringify(rooms)\"\n :room-id=\"rooms[0].roomId\"\n show-files=\"false\"\n show-emojis=\"true\"\n show-reaction-emojis=\"false\"\n show-audio=\"false\"\n :messages=\"JSON.stringify(messages)\"\n :message-actions=\"\n JSON.stringify([\n {\n name: 'replyMessage',\n title: 'Répondre'\n }\n ])\n \"\n :link-options=\"JSON.stringify({ disabled: false, target: '_self' })\"\n :text-messages=\"\n JSON.stringify({\n ROOMS_EMPTY: 'Aucune conversation',\n ROOM_EMPTY: 'Aucune conversation sélectionnée',\n NEW_MESSAGES: 'Nouveaux messages',\n MESSAGE_DELETED: 'Ce message a été supprimé',\n MESSAGES_EMPTY: 'Aucun message',\n CONVERSATION_STARTED: 'La conversation a commencée le :',\n TYPE_MESSAGE: 'Tapez votre message',\n SEARCH: 'Rechercher',\n IS_ONLINE: 'est en ligne',\n LAST_SEEN: 'dernière connexion ',\n IS_TYPING: 'est en train de taper...'\n })\n \"\n @send-message=\"sendMessage($event.detail[0])\"\n />\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from \"vue\"\nimport { Message, Room, register } from \"vue-advanced-chat\"\nregister()\n\ninterface BaseComponentData {\n socket: WebSocket | null\n rooms: Room[]\n messagesLoaded: boolean\n messages: Message[]\n currentUserId: string | null\n}\n\nexport default defineComponent({\n data(): BaseComponentData {\n return {\n socket: null,\n rooms: [\n {\n roomId: \"global\",\n roomName: \"\",\n avatar: \"\",\n users: []\n }\n ],\n messagesLoaded: false,\n messages: [],\n currentUserId: null\n }\n },\n\n mounted() {\n // get room info\n let roomInfoStr: string | null = \"\"\n const roomInfoElm = document.getElementById(\"room-info\")\n if (roomInfoElm) roomInfoStr = roomInfoElm.textContent\n let roomInfo: any = null\n if (roomInfoStr) roomInfo = JSON.parse(roomInfoStr)\n else throw \"No room info provided\"\n this.rooms = [\n {\n roomId: roomInfo.room_name,\n roomName: roomInfo.room_title,\n avatar: \"\",\n // add fake users to make sure username are displayed in the chat (if less than two, name are not displayed)\n users: [\n {\n _id: \"1\",\n username: \"Fake user 1\",\n avatar: \"assets/imgs/doe.png\",\n status: {\n state: \"online\",\n lastChanged: \"today, 14:30\"\n }\n },\n {\n _id: \"2\",\n username: \"Fake user 2\",\n avatar: \"assets/imgs/snow.png\",\n status: {\n state: \"online\",\n lastChanged: \"14 July, 20:00\"\n }\n },\n {\n _id: \"3\",\n username: \"Fake user 3\",\n avatar: \"assets/imgs/snow.png\",\n status: {\n state: \"online\",\n lastChanged: \"14 July, 20:00\"\n }\n }\n ]\n }\n ]\n this.connect(roomInfo.room_name)\n this.currentUserId = roomInfo.user_id\n },\n\n methods: {\n connect(roomName: string) {\n // connect to socket\n let protocol = \"wss\"\n if (window.location.protocol != \"https:\") protocol = \"ws\"\n this.socket = new WebSocket(protocol + \"://\" + window.location.host + \"/ws/chat/\" + roomName + \"/\")\n this.fetchMessages()\n\n this.socket.onclose = () => {\n console.log(\"Chat socket closed\")\n // try to reconnect\n // setTimeout(() => {\n // this.connect(roomName)\n // }, 10000)\n }\n },\n\n async fetchMessages() {\n this.socket!.onmessage = (e) => {\n const data = JSON.parse(e.data)\n const type = data.type\n // do not load messages in case of socket reconnect\n if (type == \"initial\" && this.messagesLoaded) return\n const newMessages = data.messages as Message[]\n this.messages = [...this.messages, ...newMessages]\n if (type == \"initial\") {\n this.messagesLoaded = true\n }\n }\n },\n\n sendMessage({ content, replyMessage }: Message) {\n /** send message to socket */\n this.socket!.send(\n JSON.stringify({\n message: content,\n replyTo: replyMessage ? replyMessage._id : null\n })\n )\n }\n },\n\n computed: {\n showAudio() {\n return undefined\n }\n }\n})\n</script>\n\n<style>\n.vac-message-wrapper .vac-offset-current {\n margin-left: 15%;\n}\n.vac-message-wrapper .vac-message-box {\n max-width: 80%;\n}\n</style>\n","function makeMap$2(str, expectsLowerCase) {\n const map = /* @__PURE__ */ Object.create(null);\n const list2 = str.split(\",\");\n for (let i = 0; i < list2.length; i++) {\n map[list2[i]] = true;\n }\n return expectsLowerCase ? (val) => !!map[val.toLowerCase()] : (val) => !!map[val];\n}\nconst NOOP$1 = () => {\n};\nconst extend$2 = Object.assign;\nconst hasOwnProperty$3 = Object.prototype.hasOwnProperty;\nconst hasOwn$1 = (val, key) => hasOwnProperty$3.call(val, key);\nconst isArray$2 = Array.isArray;\nconst isMap$1 = (val) => toTypeString$1(val) === \"[object Map]\";\nconst isFunction$2 = (val) => typeof val === \"function\";\nconst isString$2 = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject$2 = (val) => val !== null && typeof val === \"object\";\nconst objectToString$1 = Object.prototype.toString;\nconst toTypeString$1 = (value) => objectToString$1.call(value);\nconst toRawType = (value) => {\n return toTypeString$1(value).slice(8, -1);\n};\nconst isIntegerKey = (key) => isString$2(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst hasChanged$1 = (value, oldValue) => !Object.is(value, oldValue);\nconst def$1 = (obj, key, value) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n value\n });\n};\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.active = true;\n this.effects = [];\n this.cleanups = [];\n if (!detached && activeEffectScope) {\n this.parent = activeEffectScope;\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;\n }\n }\n run(fn) {\n if (this.active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n }\n }\n on() {\n activeEffectScope = this;\n }\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this.active) {\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n if (this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.active = false;\n }\n }\n}\nfunction recordEffectScope(effect, scope = activeEffectScope) {\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nconst createDep = (effects) => {\n const dep = new Set(effects);\n dep.w = 0;\n dep.n = 0;\n return dep;\n};\nconst wasTracked = (dep) => (dep.w & trackOpBit) > 0;\nconst newTracked = (dep) => (dep.n & trackOpBit) > 0;\nconst initDepMarkers = ({ deps }) => {\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].w |= trackOpBit;\n }\n }\n};\nconst finalizeDepMarkers = (effect) => {\n const { deps } = effect;\n if (deps.length) {\n let ptr = 0;\n for (let i = 0; i < deps.length; i++) {\n const dep = deps[i];\n if (wasTracked(dep) && !newTracked(dep)) {\n dep.delete(effect);\n } else {\n deps[ptr++] = dep;\n }\n dep.w &= ~trackOpBit;\n dep.n &= ~trackOpBit;\n }\n deps.length = ptr;\n }\n};\nconst targetMap = /* @__PURE__ */ new WeakMap();\nlet effectTrackDepth = 0;\nlet trackOpBit = 1;\nconst maxMarkerBits = 30;\nlet activeEffect;\nconst ITERATE_KEY = Symbol(\"\");\nconst MAP_KEY_ITERATE_KEY = Symbol(\"\");\nclass ReactiveEffect {\n constructor(fn, scheduler = null, scope) {\n this.fn = fn;\n this.scheduler = scheduler;\n this.active = true;\n this.deps = [];\n this.parent = void 0;\n recordEffectScope(this, scope);\n }\n run() {\n if (!this.active) {\n return this.fn();\n }\n let parent = activeEffect;\n let lastShouldTrack = shouldTrack;\n while (parent) {\n if (parent === this) {\n return;\n }\n parent = parent.parent;\n }\n try {\n this.parent = activeEffect;\n activeEffect = this;\n shouldTrack = true;\n trackOpBit = 1 << ++effectTrackDepth;\n if (effectTrackDepth <= maxMarkerBits) {\n initDepMarkers(this);\n } else {\n cleanupEffect(this);\n }\n return this.fn();\n } finally {\n if (effectTrackDepth <= maxMarkerBits) {\n finalizeDepMarkers(this);\n }\n trackOpBit = 1 << --effectTrackDepth;\n activeEffect = this.parent;\n shouldTrack = lastShouldTrack;\n this.parent = void 0;\n if (this.deferStop) {\n this.stop();\n }\n }\n }\n stop() {\n if (activeEffect === this) {\n this.deferStop = true;\n } else if (this.active) {\n cleanupEffect(this);\n if (this.onStop) {\n this.onStop();\n }\n this.active = false;\n }\n }\n}\nfunction cleanupEffect(effect) {\n const { deps } = effect;\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].delete(effect);\n }\n deps.length = 0;\n }\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction track(target, type, key) {\n if (shouldTrack && activeEffect) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = createDep());\n }\n trackEffects(dep);\n }\n}\nfunction trackEffects(dep, debuggerEventExtraInfo) {\n let shouldTrack2 = false;\n if (effectTrackDepth <= maxMarkerBits) {\n if (!newTracked(dep)) {\n dep.n |= trackOpBit;\n shouldTrack2 = !wasTracked(dep);\n }\n } else {\n shouldTrack2 = !dep.has(activeEffect);\n }\n if (shouldTrack2) {\n dep.add(activeEffect);\n activeEffect.deps.push(dep);\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n return;\n }\n let deps = [];\n if (type === \"clear\") {\n deps = [...depsMap.values()];\n } else if (key === \"length\" && isArray$2(target)) {\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 >= newValue) {\n deps.push(dep);\n }\n });\n } else {\n if (key !== void 0) {\n deps.push(depsMap.get(key));\n }\n switch (type) {\n case \"add\":\n if (!isArray$2(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap$1(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isIntegerKey(key)) {\n deps.push(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!isArray$2(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap$1(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap$1(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n if (deps.length === 1) {\n if (deps[0]) {\n {\n triggerEffects(deps[0]);\n }\n }\n } else {\n const effects = [];\n for (const dep of deps) {\n if (dep) {\n effects.push(...dep);\n }\n }\n {\n triggerEffects(createDep(effects));\n }\n }\n}\nfunction triggerEffects(dep, debuggerEventExtraInfo) {\n const effects = isArray$2(dep) ? dep : [...dep];\n for (const effect of effects) {\n if (effect.computed) {\n triggerEffect(effect);\n }\n }\n for (const effect of effects) {\n if (!effect.computed) {\n triggerEffect(effect);\n }\n }\n}\nfunction triggerEffect(effect, debuggerEventExtraInfo) {\n if (effect !== activeEffect || effect.allowRecurse) {\n if (effect.scheduler) {\n effect.scheduler();\n } else {\n effect.run();\n }\n }\n}\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap$2(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nconst get$1 = /* @__PURE__ */ createGetter();\nconst shallowGet = /* @__PURE__ */ createGetter(false, true);\nconst readonlyGet = /* @__PURE__ */ createGetter(true);\nconst arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations = {};\n [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\", i + \"\");\n }\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n return arr[key](...args.map(toRaw));\n } else {\n return res;\n }\n };\n });\n [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n pauseTracking();\n const res = toRaw(this)[key].apply(this, args);\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n}\nfunction createGetter(isReadonly2 = false, shallow = false) {\n return function get2(target, key, receiver) {\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return shallow;\n } else if (key === \"__v_raw\" && receiver === (isReadonly2 ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target)) {\n return target;\n }\n const targetIsArray = isArray$2(target);\n if (!isReadonly2 && targetIsArray && hasOwn$1(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (shallow) {\n return res;\n }\n if (isRef(res)) {\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject$2(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n };\n}\nconst set$1 = /* @__PURE__ */ createSetter();\nconst shallowSet = /* @__PURE__ */ createSetter(true);\nfunction createSetter(shallow = false) {\n return function set2(target, key, value, receiver) {\n let oldValue = target[key];\n if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) {\n return false;\n }\n if (!shallow && !isReadonly(value)) {\n if (!isShallow(value)) {\n value = toRaw(value);\n oldValue = toRaw(oldValue);\n }\n if (!isArray$2(target) && isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n }\n }\n const hadKey = isArray$2(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn$1(target, key);\n const result = Reflect.set(target, key, value, receiver);\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged$1(value, oldValue)) {\n trigger(target, \"set\", key, value);\n }\n }\n return result;\n };\n}\nfunction deleteProperty(target, key) {\n const hadKey = hasOwn$1(target, key);\n target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0);\n }\n return result;\n}\nfunction has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n}\nfunction ownKeys(target) {\n track(target, \"iterate\", isArray$2(target) ? \"length\" : ITERATE_KEY);\n return Reflect.ownKeys(target);\n}\nconst mutableHandlers = {\n get: get$1,\n set: set$1,\n deleteProperty,\n has,\n ownKeys\n};\nconst readonlyHandlers = {\n get: readonlyGet,\n set(target, key) {\n return true;\n },\n deleteProperty(target, key) {\n return true;\n }\n};\nconst shallowReactiveHandlers = /* @__PURE__ */ extend$2({}, mutableHandlers, {\n get: shallowGet,\n set: shallowSet\n});\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get$1$1(target, key, isReadonly2 = false, isShallow2 = false) {\n target = target[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly2) {\n if (key !== rawKey) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has: has2 } = getProto(rawTarget);\n const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n if (has2.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has2.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n}\nfunction has$1(key, isReadonly2 = false) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly2) {\n if (key !== rawKey) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly2 = false) {\n target = target[\"__v_raw\"];\n !isReadonly2 && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n}\nfunction add(value) {\n value = toRaw(value);\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n}\nfunction set$1$1(key, value) {\n value = toRaw(value);\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n }\n const oldValue = get2.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged$1(value, oldValue)) {\n trigger(target, \"set\", key, value);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n }\n get2 ? get2.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\", void 0, void 0);\n }\n return result;\n}\nfunction createForEach(isReadonly2, isShallow2) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly2, isShallow2) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap$1(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && track(rawTarget, \"iterate\", isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);\n return {\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n return type === \"delete\" ? false : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations2 = {\n get(key) {\n return get$1$1(this, key);\n },\n get size() {\n return size(this);\n },\n has: has$1,\n add,\n set: set$1$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations2 = {\n get(key) {\n return get$1$1(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has: has$1,\n add,\n set: set$1$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations2 = {\n get(key) {\n return get$1$1(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations2 = {\n get(key) {\n return get$1$1(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = [\"keys\", \"values\", \"entries\", Symbol.iterator];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod(method, false, false);\n readonlyInstrumentations2[method] = createIterableMethod(method, true, false);\n shallowInstrumentations2[method] = createIterableMethod(method, false, true);\n shallowReadonlyInstrumentations2[method] = createIterableMethod(method, true, true);\n });\n return [\n mutableInstrumentations2,\n readonlyInstrumentations2,\n shallowInstrumentations2,\n shallowReadonlyInstrumentations2\n ];\n}\nconst [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* @__PURE__ */ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly2, shallow) {\n const instrumentations = shallow ? isReadonly2 ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly2 ? readonlyInstrumentations : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(hasOwn$1(instrumentations, key) && key in target ? instrumentations : target, key, receiver);\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2;\n default:\n return 0;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);\n}\nfunction shallowReactive(target) {\n return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);\n}\nfunction readonly(target) {\n return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject$2(target)) {\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0) {\n return target;\n }\n const proxy = new Proxy(target, targetType === 2 ? collectionHandlers : baseHandlers);\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n def$1(value, \"__v_skip\", true);\n return value;\n}\nconst toReactive = (value) => isObject$2(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject$2(value) ? readonly(value) : value;\nfunction trackRefValue(ref) {\n if (shouldTrack && activeEffect) {\n ref = toRaw(ref);\n {\n trackEffects(ref.dep || (ref.dep = createDep()));\n }\n }\n}\nfunction triggerRefValue(ref, newVal) {\n ref = toRaw(ref);\n if (ref.dep) {\n {\n triggerEffects(ref.dep);\n }\n }\n}\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction unref(ref) {\n return isRef(ref) ? ref.value : ref;\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass ComputedRefImpl {\n constructor(getter, _setter, isReadonly2, isSSR) {\n this._setter = _setter;\n this.dep = void 0;\n this.__v_isRef = true;\n this._dirty = true;\n this.effect = new ReactiveEffect(getter, () => {\n if (!this._dirty) {\n this._dirty = true;\n triggerRefValue(this);\n }\n });\n this.effect.computed = this;\n this.effect.active = this._cacheable = !isSSR;\n this[\"__v_isReadonly\"] = isReadonly2;\n }\n get value() {\n const self2 = toRaw(this);\n trackRefValue(self2);\n if (self2._dirty || !self2._cacheable) {\n self2._dirty = false;\n self2._value = self2.effect.run();\n }\n return self2._value;\n }\n set value(newValue) {\n this._setter(newValue);\n }\n}\nfunction computed$1(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n const onlyGetter = isFunction$2(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = NOOP$1;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\n return cRef;\n}\nfunction makeMap$1(str, expectsLowerCase) {\n const map = /* @__PURE__ */ Object.create(null);\n const list2 = str.split(\",\");\n for (let i = 0; i < list2.length; i++) {\n map[list2[i]] = true;\n }\n return expectsLowerCase ? (val) => !!map[val.toLowerCase()] : (val) => !!map[val];\n}\nfunction normalizeStyle(value) {\n if (isArray$1(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString$1(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString$1(value)) {\n return value;\n } else if (isObject$1(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:(.+)/;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString$1(value)) {\n res = value;\n } else if (isArray$1(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject$1(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props)\n return null;\n let { class: klass, style } = props;\n if (klass && !isString$1(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\nconst toDisplayString = (val) => {\n return isString$1(val) ? val : val == null ? \"\" : isArray$1(val) || isObject$1(val) && (val.toString === objectToString || !isFunction$1(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (val && val.__v_isRef) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce((entries, [key, val2]) => {\n entries[`${key} =>`] = val2;\n return entries;\n }, {})\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()]\n };\n } else if (isObject$1(val) && !isArray$1(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst EMPTY_OBJ = {};\nconst EMPTY_ARR = [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst onRE$1 = /^on[^a-z]/;\nconst isOn$1 = (key) => onRE$1.test(key);\nconst isModelListener$1 = (key) => key.startsWith(\"onUpdate:\");\nconst extend$1 = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty$2 = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty$2.call(val, key);\nconst isArray$1 = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isFunction$1 = (val) => typeof val === \"function\";\nconst isString$1 = (val) => typeof val === \"string\";\nconst isObject$1 = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return isObject$1(val) && isFunction$1(val.then) && isFunction$1(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isReservedProp = /* @__PURE__ */ makeMap$1(\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst cacheStringFunction$1 = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE$1 = /-(\\w)/g;\nconst camelize$1 = cacheStringFunction$1((str) => {\n return str.replace(camelizeRE$1, (_, c) => c ? c.toUpperCase() : \"\");\n});\nconst hyphenateRE$1 = /\\B([A-Z])/g;\nconst hyphenate$1 = cacheStringFunction$1((str) => str.replace(hyphenateRE$1, \"-$1\").toLowerCase());\nconst capitalize$1 = cacheStringFunction$1((str) => str.charAt(0).toUpperCase() + str.slice(1));\nconst toHandlerKey = cacheStringFunction$1((str) => str ? `on${capitalize$1(str)}` : ``);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](arg);\n }\n};\nconst def = (obj, key, value) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n value\n });\n};\nconst toNumber$1 = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nfunction callWithErrorHandling(fn, instance2, type, args) {\n let res;\n try {\n res = args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance2, type);\n }\n return res;\n}\nfunction callWithAsyncErrorHandling(fn, instance2, type, args) {\n if (isFunction$1(fn)) {\n const res = callWithErrorHandling(fn, instance2, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance2, type);\n });\n }\n return res;\n }\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance2, type, args));\n }\n return values;\n}\nfunction handleError(err, instance2, type, throwInDev = true) {\n const contextVNode = instance2 ? instance2.vnode : null;\n if (instance2) {\n let cur = instance2.parent;\n const exposedInstance = instance2.proxy;\n const errorInfo = type;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n const appErrorHandler = instance2.appContext.config.errorHandler;\n if (appErrorHandler) {\n callWithErrorHandling(appErrorHandler, null, 10, [err, exposedInstance, errorInfo]);\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\n {\n console.error(err);\n }\n}\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\nconst pendingPreFlushCbs = [];\nlet activePreFlushCbs = null;\nlet preFlushIndex = 0;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nlet currentPreFlushParentJob = null;\nfunction nextTick(fn) {\n const p2 = currentFlushPromise || resolvedPromise;\n return fn ? p2.then(this ? fn.bind(this) : fn) : p2;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJobId = getId(queue[middle]);\n middleJobId < id ? start = middle + 1 : end = middle;\n }\n return start;\n}\nfunction queueJob(job) {\n if ((!queue.length || !queue.includes(job, isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex)) && job !== currentPreFlushParentJob) {\n if (job.id == null) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(job.id), 0, job);\n }\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true;\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction invalidateJob(job) {\n const i = queue.indexOf(job);\n if (i > flushIndex) {\n queue.splice(i, 1);\n }\n}\nfunction queueCb(cb, activeQueue, pendingQueue, index) {\n if (!isArray$1(cb)) {\n if (!activeQueue || !activeQueue.includes(cb, cb.allowRecurse ? index + 1 : index)) {\n pendingQueue.push(cb);\n }\n } else {\n pendingQueue.push(...cb);\n }\n queueFlush();\n}\nfunction queuePreFlushCb(cb) {\n queueCb(cb, activePreFlushCbs, pendingPreFlushCbs, preFlushIndex);\n}\nfunction queuePostFlushCb(cb) {\n queueCb(cb, activePostFlushCbs, pendingPostFlushCbs, postFlushIndex);\n}\nfunction flushPreFlushCbs(seen, parentJob = null) {\n if (pendingPreFlushCbs.length) {\n currentPreFlushParentJob = parentJob;\n activePreFlushCbs = [...new Set(pendingPreFlushCbs)];\n pendingPreFlushCbs.length = 0;\n for (preFlushIndex = 0; preFlushIndex < activePreFlushCbs.length; preFlushIndex++) {\n activePreFlushCbs[preFlushIndex]();\n }\n activePreFlushCbs = null;\n preFlushIndex = 0;\n currentPreFlushParentJob = null;\n flushPreFlushCbs(seen, parentJob);\n }\n}\nfunction flushPostFlushCbs(seen) {\n flushPreFlushCbs();\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)];\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n activePostFlushCbs.sort((a, b) => getId(a) - getId(b));\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n activePostFlushCbs[postFlushIndex]();\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nfunction flushJobs(seen) {\n isFlushPending = false;\n isFlushing = true;\n flushPreFlushCbs(seen);\n queue.sort((a, b) => getId(a) - getId(b));\n const check = NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && job.active !== false) {\n if (false)\n ;\n callWithErrorHandling(job, null, 14);\n }\n }\n } finally {\n flushIndex = 0;\n queue.length = 0;\n flushPostFlushCbs();\n isFlushing = false;\n currentFlushPromise = null;\n if (queue.length || pendingPreFlushCbs.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction emit$1(instance2, event, ...rawArgs) {\n if (instance2.isUnmounted)\n return;\n const props = instance2.vnode.props || EMPTY_OBJ;\n let args = rawArgs;\n const isModelListener2 = event.startsWith(\"update:\");\n const modelArg = isModelListener2 && event.slice(7);\n if (modelArg && modelArg in props) {\n const modifiersKey = `${modelArg === \"modelValue\" ? \"model\" : modelArg}Modifiers`;\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\n if (trim) {\n args = rawArgs.map((a) => a.trim());\n }\n if (number) {\n args = rawArgs.map(toNumber$1);\n }\n }\n let handlerName;\n let handler = props[handlerName = toHandlerKey(event)] || props[handlerName = toHandlerKey(camelize$1(event))];\n if (!handler && isModelListener2) {\n handler = props[handlerName = toHandlerKey(hyphenate$1(event))];\n }\n if (handler) {\n callWithAsyncErrorHandling(handler, instance2, 6, args);\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance2.emitted) {\n instance2.emitted = {};\n } else if (instance2.emitted[handlerName]) {\n return;\n }\n instance2.emitted[handlerName] = true;\n callWithAsyncErrorHandling(onceHandler, instance2, 6, args);\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== void 0) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n let hasExtends = false;\n if (!isFunction$1(comp)) {\n const extendEmits = (raw2) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend$1(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n cache.set(comp, null);\n return null;\n }\n if (isArray$1(raw)) {\n raw.forEach((key) => normalized[key] = null);\n } else {\n extend$1(normalized, raw);\n }\n cache.set(comp, normalized);\n return normalized;\n}\nfunction isEmitListener(options, key) {\n if (!options || !isOn$1(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, \"\");\n return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate$1(key)) || hasOwn(options, key);\n}\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance2) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance2;\n currentScopeId = instance2 && instance2.type.__scopeId || null;\n return prev;\n}\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx)\n return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n const res = fn(...args);\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\nfunction markAttrsAccessed() {\n}\nfunction renderComponentRoot(instance2) {\n const { type: Component, vnode, proxy, withProxy, props, propsOptions: [propsOptions], slots, attrs, emit, render: render2, renderCache, data, setupState, ctx, inheritAttrs } = instance2;\n let result;\n let fallthroughAttrs;\n const prev = setCurrentRenderingInstance(instance2);\n try {\n if (vnode.shapeFlag & 4) {\n const proxyToUse = withProxy || proxy;\n result = normalizeVNode(render2.call(proxyToUse, proxyToUse, renderCache, props, setupState, data, ctx));\n fallthroughAttrs = attrs;\n } else {\n const render3 = Component;\n if (false)\n ;\n result = normalizeVNode(render3.length > 1 ? render3(props, false ? {\n get attrs() {\n markAttrsAccessed();\n return attrs;\n },\n slots,\n emit\n } : { attrs, slots, emit }) : render3(props, null));\n fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);\n }\n } catch (err) {\n blockStack.length = 0;\n handleError(err, instance2, 1);\n result = createVNode(Comment);\n }\n let root = result;\n if (fallthroughAttrs && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs);\n const { shapeFlag } = root;\n if (keys.length) {\n if (shapeFlag & (1 | 6)) {\n if (propsOptions && keys.some(isModelListener$1)) {\n fallthroughAttrs = filterModelListeners(fallthroughAttrs, propsOptions);\n }\n root = cloneVNode(root, fallthroughAttrs);\n }\n }\n }\n if (vnode.dirs) {\n root = cloneVNode(root);\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n }\n if (vnode.transition) {\n root.transition = vnode.transition;\n }\n {\n result = root;\n }\n setCurrentRenderingInstance(prev);\n return result;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === \"class\" || key === \"style\" || isOn$1(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nconst filterModelListeners = (attrs, props) => {\n const res = {};\n for (const key in attrs) {\n if (!isModelListener$1(key) || !(key.slice(9) in props)) {\n res[key] = attrs[key];\n }\n }\n return res;\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n const { props: prevProps, children: prevChildren, component } = prevVNode;\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n const emits = component.emitsOptions;\n if (nextVNode.dirs || nextVNode.transition) {\n return true;\n }\n if (optimized && patchFlag >= 0) {\n if (patchFlag & 1024) {\n return true;\n }\n if (patchFlag & 16) {\n if (!prevProps) {\n return !!nextProps;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n } else if (patchFlag & 8) {\n const dynamicProps = nextVNode.dynamicProps;\n for (let i = 0; i < dynamicProps.length; i++) {\n const key = dynamicProps[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {\n return true;\n }\n }\n }\n } else {\n if (prevChildren || nextChildren) {\n if (!nextChildren || !nextChildren.$stable) {\n return true;\n }\n }\n if (prevProps === nextProps) {\n return false;\n }\n if (!prevProps) {\n return !!nextProps;\n }\n if (!nextProps) {\n return true;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n const nextKeys = Object.keys(nextProps);\n if (nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {\n return true;\n }\n }\n return false;\n}\nfunction updateHOCHostEl({ vnode, parent }, el) {\n while (parent && parent.subTree === vnode) {\n (vnode = parent.vnode).el = el;\n parent = parent.parent;\n }\n}\nconst isSuspense = (type) => type.__isSuspense;\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (isArray$1(fn)) {\n suspense.effects.push(...fn);\n } else {\n suspense.effects.push(fn);\n }\n } else {\n queuePostFlushCb(fn);\n }\n}\nfunction provide(key, value) {\n if (!currentInstance)\n ;\n else {\n let provides = currentInstance.provides;\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n provides[key] = value;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n const instance2 = currentInstance || currentRenderingInstance;\n if (instance2) {\n const provides = instance2.parent == null ? instance2.vnode.appContext && instance2.vnode.appContext.provides : instance2.parent.provides;\n if (provides && key in provides) {\n return provides[key];\n } else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction$1(defaultValue) ? defaultValue.call(instance2.proxy) : defaultValue;\n } else\n ;\n }\n}\nconst INITIAL_WATCHER_VALUE = {};\nfunction watch(source, cb, options) {\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, { immediate, deep, flush: flush2, onTrack, onTrigger } = EMPTY_OBJ) {\n const instance2 = currentInstance;\n let getter;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => source;\n deep = true;\n } else if (isArray$1(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return traverse(s);\n } else if (isFunction$1(s)) {\n return callWithErrorHandling(s, instance2, 2);\n } else\n ;\n });\n } else if (isFunction$1(source)) {\n if (cb) {\n getter = () => callWithErrorHandling(source, instance2, 2);\n } else {\n getter = () => {\n if (instance2 && instance2.isUnmounted) {\n return;\n }\n if (cleanup) {\n cleanup();\n }\n return callWithAsyncErrorHandling(source, instance2, 3, [onCleanup]);\n };\n }\n } else {\n getter = NOOP;\n }\n if (cb && deep) {\n const baseGetter = getter;\n getter = () => traverse(baseGetter());\n }\n let cleanup;\n let onCleanup = (fn) => {\n cleanup = effect.onStop = () => {\n callWithErrorHandling(fn, instance2, 4);\n };\n };\n if (isInSSRComponentSetup) {\n onCleanup = NOOP;\n if (!cb) {\n getter();\n } else if (immediate) {\n callWithAsyncErrorHandling(cb, instance2, 3, [\n getter(),\n isMultiSource ? [] : void 0,\n onCleanup\n ]);\n }\n return NOOP;\n }\n let oldValue = isMultiSource ? [] : INITIAL_WATCHER_VALUE;\n const job = () => {\n if (!effect.active) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || false) {\n if (cleanup) {\n cleanup();\n }\n callWithAsyncErrorHandling(cb, instance2, 3, [\n newValue,\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n } else {\n effect.run();\n }\n };\n job.allowRecurse = !!cb;\n let scheduler;\n if (flush2 === \"sync\") {\n scheduler = job;\n } else if (flush2 === \"post\") {\n scheduler = () => queuePostRenderEffect(job, instance2 && instance2.suspense);\n } else {\n scheduler = () => queuePreFlushCb(job);\n }\n const effect = new ReactiveEffect(getter, scheduler);\n if (cb) {\n if (immediate) {\n job();\n } else {\n oldValue = effect.run();\n }\n } else if (flush2 === \"post\") {\n queuePostRenderEffect(effect.run.bind(effect), instance2 && instance2.suspense);\n } else {\n effect.run();\n }\n return () => {\n effect.stop();\n if (instance2 && instance2.scope) {\n remove(instance2.scope.effects, effect);\n }\n };\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString$1(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction$1(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const cur = currentInstance;\n setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n if (cur) {\n setCurrentInstance(cur);\n } else {\n unsetCurrentInstance();\n }\n return res;\n}\nfunction createPathGetter(ctx, path2) {\n const segments = path2.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\nfunction traverse(value, seen) {\n if (!isObject$1(value) || value[\"__v_skip\"]) {\n return value;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n if (isRef(value)) {\n traverse(value.value, seen);\n } else if (isArray$1(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], seen);\n }\n }\n return value;\n}\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n },\n setup(props, { slots }) {\n const instance2 = getCurrentInstance();\n const state = useTransitionState();\n let prevTransitionKey;\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n let child = children[0];\n if (children.length > 1) {\n for (const c of children) {\n if (c.type !== Comment) {\n child = c;\n break;\n }\n }\n }\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getKeepAliveChild(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n const enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance2);\n setTransitionHooks(innerChild, enterHooks);\n const oldChild = instance2.subTree;\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\n let transitionKeyChanged = false;\n const { getTransitionKey } = innerChild.type;\n if (getTransitionKey) {\n const key = getTransitionKey();\n if (prevTransitionKey === void 0) {\n prevTransitionKey = key;\n } else if (key !== prevTransitionKey) {\n prevTransitionKey = key;\n transitionKeyChanged = true;\n }\n }\n if (oldInnerChild && oldInnerChild.type !== Comment && (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\n const leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance2);\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\") {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n instance2.update();\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el._leaveCb = () => {\n earlyRemove();\n el._leaveCb = void 0;\n delete enterHooks.delayedLeave;\n };\n enterHooks.delayedLeave = delayedLeave;\n };\n }\n }\n return child;\n };\n }\n};\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance2) {\n const { appear, mode, persisted = false, onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, onBeforeLeave, onLeave, onAfterLeave, onLeaveCancelled, onBeforeAppear, onAppear, onAfterAppear, onAppearCancelled } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook2 = (hook, args) => {\n hook && callWithAsyncErrorHandling(hook, instance2, 9, args);\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook2(hook, args);\n if (isArray$1(hook)) {\n if (hook.every((hook2) => hook2.length <= 1))\n done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el._leaveCb) {\n el._leaveCb(true);\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el._leaveCb) {\n leavingVNode.el._leaveCb();\n }\n callHook2(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n const done = el._enterCb = (cancelled) => {\n if (called)\n return;\n called = true;\n if (cancelled) {\n callHook2(cancelHook, [el]);\n } else {\n callHook2(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el._enterCb = void 0;\n };\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove2) {\n const key2 = String(vnode.key);\n if (el._enterCb) {\n el._enterCb(true);\n }\n if (state.isUnmounting) {\n return remove2();\n }\n callHook2(onBeforeLeave, [el]);\n let called = false;\n const done = el._leaveCb = (cancelled) => {\n if (called)\n return;\n called = true;\n remove2();\n if (cancelled) {\n callHook2(onLeaveCancelled, [el]);\n } else {\n callHook2(onAfterLeave, [el]);\n }\n el._leaveCb = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n return resolveTransitionHooks(vnode2, props, state, instance2);\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getKeepAliveChild(vnode) {\n return isKeepAlive(vnode) ? vnode.children ? vnode.children[0] : void 0 : vnode;\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128)\n keyedFragmentCount++;\n ret = ret.concat(getTransitionRawChildren(child.children, keepComment, key));\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\nfunction defineComponent(options) {\n return isFunction$1(options) ? { setup: options, name: options.name } : options;\n}\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(type, hook, keepAliveRoot, true);\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n if (target.isUnmounted) {\n return;\n }\n pauseTracking();\n setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n unsetCurrentInstance();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => (!isInSSRComponentSetup || lifecycle === \"sp\") && injectHook(lifecycle, hook, target);\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\"bu\");\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\"bum\");\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\"sp\");\nconst onRenderTriggered = createHook(\"rtg\");\nconst onRenderTracked = createHook(\"rtc\");\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\nfunction withDirectives(vnode, directives) {\n const internalInstance = currentRenderingInstance;\n if (internalInstance === null) {\n return vnode;\n }\n const instance2 = getExposeProxy(internalInstance) || internalInstance.proxy;\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (isFunction$1(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance: instance2,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance2, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance2, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol();\nfunction resolveDynamicComponent(component) {\n if (isString$1(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance2 = currentRenderingInstance || currentInstance;\n if (instance2) {\n const Component = instance2.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(Component, false);\n if (selfName && (selfName === name || selfName === camelize$1(name) || selfName === capitalize$1(camelize$1(name)))) {\n return Component;\n }\n }\n const res = resolve(instance2[type] || Component[type], name) || resolve(instance2.appContext[type], name);\n if (!res && maybeSelfReference) {\n return Component;\n }\n return res;\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize$1(name)] || registry[capitalize$1(camelize$1(name))]);\n}\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n if (isArray$1(source) || isString$1(source)) {\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(source[i], i, void 0, cached && cached[i]);\n }\n } else if (typeof source === \"number\") {\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n } else if (isObject$1(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray$1(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.fn;\n }\n }\n return slots;\n}\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) {\n return createVNode(\"slot\", name === \"default\" ? null : { name }, fallback && fallback());\n }\n let slot = slots[name];\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const rendered = createBlock(Fragment, { key: props.key || `_${name}` }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 ? 64 : -2);\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child))\n return true;\n if (child.type === Comment)\n return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\nconst getPublicInstance = (i) => {\n if (!i)\n return null;\n if (isStatefulComponent(i))\n return getExposeProxy(i) || i.proxy;\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = /* @__PURE__ */ extend$1(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => i.props,\n $attrs: (i) => i.attrs,\n $slots: (i) => i.slots,\n $refs: (i) => i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $emit: (i) => i.emit,\n $options: (i) => resolveMergedOptions(i),\n $forceUpdate: (i) => i.f || (i.f = () => queueJob(i.update)),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => instanceWatch.bind(i)\n});\nconst PublicInstanceProxyHandlers = {\n get({ _: instance2 }, key) {\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance2;\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1:\n return setupState[key];\n case 2:\n return data[key];\n case 4:\n return ctx[key];\n case 3:\n return props[key];\n }\n } else if (setupState !== EMPTY_OBJ && hasOwn(setupState, key)) {\n accessCache[key] = 1;\n return setupState[key];\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2;\n return data[key];\n } else if ((normalizedProps = instance2.propsOptions[0]) && hasOwn(normalizedProps, key)) {\n accessCache[key] = 3;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4;\n return ctx[key];\n } else if (shouldCacheAccess) {\n accessCache[key] = 0;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance2, \"get\", key);\n }\n return publicGetter(instance2);\n } else if ((cssModule = type.__cssModules) && (cssModule = cssModule[key])) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4;\n return ctx[key];\n } else if (globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)) {\n {\n return globalProperties[key];\n }\n } else\n ;\n },\n set({ _: instance2 }, key, value) {\n const { data, setupState, ctx } = instance2;\n if (setupState !== EMPTY_OBJ && hasOwn(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n data[key] = value;\n return true;\n } else if (hasOwn(instance2.props, key)) {\n return false;\n }\n if (key[0] === \"$\" && key.slice(1) in instance2) {\n return false;\n } else {\n {\n ctx[key] = value;\n }\n }\n return true;\n },\n has({ _: { data, setupState, accessCache, ctx, appContext, propsOptions } }, key) {\n let normalizedProps;\n return !!accessCache[key] || data !== EMPTY_OBJ && hasOwn(data, key) || setupState !== EMPTY_OBJ && hasOwn(setupState, key) || (normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key);\n },\n defineProperty(target, key, descriptor) {\n if (descriptor.get != null) {\n target._.accessCache[key] = 0;\n } else if (hasOwn(descriptor, \"value\")) {\n this.set(target, key, descriptor.value, null);\n }\n return Reflect.defineProperty(target, key, descriptor);\n }\n};\nlet shouldCacheAccess = true;\nfunction applyOptions(instance2) {\n const options = resolveMergedOptions(instance2);\n const publicThis = instance2.proxy;\n const ctx = instance2.ctx;\n shouldCacheAccess = false;\n if (options.beforeCreate) {\n callHook$1(options.beforeCreate, instance2, \"bc\");\n }\n const {\n data: dataOptions,\n computed: computedOptions,\n methods,\n watch: watchOptions,\n provide: provideOptions,\n inject: injectOptions,\n created,\n beforeMount: beforeMount2,\n mounted,\n beforeUpdate,\n updated: updated2,\n activated,\n deactivated,\n beforeDestroy,\n beforeUnmount,\n destroyed,\n unmounted: unmounted2,\n render: render2,\n renderTracked,\n renderTriggered,\n errorCaptured,\n serverPrefetch,\n expose,\n inheritAttrs,\n components,\n directives,\n filters\n } = options;\n const checkDuplicateProperties = null;\n if (injectOptions) {\n resolveInjections(injectOptions, ctx, checkDuplicateProperties, instance2.appContext.config.unwrapInjectedRef);\n }\n if (methods) {\n for (const key in methods) {\n const methodHandler = methods[key];\n if (isFunction$1(methodHandler)) {\n {\n ctx[key] = methodHandler.bind(publicThis);\n }\n }\n }\n }\n if (dataOptions) {\n const data = dataOptions.call(publicThis, publicThis);\n if (!isObject$1(data))\n ;\n else {\n instance2.data = reactive(data);\n }\n }\n shouldCacheAccess = true;\n if (computedOptions) {\n for (const key in computedOptions) {\n const opt = computedOptions[key];\n const get2 = isFunction$1(opt) ? opt.bind(publicThis, publicThis) : isFunction$1(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;\n const set2 = !isFunction$1(opt) && isFunction$1(opt.set) ? opt.set.bind(publicThis) : NOOP;\n const c = computed({\n get: get2,\n set: set2\n });\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => c.value,\n set: (v) => c.value = v\n });\n }\n }\n if (watchOptions) {\n for (const key in watchOptions) {\n createWatcher(watchOptions[key], ctx, publicThis, key);\n }\n }\n if (provideOptions) {\n const provides = isFunction$1(provideOptions) ? provideOptions.call(publicThis) : provideOptions;\n Reflect.ownKeys(provides).forEach((key) => {\n provide(key, provides[key]);\n });\n }\n if (created) {\n callHook$1(created, instance2, \"c\");\n }\n function registerLifecycleHook(register2, hook) {\n if (isArray$1(hook)) {\n hook.forEach((_hook) => register2(_hook.bind(publicThis)));\n } else if (hook) {\n register2(hook.bind(publicThis));\n }\n }\n registerLifecycleHook(onBeforeMount, beforeMount2);\n registerLifecycleHook(onMounted, mounted);\n registerLifecycleHook(onBeforeUpdate, beforeUpdate);\n registerLifecycleHook(onUpdated, updated2);\n registerLifecycleHook(onActivated, activated);\n registerLifecycleHook(onDeactivated, deactivated);\n registerLifecycleHook(onErrorCaptured, errorCaptured);\n registerLifecycleHook(onRenderTracked, renderTracked);\n registerLifecycleHook(onRenderTriggered, renderTriggered);\n registerLifecycleHook(onBeforeUnmount, beforeUnmount);\n registerLifecycleHook(onUnmounted, unmounted2);\n registerLifecycleHook(onServerPrefetch, serverPrefetch);\n if (isArray$1(expose)) {\n if (expose.length) {\n const exposed = instance2.exposed || (instance2.exposed = {});\n expose.forEach((key) => {\n Object.defineProperty(exposed, key, {\n get: () => publicThis[key],\n set: (val) => publicThis[key] = val\n });\n });\n } else if (!instance2.exposed) {\n instance2.exposed = {};\n }\n }\n if (render2 && instance2.render === NOOP) {\n instance2.render = render2;\n }\n if (inheritAttrs != null) {\n instance2.inheritAttrs = inheritAttrs;\n }\n if (components)\n instance2.components = components;\n if (directives)\n instance2.directives = directives;\n}\nfunction resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP, unwrapRef = false) {\n if (isArray$1(injectOptions)) {\n injectOptions = normalizeInject(injectOptions);\n }\n for (const key in injectOptions) {\n const opt = injectOptions[key];\n let injected;\n if (isObject$1(opt)) {\n if (\"default\" in opt) {\n injected = inject(opt.from || key, opt.default, true);\n } else {\n injected = inject(opt.from || key);\n }\n } else {\n injected = inject(opt);\n }\n if (isRef(injected)) {\n if (unwrapRef) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => injected.value,\n set: (v) => injected.value = v\n });\n } else {\n ctx[key] = injected;\n }\n } else {\n ctx[key] = injected;\n }\n }\n}\nfunction callHook$1(hook, instance2, type) {\n callWithAsyncErrorHandling(isArray$1(hook) ? hook.map((h2) => h2.bind(instance2.proxy)) : hook.bind(instance2.proxy), instance2, type);\n}\nfunction createWatcher(raw, ctx, publicThis, key) {\n const getter = key.includes(\".\") ? createPathGetter(publicThis, key) : () => publicThis[key];\n if (isString$1(raw)) {\n const handler = ctx[raw];\n if (isFunction$1(handler)) {\n watch(getter, handler);\n }\n } else if (isFunction$1(raw)) {\n watch(getter, raw.bind(publicThis));\n } else if (isObject$1(raw)) {\n if (isArray$1(raw)) {\n raw.forEach((r) => createWatcher(r, ctx, publicThis, key));\n } else {\n const handler = isFunction$1(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];\n if (isFunction$1(handler)) {\n watch(getter, handler, raw);\n }\n }\n } else\n ;\n}\nfunction resolveMergedOptions(instance2) {\n const base = instance2.type;\n const { mixins, extends: extendsOptions } = base;\n const { mixins: globalMixins, optionsCache: cache, config: { optionMergeStrategies } } = instance2.appContext;\n const cached = cache.get(base);\n let resolved;\n if (cached) {\n resolved = cached;\n } else if (!globalMixins.length && !mixins && !extendsOptions) {\n {\n resolved = base;\n }\n } else {\n resolved = {};\n if (globalMixins.length) {\n globalMixins.forEach((m) => mergeOptions(resolved, m, optionMergeStrategies, true));\n }\n mergeOptions(resolved, base, optionMergeStrategies);\n }\n cache.set(base, resolved);\n return resolved;\n}\nfunction mergeOptions(to, from, strats, asMixin = false) {\n const { mixins, extends: extendsOptions } = from;\n if (extendsOptions) {\n mergeOptions(to, extendsOptions, strats, true);\n }\n if (mixins) {\n mixins.forEach((m) => mergeOptions(to, m, strats, true));\n }\n for (const key in from) {\n if (asMixin && key === \"expose\")\n ;\n else {\n const strat = internalOptionMergeStrats[key] || strats && strats[key];\n to[key] = strat ? strat(to[key], from[key]) : from[key];\n }\n }\n return to;\n}\nconst internalOptionMergeStrats = {\n data: mergeDataFn,\n props: mergeObjectOptions,\n emits: mergeObjectOptions,\n methods: mergeObjectOptions,\n computed: mergeObjectOptions,\n beforeCreate: mergeAsArray,\n created: mergeAsArray,\n beforeMount: mergeAsArray,\n mounted: mergeAsArray,\n beforeUpdate: mergeAsArray,\n updated: mergeAsArray,\n beforeDestroy: mergeAsArray,\n beforeUnmount: mergeAsArray,\n destroyed: mergeAsArray,\n unmounted: mergeAsArray,\n activated: mergeAsArray,\n deactivated: mergeAsArray,\n errorCaptured: mergeAsArray,\n serverPrefetch: mergeAsArray,\n components: mergeObjectOptions,\n directives: mergeObjectOptions,\n watch: mergeWatchOptions,\n provide: mergeDataFn,\n inject: mergeInject\n};\nfunction mergeDataFn(to, from) {\n if (!from) {\n return to;\n }\n if (!to) {\n return from;\n }\n return function mergedDataFn() {\n return extend$1(isFunction$1(to) ? to.call(this, this) : to, isFunction$1(from) ? from.call(this, this) : from);\n };\n}\nfunction mergeInject(to, from) {\n return mergeObjectOptions(normalizeInject(to), normalizeInject(from));\n}\nfunction normalizeInject(raw) {\n if (isArray$1(raw)) {\n const res = {};\n for (let i = 0; i < raw.length; i++) {\n res[raw[i]] = raw[i];\n }\n return res;\n }\n return raw;\n}\nfunction mergeAsArray(to, from) {\n return to ? [...new Set([].concat(to, from))] : from;\n}\nfunction mergeObjectOptions(to, from) {\n return to ? extend$1(extend$1(/* @__PURE__ */ Object.create(null), to), from) : from;\n}\nfunction mergeWatchOptions(to, from) {\n if (!to)\n return from;\n if (!from)\n return to;\n const merged = extend$1(/* @__PURE__ */ Object.create(null), to);\n for (const key in from) {\n merged[key] = mergeAsArray(to[key], from[key]);\n }\n return merged;\n}\nfunction initProps(instance2, rawProps, isStateful, isSSR = false) {\n const props = {};\n const attrs = {};\n def(attrs, InternalObjectKey, 1);\n instance2.propsDefaults = /* @__PURE__ */ Object.create(null);\n setFullProps(instance2, rawProps, props, attrs);\n for (const key in instance2.propsOptions[0]) {\n if (!(key in props)) {\n props[key] = void 0;\n }\n }\n if (isStateful) {\n instance2.props = isSSR ? props : shallowReactive(props);\n } else {\n if (!instance2.type.props) {\n instance2.props = attrs;\n } else {\n instance2.props = props;\n }\n }\n instance2.attrs = attrs;\n}\nfunction updateProps(instance2, rawProps, rawPrevProps, optimized) {\n const { props, attrs, vnode: { patchFlag } } = instance2;\n const rawCurrentProps = toRaw(props);\n const [options] = instance2.propsOptions;\n let hasAttrsChanged = false;\n if ((optimized || patchFlag > 0) && !(patchFlag & 16)) {\n if (patchFlag & 8) {\n const propsToUpdate = instance2.vnode.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n let key = propsToUpdate[i];\n if (isEmitListener(instance2.emitsOptions, key)) {\n continue;\n }\n const value = rawProps[key];\n if (options) {\n if (hasOwn(attrs, key)) {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n } else {\n const camelizedKey = camelize$1(key);\n props[camelizedKey] = resolvePropValue(options, rawCurrentProps, camelizedKey, value, instance2, false);\n }\n } else {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n } else {\n if (setFullProps(instance2, rawProps, props, attrs)) {\n hasAttrsChanged = true;\n }\n let kebabKey;\n for (const key in rawCurrentProps) {\n if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate$1(key)) === key || !hasOwn(rawProps, kebabKey))) {\n if (options) {\n if (rawPrevProps && (rawPrevProps[key] !== void 0 || rawPrevProps[kebabKey] !== void 0)) {\n props[key] = resolvePropValue(options, rawCurrentProps, key, void 0, instance2, true);\n }\n } else {\n delete props[key];\n }\n }\n }\n if (attrs !== rawCurrentProps) {\n for (const key in attrs) {\n if (!rawProps || !hasOwn(rawProps, key) && true) {\n delete attrs[key];\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (hasAttrsChanged) {\n trigger(instance2, \"set\", \"$attrs\");\n }\n}\nfunction setFullProps(instance2, rawProps, props, attrs) {\n const [options, needCastKeys] = instance2.propsOptions;\n let hasAttrsChanged = false;\n let rawCastValues;\n if (rawProps) {\n for (let key in rawProps) {\n if (isReservedProp(key)) {\n continue;\n }\n const value = rawProps[key];\n let camelKey;\n if (options && hasOwn(options, camelKey = camelize$1(key))) {\n if (!needCastKeys || !needCastKeys.includes(camelKey)) {\n props[camelKey] = value;\n } else {\n (rawCastValues || (rawCastValues = {}))[camelKey] = value;\n }\n } else if (!isEmitListener(instance2.emitsOptions, key)) {\n if (!(key in attrs) || value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (needCastKeys) {\n const rawCurrentProps = toRaw(props);\n const castValues = rawCastValues || EMPTY_OBJ;\n for (let i = 0; i < needCastKeys.length; i++) {\n const key = needCastKeys[i];\n props[key] = resolvePropValue(options, rawCurrentProps, key, castValues[key], instance2, !hasOwn(castValues, key));\n }\n }\n return hasAttrsChanged;\n}\nfunction resolvePropValue(options, props, key, value, instance2, isAbsent) {\n const opt = options[key];\n if (opt != null) {\n const hasDefault = hasOwn(opt, \"default\");\n if (hasDefault && value === void 0) {\n const defaultValue = opt.default;\n if (opt.type !== Function && isFunction$1(defaultValue)) {\n const { propsDefaults } = instance2;\n if (key in propsDefaults) {\n value = propsDefaults[key];\n } else {\n setCurrentInstance(instance2);\n value = propsDefaults[key] = defaultValue.call(null, props);\n unsetCurrentInstance();\n }\n } else {\n value = defaultValue;\n }\n }\n if (opt[0]) {\n if (isAbsent && !hasDefault) {\n value = false;\n } else if (opt[1] && (value === \"\" || value === hyphenate$1(key))) {\n value = true;\n }\n }\n }\n return value;\n}\nfunction normalizePropsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.propsCache;\n const cached = cache.get(comp);\n if (cached) {\n return cached;\n }\n const raw = comp.props;\n const normalized = {};\n const needCastKeys = [];\n let hasExtends = false;\n if (!isFunction$1(comp)) {\n const extendProps = (raw2) => {\n hasExtends = true;\n const [props, keys] = normalizePropsOptions(raw2, appContext, true);\n extend$1(normalized, props);\n if (keys)\n needCastKeys.push(...keys);\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendProps);\n }\n if (comp.extends) {\n extendProps(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendProps);\n }\n }\n if (!raw && !hasExtends) {\n cache.set(comp, EMPTY_ARR);\n return EMPTY_ARR;\n }\n if (isArray$1(raw)) {\n for (let i = 0; i < raw.length; i++) {\n const normalizedKey = camelize$1(raw[i]);\n if (validatePropName(normalizedKey)) {\n normalized[normalizedKey] = EMPTY_OBJ;\n }\n }\n } else if (raw) {\n for (const key in raw) {\n const normalizedKey = camelize$1(key);\n if (validatePropName(normalizedKey)) {\n const opt = raw[key];\n const prop = normalized[normalizedKey] = isArray$1(opt) || isFunction$1(opt) ? { type: opt } : opt;\n if (prop) {\n const booleanIndex = getTypeIndex(Boolean, prop.type);\n const stringIndex = getTypeIndex(String, prop.type);\n prop[0] = booleanIndex > -1;\n prop[1] = stringIndex < 0 || booleanIndex < stringIndex;\n if (booleanIndex > -1 || hasOwn(prop, \"default\")) {\n needCastKeys.push(normalizedKey);\n }\n }\n }\n }\n }\n const res = [normalized, needCastKeys];\n cache.set(comp, res);\n return res;\n}\nfunction validatePropName(key) {\n if (key[0] !== \"$\") {\n return true;\n }\n return false;\n}\nfunction getType(ctor) {\n const match = ctor && ctor.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ctor === null ? \"null\" : \"\";\n}\nfunction isSameType(a, b) {\n return getType(a) === getType(b);\n}\nfunction getTypeIndex(type, expectedTypes) {\n if (isArray$1(expectedTypes)) {\n return expectedTypes.findIndex((t) => isSameType(t, type));\n } else if (isFunction$1(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1;\n }\n return -1;\n}\nconst isInternalKey = (key) => key[0] === \"_\" || key === \"$stable\";\nconst normalizeSlotValue = (value) => isArray$1(value) ? value.map(normalizeVNode) : [normalizeVNode(value)];\nconst normalizeSlot = (key, rawSlot, ctx) => {\n if (rawSlot._n) {\n return rawSlot;\n }\n const normalized = withCtx((...args) => {\n return normalizeSlotValue(rawSlot(...args));\n }, ctx);\n normalized._c = false;\n return normalized;\n};\nconst normalizeObjectSlots = (rawSlots, slots, instance2) => {\n const ctx = rawSlots._ctx;\n for (const key in rawSlots) {\n if (isInternalKey(key))\n continue;\n const value = rawSlots[key];\n if (isFunction$1(value)) {\n slots[key] = normalizeSlot(key, value, ctx);\n } else if (value != null) {\n const normalized = normalizeSlotValue(value);\n slots[key] = () => normalized;\n }\n }\n};\nconst normalizeVNodeSlots = (instance2, children) => {\n const normalized = normalizeSlotValue(children);\n instance2.slots.default = () => normalized;\n};\nconst initSlots = (instance2, children) => {\n if (instance2.vnode.shapeFlag & 32) {\n const type = children._;\n if (type) {\n instance2.slots = toRaw(children);\n def(children, \"_\", type);\n } else {\n normalizeObjectSlots(children, instance2.slots = {});\n }\n } else {\n instance2.slots = {};\n if (children) {\n normalizeVNodeSlots(instance2, children);\n }\n }\n def(instance2.slots, InternalObjectKey, 1);\n};\nconst updateSlots = (instance2, children, optimized) => {\n const { vnode, slots } = instance2;\n let needDeletionCheck = true;\n let deletionComparisonTarget = EMPTY_OBJ;\n if (vnode.shapeFlag & 32) {\n const type = children._;\n if (type) {\n if (optimized && type === 1) {\n needDeletionCheck = false;\n } else {\n extend$1(slots, children);\n if (!optimized && type === 1) {\n delete slots._;\n }\n }\n } else {\n needDeletionCheck = !children.$stable;\n normalizeObjectSlots(children, slots);\n }\n deletionComparisonTarget = children;\n } else if (children) {\n normalizeVNodeSlots(instance2, children);\n deletionComparisonTarget = { default: 1 };\n }\n if (needDeletionCheck) {\n for (const key in slots) {\n if (!isInternalKey(key) && !(key in deletionComparisonTarget)) {\n delete slots[key];\n }\n }\n }\n};\nfunction createAppContext() {\n return {\n app: null,\n config: {\n isNativeTag: NO,\n performance: false,\n globalProperties: {},\n optionMergeStrategies: {},\n errorHandler: void 0,\n warnHandler: void 0,\n compilerOptions: {}\n },\n mixins: [],\n components: {},\n directives: {},\n provides: /* @__PURE__ */ Object.create(null),\n optionsCache: /* @__PURE__ */ new WeakMap(),\n propsCache: /* @__PURE__ */ new WeakMap(),\n emitsCache: /* @__PURE__ */ new WeakMap()\n };\n}\nlet uid = 0;\nfunction createAppAPI(render2, hydrate) {\n return function createApp(rootComponent, rootProps = null) {\n if (!isFunction$1(rootComponent)) {\n rootComponent = Object.assign({}, rootComponent);\n }\n if (rootProps != null && !isObject$1(rootProps)) {\n rootProps = null;\n }\n const context = createAppContext();\n const installedPlugins = /* @__PURE__ */ new Set();\n let isMounted = false;\n const app = context.app = {\n _uid: uid++,\n _component: rootComponent,\n _props: rootProps,\n _container: null,\n _context: context,\n _instance: null,\n version,\n get config() {\n return context.config;\n },\n set config(v) {\n },\n use(plugin, ...options) {\n if (installedPlugins.has(plugin))\n ;\n else if (plugin && isFunction$1(plugin.install)) {\n installedPlugins.add(plugin);\n plugin.install(app, ...options);\n } else if (isFunction$1(plugin)) {\n installedPlugins.add(plugin);\n plugin(app, ...options);\n } else\n ;\n return app;\n },\n mixin(mixin) {\n {\n if (!context.mixins.includes(mixin)) {\n context.mixins.push(mixin);\n }\n }\n return app;\n },\n component(name, component) {\n if (!component) {\n return context.components[name];\n }\n context.components[name] = component;\n return app;\n },\n directive(name, directive2) {\n if (!directive2) {\n return context.directives[name];\n }\n context.directives[name] = directive2;\n return app;\n },\n mount(rootContainer, isHydrate, isSVG) {\n if (!isMounted) {\n const vnode = createVNode(rootComponent, rootProps);\n vnode.appContext = context;\n if (isHydrate && hydrate) {\n hydrate(vnode, rootContainer);\n } else {\n render2(vnode, rootContainer, isSVG);\n }\n isMounted = true;\n app._container = rootContainer;\n rootContainer.__vue_app__ = app;\n return getExposeProxy(vnode.component) || vnode.component.proxy;\n }\n },\n unmount() {\n if (isMounted) {\n render2(null, app._container);\n delete app._container.__vue_app__;\n }\n },\n provide(key, value) {\n context.provides[key] = value;\n return app;\n }\n };\n return app;\n };\n}\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n if (isArray$1(rawRef)) {\n rawRef.forEach((r, i) => setRef(r, oldRawRef && (isArray$1(oldRawRef) ? oldRawRef[i] : oldRawRef), parentSuspense, vnode, isUnmount));\n return;\n }\n if (isAsyncWrapper(vnode) && !isUnmount) {\n return;\n }\n const refValue = vnode.shapeFlag & 4 ? getExposeProxy(vnode.component) || vnode.component.proxy : vnode.el;\n const value = isUnmount ? null : refValue;\n const { i: owner, r: ref } = rawRef;\n const oldRef = oldRawRef && oldRawRef.r;\n const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;\n const setupState = owner.setupState;\n if (oldRef != null && oldRef !== ref) {\n if (isString$1(oldRef)) {\n refs[oldRef] = null;\n if (hasOwn(setupState, oldRef)) {\n setupState[oldRef] = null;\n }\n } else if (isRef(oldRef)) {\n oldRef.value = null;\n }\n }\n if (isFunction$1(ref)) {\n callWithErrorHandling(ref, owner, 12, [value, refs]);\n } else {\n const _isString = isString$1(ref);\n const _isRef = isRef(ref);\n if (_isString || _isRef) {\n const doSet = () => {\n if (rawRef.f) {\n const existing = _isString ? refs[ref] : ref.value;\n if (isUnmount) {\n isArray$1(existing) && remove(existing, refValue);\n } else {\n if (!isArray$1(existing)) {\n if (_isString) {\n refs[ref] = [refValue];\n if (hasOwn(setupState, ref)) {\n setupState[ref] = refs[ref];\n }\n } else {\n ref.value = [refValue];\n if (rawRef.k)\n refs[rawRef.k] = ref.value;\n }\n } else if (!existing.includes(refValue)) {\n existing.push(refValue);\n }\n }\n } else if (_isString) {\n refs[ref] = value;\n if (hasOwn(setupState, ref)) {\n setupState[ref] = value;\n }\n } else if (_isRef) {\n ref.value = value;\n if (rawRef.k)\n refs[rawRef.k] = value;\n } else\n ;\n };\n if (value) {\n doSet.id = -1;\n queuePostRenderEffect(doSet, parentSuspense);\n } else {\n doSet();\n }\n }\n }\n}\nconst queuePostRenderEffect = queueEffectWithSuspense;\nfunction createRenderer(options) {\n return baseCreateRenderer(options);\n}\nfunction baseCreateRenderer(options, createHydrationFns) {\n const target = getGlobalThis();\n target.__VUE__ = true;\n const { insert: hostInsert, remove: hostRemove, patchProp: hostPatchProp, createElement: hostCreateElement, createText: hostCreateText, createComment: hostCreateComment, setText: hostSetText, setElementText: hostSetElementText, parentNode: hostParentNode, nextSibling: hostNextSibling, setScopeId: hostSetScopeId = NOOP, cloneNode: hostCloneNode, insertStaticContent: hostInsertStaticContent } = options;\n const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, isSVG = false, slotScopeIds = null, optimized = !!n2.dynamicChildren) => {\n if (n1 === n2) {\n return;\n }\n if (n1 && !isSameVNodeType(n1, n2)) {\n anchor = getNextHostNode(n1);\n unmount(n1, parentComponent, parentSuspense, true);\n n1 = null;\n }\n if (n2.patchFlag === -2) {\n optimized = false;\n n2.dynamicChildren = null;\n }\n const { type, ref, shapeFlag } = n2;\n switch (type) {\n case Text:\n processText(n1, n2, container, anchor);\n break;\n case Comment:\n processCommentNode(n1, n2, container, anchor);\n break;\n case Static:\n if (n1 == null) {\n mountStaticNode(n2, container, anchor, isSVG);\n }\n break;\n case Fragment:\n processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n break;\n default:\n if (shapeFlag & 1) {\n processElement(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n } else if (shapeFlag & 6) {\n processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n } else if (shapeFlag & 64) {\n type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals);\n } else if (shapeFlag & 128) {\n type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals);\n } else\n ;\n }\n if (ref != null && parentComponent) {\n setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2);\n }\n };\n const processText = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert(n2.el = hostCreateText(n2.children), container, anchor);\n } else {\n const el = n2.el = n1.el;\n if (n2.children !== n1.children) {\n hostSetText(el, n2.children);\n }\n }\n };\n const processCommentNode = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert(n2.el = hostCreateComment(n2.children || \"\"), container, anchor);\n } else {\n n2.el = n1.el;\n }\n };\n const mountStaticNode = (n2, container, anchor, isSVG) => {\n [n2.el, n2.anchor] = hostInsertStaticContent(n2.children, container, anchor, isSVG, n2.el, n2.anchor);\n };\n const moveStaticNode = ({ el, anchor }, container, nextSibling) => {\n let next;\n while (el && el !== anchor) {\n next = hostNextSibling(el);\n hostInsert(el, container, nextSibling);\n el = next;\n }\n hostInsert(anchor, container, nextSibling);\n };\n const removeStaticNode = ({ el, anchor }) => {\n let next;\n while (el && el !== anchor) {\n next = hostNextSibling(el);\n hostRemove(el);\n el = next;\n }\n hostRemove(anchor);\n };\n const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n isSVG = isSVG || n2.type === \"svg\";\n if (n1 == null) {\n mountElement(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n } else {\n patchElement(n1, n2, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n };\n const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n let el;\n let vnodeHook;\n const { type, props, shapeFlag, transition, patchFlag, dirs } = vnode;\n if (vnode.el && hostCloneNode !== void 0 && patchFlag === -1) {\n el = vnode.el = hostCloneNode(vnode.el);\n } else {\n el = vnode.el = hostCreateElement(vnode.type, isSVG, props && props.is, props);\n if (shapeFlag & 8) {\n hostSetElementText(el, vnode.children);\n } else if (shapeFlag & 16) {\n mountChildren(vnode.children, el, null, parentComponent, parentSuspense, isSVG && type !== \"foreignObject\", slotScopeIds, optimized);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n }\n if (props) {\n for (const key in props) {\n if (key !== \"value\" && !isReservedProp(key)) {\n hostPatchProp(el, key, null, props[key], isSVG, vnode.children, parentComponent, parentSuspense, unmountChildren);\n }\n }\n if (\"value\" in props) {\n hostPatchProp(el, \"value\", null, props.value);\n }\n if (vnodeHook = props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n }\n setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n const needCallTransitionHooks = (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted;\n if (needCallTransitionHooks) {\n transition.beforeEnter(el);\n }\n hostInsert(el, container, anchor);\n if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n };\n const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => {\n if (scopeId) {\n hostSetScopeId(el, scopeId);\n }\n if (slotScopeIds) {\n for (let i = 0; i < slotScopeIds.length; i++) {\n hostSetScopeId(el, slotScopeIds[i]);\n }\n }\n if (parentComponent) {\n let subTree = parentComponent.subTree;\n if (vnode === subTree) {\n const parentVNode = parentComponent.vnode;\n setScopeId(el, parentVNode, parentVNode.scopeId, parentVNode.slotScopeIds, parentComponent.parent);\n }\n }\n };\n const mountChildren = (children, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, start = 0) => {\n for (let i = start; i < children.length; i++) {\n const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);\n patch(null, child, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n };\n const patchElement = (n1, n2, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n const el = n2.el = n1.el;\n let { patchFlag, dynamicChildren, dirs } = n2;\n patchFlag |= n1.patchFlag & 16;\n const oldProps = n1.props || EMPTY_OBJ;\n const newProps = n2.props || EMPTY_OBJ;\n let vnodeHook;\n parentComponent && toggleRecurse(parentComponent, false);\n if (vnodeHook = newProps.onVnodeBeforeUpdate) {\n invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n }\n if (dirs) {\n invokeDirectiveHook(n2, n1, parentComponent, \"beforeUpdate\");\n }\n parentComponent && toggleRecurse(parentComponent, true);\n const areChildrenSVG = isSVG && n2.type !== \"foreignObject\";\n if (dynamicChildren) {\n patchBlockChildren(n1.dynamicChildren, dynamicChildren, el, parentComponent, parentSuspense, areChildrenSVG, slotScopeIds);\n } else if (!optimized) {\n patchChildren(n1, n2, el, null, parentComponent, parentSuspense, areChildrenSVG, slotScopeIds, false);\n }\n if (patchFlag > 0) {\n if (patchFlag & 16) {\n patchProps(el, n2, oldProps, newProps, parentComponent, parentSuspense, isSVG);\n } else {\n if (patchFlag & 2) {\n if (oldProps.class !== newProps.class) {\n hostPatchProp(el, \"class\", null, newProps.class, isSVG);\n }\n }\n if (patchFlag & 4) {\n hostPatchProp(el, \"style\", oldProps.style, newProps.style, isSVG);\n }\n if (patchFlag & 8) {\n const propsToUpdate = n2.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n const key = propsToUpdate[i];\n const prev = oldProps[key];\n const next = newProps[key];\n if (next !== prev || key === \"value\") {\n hostPatchProp(el, key, prev, next, isSVG, n1.children, parentComponent, parentSuspense, unmountChildren);\n }\n }\n }\n }\n if (patchFlag & 1) {\n if (n1.children !== n2.children) {\n hostSetElementText(el, n2.children);\n }\n }\n } else if (!optimized && dynamicChildren == null) {\n patchProps(el, n2, oldProps, newProps, parentComponent, parentSuspense, isSVG);\n }\n if ((vnodeHook = newProps.onVnodeUpdated) || dirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n dirs && invokeDirectiveHook(n2, n1, parentComponent, \"updated\");\n }, parentSuspense);\n }\n };\n const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, isSVG, slotScopeIds) => {\n for (let i = 0; i < newChildren.length; i++) {\n const oldVNode = oldChildren[i];\n const newVNode = newChildren[i];\n const container = oldVNode.el && (oldVNode.type === Fragment || !isSameVNodeType(oldVNode, newVNode) || oldVNode.shapeFlag & (6 | 64)) ? hostParentNode(oldVNode.el) : fallbackContainer;\n patch(oldVNode, newVNode, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, true);\n }\n };\n const patchProps = (el, vnode, oldProps, newProps, parentComponent, parentSuspense, isSVG) => {\n if (oldProps !== newProps) {\n for (const key in newProps) {\n if (isReservedProp(key))\n continue;\n const next = newProps[key];\n const prev = oldProps[key];\n if (next !== prev && key !== \"value\") {\n hostPatchProp(el, key, prev, next, isSVG, vnode.children, parentComponent, parentSuspense, unmountChildren);\n }\n }\n if (oldProps !== EMPTY_OBJ) {\n for (const key in oldProps) {\n if (!isReservedProp(key) && !(key in newProps)) {\n hostPatchProp(el, key, oldProps[key], null, isSVG, vnode.children, parentComponent, parentSuspense, unmountChildren);\n }\n }\n }\n if (\"value\" in newProps) {\n hostPatchProp(el, \"value\", oldProps.value, newProps.value);\n }\n }\n };\n const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText(\"\");\n const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText(\"\");\n let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2;\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n if (n1 == null) {\n hostInsert(fragmentStartAnchor, container, anchor);\n hostInsert(fragmentEndAnchor, container, anchor);\n mountChildren(n2.children, container, fragmentEndAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n } else {\n if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && n1.dynamicChildren) {\n patchBlockChildren(n1.dynamicChildren, dynamicChildren, container, parentComponent, parentSuspense, isSVG, slotScopeIds);\n if (n2.key != null || parentComponent && n2 === parentComponent.subTree) {\n traverseStaticChildren(n1, n2, true);\n }\n } else {\n patchChildren(n1, n2, container, fragmentEndAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n }\n };\n const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n n2.slotScopeIds = slotScopeIds;\n if (n1 == null) {\n if (n2.shapeFlag & 512) {\n parentComponent.ctx.activate(n2, container, anchor, isSVG, optimized);\n } else {\n mountComponent(n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized);\n }\n } else {\n updateComponent(n1, n2, optimized);\n }\n };\n const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, isSVG, optimized) => {\n const instance2 = initialVNode.component = createComponentInstance(initialVNode, parentComponent, parentSuspense);\n if (isKeepAlive(initialVNode)) {\n instance2.ctx.renderer = internals;\n }\n {\n setupComponent(instance2);\n }\n if (instance2.asyncDep) {\n parentSuspense && parentSuspense.registerDep(instance2, setupRenderEffect);\n if (!initialVNode.el) {\n const placeholder = instance2.subTree = createVNode(Comment);\n processCommentNode(null, placeholder, container, anchor);\n }\n return;\n }\n setupRenderEffect(instance2, initialVNode, container, anchor, parentSuspense, isSVG, optimized);\n };\n const updateComponent = (n1, n2, optimized) => {\n const instance2 = n2.component = n1.component;\n if (shouldUpdateComponent(n1, n2, optimized)) {\n if (instance2.asyncDep && !instance2.asyncResolved) {\n updateComponentPreRender(instance2, n2, optimized);\n return;\n } else {\n instance2.next = n2;\n invalidateJob(instance2.update);\n instance2.update();\n }\n } else {\n n2.el = n1.el;\n instance2.vnode = n2;\n }\n };\n const setupRenderEffect = (instance2, initialVNode, container, anchor, parentSuspense, isSVG, optimized) => {\n const componentUpdateFn = () => {\n if (!instance2.isMounted) {\n let vnodeHook;\n const { el, props } = initialVNode;\n const { bm, m, parent } = instance2;\n const isAsyncWrapperVNode = isAsyncWrapper(initialVNode);\n toggleRecurse(instance2, false);\n if (bm) {\n invokeArrayFns(bm);\n }\n if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) {\n invokeVNodeHook(vnodeHook, parent, initialVNode);\n }\n toggleRecurse(instance2, true);\n if (el && hydrateNode) {\n const hydrateSubTree = () => {\n instance2.subTree = renderComponentRoot(instance2);\n hydrateNode(el, instance2.subTree, instance2, parentSuspense, null);\n };\n if (isAsyncWrapperVNode) {\n initialVNode.type.__asyncLoader().then(\n () => !instance2.isUnmounted && hydrateSubTree()\n );\n } else {\n hydrateSubTree();\n }\n } else {\n const subTree = instance2.subTree = renderComponentRoot(instance2);\n patch(null, subTree, container, anchor, instance2, parentSuspense, isSVG);\n initialVNode.el = subTree.el;\n }\n if (m) {\n queuePostRenderEffect(m, parentSuspense);\n }\n if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) {\n const scopedInitialVNode = initialVNode;\n queuePostRenderEffect(() => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode), parentSuspense);\n }\n if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) {\n instance2.a && queuePostRenderEffect(instance2.a, parentSuspense);\n }\n instance2.isMounted = true;\n initialVNode = container = anchor = null;\n } else {\n let { next, bu, u, parent, vnode } = instance2;\n let originNext = next;\n let vnodeHook;\n toggleRecurse(instance2, false);\n if (next) {\n next.el = vnode.el;\n updateComponentPreRender(instance2, next, optimized);\n } else {\n next = vnode;\n }\n if (bu) {\n invokeArrayFns(bu);\n }\n if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) {\n invokeVNodeHook(vnodeHook, parent, next, vnode);\n }\n toggleRecurse(instance2, true);\n const nextTree = renderComponentRoot(instance2);\n const prevTree = instance2.subTree;\n instance2.subTree = nextTree;\n patch(\n prevTree,\n nextTree,\n hostParentNode(prevTree.el),\n getNextHostNode(prevTree),\n instance2,\n parentSuspense,\n isSVG\n );\n next.el = nextTree.el;\n if (originNext === null) {\n updateHOCHostEl(instance2, nextTree.el);\n }\n if (u) {\n queuePostRenderEffect(u, parentSuspense);\n }\n if (vnodeHook = next.props && next.props.onVnodeUpdated) {\n queuePostRenderEffect(() => invokeVNodeHook(vnodeHook, parent, next, vnode), parentSuspense);\n }\n }\n };\n const effect = instance2.effect = new ReactiveEffect(\n componentUpdateFn,\n () => queueJob(update2),\n instance2.scope\n );\n const update2 = instance2.update = () => effect.run();\n update2.id = instance2.uid;\n toggleRecurse(instance2, true);\n update2();\n };\n const updateComponentPreRender = (instance2, nextVNode, optimized) => {\n nextVNode.component = instance2;\n const prevProps = instance2.vnode.props;\n instance2.vnode = nextVNode;\n instance2.next = null;\n updateProps(instance2, nextVNode.props, prevProps, optimized);\n updateSlots(instance2, nextVNode.children, optimized);\n pauseTracking();\n flushPreFlushCbs(void 0, instance2.update);\n resetTracking();\n };\n const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized = false) => {\n const c1 = n1 && n1.children;\n const prevShapeFlag = n1 ? n1.shapeFlag : 0;\n const c2 = n2.children;\n const { patchFlag, shapeFlag } = n2;\n if (patchFlag > 0) {\n if (patchFlag & 128) {\n patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n return;\n } else if (patchFlag & 256) {\n patchUnkeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n return;\n }\n }\n if (shapeFlag & 8) {\n if (prevShapeFlag & 16) {\n unmountChildren(c1, parentComponent, parentSuspense);\n }\n if (c2 !== c1) {\n hostSetElementText(container, c2);\n }\n } else {\n if (prevShapeFlag & 16) {\n if (shapeFlag & 16) {\n patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n } else {\n unmountChildren(c1, parentComponent, parentSuspense, true);\n }\n } else {\n if (prevShapeFlag & 8) {\n hostSetElementText(container, \"\");\n }\n if (shapeFlag & 16) {\n mountChildren(c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n }\n }\n };\n const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n c1 = c1 || EMPTY_ARR;\n c2 = c2 || EMPTY_ARR;\n const oldLength = c1.length;\n const newLength = c2.length;\n const commonLength = Math.min(oldLength, newLength);\n let i;\n for (i = 0; i < commonLength; i++) {\n const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n patch(c1[i], nextChild, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n if (oldLength > newLength) {\n unmountChildren(c1, parentComponent, parentSuspense, true, false, commonLength);\n } else {\n mountChildren(c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, commonLength);\n }\n };\n const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n let i = 0;\n const l2 = c2.length;\n let e1 = c1.length - 1;\n let e2 = l2 - 1;\n while (i <= e1 && i <= e2) {\n const n1 = c1[i];\n const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n if (isSameVNodeType(n1, n2)) {\n patch(n1, n2, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n } else {\n break;\n }\n i++;\n }\n while (i <= e1 && i <= e2) {\n const n1 = c1[e1];\n const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]);\n if (isSameVNodeType(n1, n2)) {\n patch(n1, n2, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n } else {\n break;\n }\n e1--;\n e2--;\n }\n if (i > e1) {\n if (i <= e2) {\n const nextPos = e2 + 1;\n const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor;\n while (i <= e2) {\n patch(null, c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]), container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n i++;\n }\n }\n } else if (i > e2) {\n while (i <= e1) {\n unmount(c1[i], parentComponent, parentSuspense, true);\n i++;\n }\n } else {\n const s1 = i;\n const s2 = i;\n const keyToNewIndexMap = /* @__PURE__ */ new Map();\n for (i = s2; i <= e2; i++) {\n const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n if (nextChild.key != null) {\n keyToNewIndexMap.set(nextChild.key, i);\n }\n }\n let j;\n let patched = 0;\n const toBePatched = e2 - s2 + 1;\n let moved = false;\n let maxNewIndexSoFar = 0;\n const newIndexToOldIndexMap = new Array(toBePatched);\n for (i = 0; i < toBePatched; i++)\n newIndexToOldIndexMap[i] = 0;\n for (i = s1; i <= e1; i++) {\n const prevChild = c1[i];\n if (patched >= toBePatched) {\n unmount(prevChild, parentComponent, parentSuspense, true);\n continue;\n }\n let newIndex;\n if (prevChild.key != null) {\n newIndex = keyToNewIndexMap.get(prevChild.key);\n } else {\n for (j = s2; j <= e2; j++) {\n if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) {\n newIndex = j;\n break;\n }\n }\n }\n if (newIndex === void 0) {\n unmount(prevChild, parentComponent, parentSuspense, true);\n } else {\n newIndexToOldIndexMap[newIndex - s2] = i + 1;\n if (newIndex >= maxNewIndexSoFar) {\n maxNewIndexSoFar = newIndex;\n } else {\n moved = true;\n }\n patch(prevChild, c2[newIndex], container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n patched++;\n }\n }\n const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : EMPTY_ARR;\n j = increasingNewIndexSequence.length - 1;\n for (i = toBePatched - 1; i >= 0; i--) {\n const nextIndex = s2 + i;\n const nextChild = c2[nextIndex];\n const anchor = nextIndex + 1 < l2 ? c2[nextIndex + 1].el : parentAnchor;\n if (newIndexToOldIndexMap[i] === 0) {\n patch(null, nextChild, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n } else if (moved) {\n if (j < 0 || i !== increasingNewIndexSequence[j]) {\n move(nextChild, container, anchor, 2);\n } else {\n j--;\n }\n }\n }\n }\n };\n const move = (vnode, container, anchor, moveType, parentSuspense = null) => {\n const { el, type, transition, children, shapeFlag } = vnode;\n if (shapeFlag & 6) {\n move(vnode.component.subTree, container, anchor, moveType);\n return;\n }\n if (shapeFlag & 128) {\n vnode.suspense.move(container, anchor, moveType);\n return;\n }\n if (shapeFlag & 64) {\n type.move(vnode, container, anchor, internals);\n return;\n }\n if (type === Fragment) {\n hostInsert(el, container, anchor);\n for (let i = 0; i < children.length; i++) {\n move(children[i], container, anchor, moveType);\n }\n hostInsert(vnode.anchor, container, anchor);\n return;\n }\n if (type === Static) {\n moveStaticNode(vnode, container, anchor);\n return;\n }\n const needTransition = moveType !== 2 && shapeFlag & 1 && transition;\n if (needTransition) {\n if (moveType === 0) {\n transition.beforeEnter(el);\n hostInsert(el, container, anchor);\n queuePostRenderEffect(() => transition.enter(el), parentSuspense);\n } else {\n const { leave, delayLeave, afterLeave } = transition;\n const remove3 = () => hostInsert(el, container, anchor);\n const performLeave = () => {\n leave(el, () => {\n remove3();\n afterLeave && afterLeave();\n });\n };\n if (delayLeave) {\n delayLeave(el, remove3, performLeave);\n } else {\n performLeave();\n }\n }\n } else {\n hostInsert(el, container, anchor);\n }\n };\n const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {\n const { type, props, ref, children, dynamicChildren, shapeFlag, patchFlag, dirs } = vnode;\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode, true);\n }\n if (shapeFlag & 256) {\n parentComponent.ctx.deactivate(vnode);\n return;\n }\n const shouldInvokeDirs = shapeFlag & 1 && dirs;\n const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);\n let vnodeHook;\n if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n if (shapeFlag & 6) {\n unmountComponent(vnode.component, parentSuspense, doRemove);\n } else {\n if (shapeFlag & 128) {\n vnode.suspense.unmount(parentSuspense, doRemove);\n return;\n }\n if (shouldInvokeDirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeUnmount\");\n }\n if (shapeFlag & 64) {\n vnode.type.remove(vnode, parentComponent, parentSuspense, optimized, internals, doRemove);\n } else if (dynamicChildren && (type !== Fragment || patchFlag > 0 && patchFlag & 64)) {\n unmountChildren(dynamicChildren, parentComponent, parentSuspense, false, true);\n } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) {\n unmountChildren(children, parentComponent, parentSuspense);\n }\n if (doRemove) {\n remove2(vnode);\n }\n }\n if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, \"unmounted\");\n }, parentSuspense);\n }\n };\n const remove2 = (vnode) => {\n const { type, el, anchor, transition } = vnode;\n if (type === Fragment) {\n {\n removeFragment(el, anchor);\n }\n return;\n }\n if (type === Static) {\n removeStaticNode(vnode);\n return;\n }\n const performRemove = () => {\n hostRemove(el);\n if (transition && !transition.persisted && transition.afterLeave) {\n transition.afterLeave();\n }\n };\n if (vnode.shapeFlag & 1 && transition && !transition.persisted) {\n const { leave, delayLeave } = transition;\n const performLeave = () => leave(el, performRemove);\n if (delayLeave) {\n delayLeave(vnode.el, performRemove, performLeave);\n } else {\n performLeave();\n }\n } else {\n performRemove();\n }\n };\n const removeFragment = (cur, end) => {\n let next;\n while (cur !== end) {\n next = hostNextSibling(cur);\n hostRemove(cur);\n cur = next;\n }\n hostRemove(end);\n };\n const unmountComponent = (instance2, parentSuspense, doRemove) => {\n const { bum, scope, update: update2, subTree, um } = instance2;\n if (bum) {\n invokeArrayFns(bum);\n }\n scope.stop();\n if (update2) {\n update2.active = false;\n unmount(subTree, instance2, parentSuspense, doRemove);\n }\n if (um) {\n queuePostRenderEffect(um, parentSuspense);\n }\n queuePostRenderEffect(() => {\n instance2.isUnmounted = true;\n }, parentSuspense);\n if (parentSuspense && parentSuspense.pendingBranch && !parentSuspense.isUnmounted && instance2.asyncDep && !instance2.asyncResolved && instance2.suspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0) {\n parentSuspense.resolve();\n }\n }\n };\n const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => {\n for (let i = start; i < children.length; i++) {\n unmount(children[i], parentComponent, parentSuspense, doRemove, optimized);\n }\n };\n const getNextHostNode = (vnode) => {\n if (vnode.shapeFlag & 6) {\n return getNextHostNode(vnode.component.subTree);\n }\n if (vnode.shapeFlag & 128) {\n return vnode.suspense.next();\n }\n return hostNextSibling(vnode.anchor || vnode.el);\n };\n const render2 = (vnode, container, isSVG) => {\n if (vnode == null) {\n if (container._vnode) {\n unmount(container._vnode, null, null, true);\n }\n } else {\n patch(container._vnode || null, vnode, container, null, null, null, isSVG);\n }\n flushPostFlushCbs();\n container._vnode = vnode;\n };\n const internals = {\n p: patch,\n um: unmount,\n m: move,\n r: remove2,\n mt: mountComponent,\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n n: getNextHostNode,\n o: options\n };\n let hydrate;\n let hydrateNode;\n if (createHydrationFns) {\n [hydrate, hydrateNode] = createHydrationFns(internals);\n }\n return {\n render: render2,\n hydrate,\n createApp: createAppAPI(render2, hydrate)\n };\n}\nfunction toggleRecurse({ effect, update: update2 }, allowed) {\n effect.allowRecurse = update2.allowRecurse = allowed;\n}\nfunction traverseStaticChildren(n1, n2, shallow = false) {\n const ch1 = n1.children;\n const ch2 = n2.children;\n if (isArray$1(ch1) && isArray$1(ch2)) {\n for (let i = 0; i < ch1.length; i++) {\n const c1 = ch1[i];\n let c2 = ch2[i];\n if (c2.shapeFlag & 1 && !c2.dynamicChildren) {\n if (c2.patchFlag <= 0 || c2.patchFlag === 32) {\n c2 = ch2[i] = cloneIfMounted(ch2[i]);\n c2.el = c1.el;\n }\n if (!shallow)\n traverseStaticChildren(c1, c2);\n }\n }\n }\n}\nfunction getSequence(arr) {\n const p2 = arr.slice();\n const result = [0];\n let i, j, u, v, c;\n const len = arr.length;\n for (i = 0; i < len; i++) {\n const arrI = arr[i];\n if (arrI !== 0) {\n j = result[result.length - 1];\n if (arr[j] < arrI) {\n p2[i] = j;\n result.push(i);\n continue;\n }\n u = 0;\n v = result.length - 1;\n while (u < v) {\n c = u + v >> 1;\n if (arr[result[c]] < arrI) {\n u = c + 1;\n } else {\n v = c;\n }\n }\n if (arrI < arr[result[u]]) {\n if (u > 0) {\n p2[i] = result[u - 1];\n }\n result[u] = i;\n }\n }\n }\n u = result.length;\n v = result[u - 1];\n while (u-- > 0) {\n result[u] = v;\n v = p2[v];\n }\n return result;\n}\nconst isTeleport = (type) => type.__isTeleport;\nconst Fragment = Symbol(void 0);\nconst Text = Symbol(void 0);\nconst Comment = Symbol(void 0);\nconst Static = Symbol(void 0);\nconst blockStack = [];\nlet currentBlock = null;\nfunction openBlock(disableTracking = false) {\n blockStack.push(currentBlock = disableTracking ? null : []);\n}\nfunction closeBlock() {\n blockStack.pop();\n currentBlock = blockStack[blockStack.length - 1] || null;\n}\nlet isBlockTreeEnabled = 1;\nfunction setBlockTracking(value) {\n isBlockTreeEnabled += value;\n}\nfunction setupBlock(vnode) {\n vnode.dynamicChildren = isBlockTreeEnabled > 0 ? currentBlock || EMPTY_ARR : null;\n closeBlock();\n if (isBlockTreeEnabled > 0 && currentBlock) {\n currentBlock.push(vnode);\n }\n return vnode;\n}\nfunction createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) {\n return setupBlock(createBaseVNode(type, props, children, patchFlag, dynamicProps, shapeFlag, true));\n}\nfunction createBlock(type, props, children, patchFlag, dynamicProps) {\n return setupBlock(createVNode(type, props, children, patchFlag, dynamicProps, true));\n}\nfunction isVNode(value) {\n return value ? value.__v_isVNode === true : false;\n}\nfunction isSameVNodeType(n1, n2) {\n return n1.type === n2.type && n1.key === n2.key;\n}\nconst InternalObjectKey = `__vInternal`;\nconst normalizeKey = ({ key }) => key != null ? key : null;\nconst normalizeRef = ({ ref, ref_key, ref_for }) => {\n return ref != null ? isString$1(ref) || isRef(ref) || isFunction$1(ref) ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for } : ref : null;\n};\nfunction createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) {\n const vnode = {\n __v_isVNode: true,\n __v_skip: true,\n type,\n props,\n key: props && normalizeKey(props),\n ref: props && normalizeRef(props),\n scopeId: currentScopeId,\n slotScopeIds: null,\n children,\n component: null,\n suspense: null,\n ssContent: null,\n ssFallback: null,\n dirs: null,\n transition: null,\n el: null,\n anchor: null,\n target: null,\n targetAnchor: null,\n staticCount: 0,\n shapeFlag,\n patchFlag,\n dynamicProps,\n dynamicChildren: null,\n appContext: null\n };\n if (needFullChildrenNormalization) {\n normalizeChildren(vnode, children);\n if (shapeFlag & 128) {\n type.normalize(vnode);\n }\n } else if (children) {\n vnode.shapeFlag |= isString$1(children) ? 8 : 16;\n }\n if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock && (vnode.patchFlag > 0 || shapeFlag & 6) && vnode.patchFlag !== 32) {\n currentBlock.push(vnode);\n }\n return vnode;\n}\nconst createVNode = _createVNode;\nfunction _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {\n if (!type || type === NULL_DYNAMIC_COMPONENT) {\n type = Comment;\n }\n if (isVNode(type)) {\n const cloned = cloneVNode(type, props, true);\n if (children) {\n normalizeChildren(cloned, children);\n }\n if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {\n if (cloned.shapeFlag & 6) {\n currentBlock[currentBlock.indexOf(type)] = cloned;\n } else {\n currentBlock.push(cloned);\n }\n }\n cloned.patchFlag |= -2;\n return cloned;\n }\n if (isClassComponent(type)) {\n type = type.__vccOpts;\n }\n if (props) {\n props = guardReactiveProps(props);\n let { class: klass, style } = props;\n if (klass && !isString$1(klass)) {\n props.class = normalizeClass(klass);\n }\n if (isObject$1(style)) {\n if (isProxy(style) && !isArray$1(style)) {\n style = extend$1({}, style);\n }\n props.style = normalizeStyle(style);\n }\n }\n const shapeFlag = isString$1(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject$1(type) ? 4 : isFunction$1(type) ? 2 : 0;\n return createBaseVNode(type, props, children, patchFlag, dynamicProps, shapeFlag, isBlockNode, true);\n}\nfunction guardReactiveProps(props) {\n if (!props)\n return null;\n return isProxy(props) || InternalObjectKey in props ? extend$1({}, props) : props;\n}\nfunction cloneVNode(vnode, extraProps, mergeRef = false) {\n const { props, ref, patchFlag, children } = vnode;\n const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;\n const cloned = {\n __v_isVNode: true,\n __v_skip: true,\n type: vnode.type,\n props: mergedProps,\n key: mergedProps && normalizeKey(mergedProps),\n ref: extraProps && extraProps.ref ? mergeRef && ref ? isArray$1(ref) ? ref.concat(normalizeRef(extraProps)) : [ref, normalizeRef(extraProps)] : normalizeRef(extraProps) : ref,\n scopeId: vnode.scopeId,\n slotScopeIds: vnode.slotScopeIds,\n children,\n target: vnode.target,\n targetAnchor: vnode.targetAnchor,\n staticCount: vnode.staticCount,\n shapeFlag: vnode.shapeFlag,\n patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag,\n dynamicProps: vnode.dynamicProps,\n dynamicChildren: vnode.dynamicChildren,\n appContext: vnode.appContext,\n dirs: vnode.dirs,\n transition: vnode.transition,\n component: vnode.component,\n suspense: vnode.suspense,\n ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),\n ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),\n el: vnode.el,\n anchor: vnode.anchor\n };\n return cloned;\n}\nfunction createTextVNode(text2 = \" \", flag = 0) {\n return createVNode(Text, null, text2, flag);\n}\nfunction createCommentVNode(text2 = \"\", asBlock = false) {\n return asBlock ? (openBlock(), createBlock(Comment, null, text2)) : createVNode(Comment, null, text2);\n}\nfunction normalizeVNode(child) {\n if (child == null || typeof child === \"boolean\") {\n return createVNode(Comment);\n } else if (isArray$1(child)) {\n return createVNode(\n Fragment,\n null,\n child.slice()\n );\n } else if (typeof child === \"object\") {\n return cloneIfMounted(child);\n } else {\n return createVNode(Text, null, String(child));\n }\n}\nfunction cloneIfMounted(child) {\n return child.el === null || child.memo ? child : cloneVNode(child);\n}\nfunction normalizeChildren(vnode, children) {\n let type = 0;\n const { shapeFlag } = vnode;\n if (children == null) {\n children = null;\n } else if (isArray$1(children)) {\n type = 16;\n } else if (typeof children === \"object\") {\n if (shapeFlag & (1 | 64)) {\n const slot = children.default;\n if (slot) {\n slot._c && (slot._d = false);\n normalizeChildren(vnode, slot());\n slot._c && (slot._d = true);\n }\n return;\n } else {\n type = 32;\n const slotFlag = children._;\n if (!slotFlag && !(InternalObjectKey in children)) {\n children._ctx = currentRenderingInstance;\n } else if (slotFlag === 3 && currentRenderingInstance) {\n if (currentRenderingInstance.slots._ === 1) {\n children._ = 1;\n } else {\n children._ = 2;\n vnode.patchFlag |= 1024;\n }\n }\n }\n } else if (isFunction$1(children)) {\n children = { default: children, _ctx: currentRenderingInstance };\n type = 32;\n } else {\n children = String(children);\n if (shapeFlag & 64) {\n type = 16;\n children = [createTextVNode(children)];\n } else {\n type = 8;\n }\n }\n vnode.children = children;\n vnode.shapeFlag |= type;\n}\nfunction mergeProps(...args) {\n const ret = {};\n for (let i = 0; i < args.length; i++) {\n const toMerge = args[i];\n for (const key in toMerge) {\n if (key === \"class\") {\n if (ret.class !== toMerge.class) {\n ret.class = normalizeClass([ret.class, toMerge.class]);\n }\n } else if (key === \"style\") {\n ret.style = normalizeStyle([ret.style, toMerge.style]);\n } else if (isOn$1(key)) {\n const existing = ret[key];\n const incoming = toMerge[key];\n if (incoming && existing !== incoming && !(isArray$1(existing) && existing.includes(incoming))) {\n ret[key] = existing ? [].concat(existing, incoming) : incoming;\n }\n } else if (key !== \"\") {\n ret[key] = toMerge[key];\n }\n }\n }\n return ret;\n}\nfunction invokeVNodeHook(hook, instance2, vnode, prevVNode = null) {\n callWithAsyncErrorHandling(hook, instance2, 7, [\n vnode,\n prevVNode\n ]);\n}\nconst emptyAppContext = createAppContext();\nlet uid$1 = 0;\nfunction createComponentInstance(vnode, parent, suspense) {\n const type = vnode.type;\n const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;\n const instance2 = {\n uid: uid$1++,\n vnode,\n type,\n parent,\n appContext,\n root: null,\n next: null,\n subTree: null,\n effect: null,\n update: null,\n scope: new EffectScope(true),\n render: null,\n proxy: null,\n exposed: null,\n exposeProxy: null,\n withProxy: null,\n provides: parent ? parent.provides : Object.create(appContext.provides),\n accessCache: null,\n renderCache: [],\n components: null,\n directives: null,\n propsOptions: normalizePropsOptions(type, appContext),\n emitsOptions: normalizeEmitsOptions(type, appContext),\n emit: null,\n emitted: null,\n propsDefaults: EMPTY_OBJ,\n inheritAttrs: type.inheritAttrs,\n ctx: EMPTY_OBJ,\n data: EMPTY_OBJ,\n props: EMPTY_OBJ,\n attrs: EMPTY_OBJ,\n slots: EMPTY_OBJ,\n refs: EMPTY_OBJ,\n setupState: EMPTY_OBJ,\n setupContext: null,\n suspense,\n suspenseId: suspense ? suspense.pendingId : 0,\n asyncDep: null,\n asyncResolved: false,\n isMounted: false,\n isUnmounted: false,\n isDeactivated: false,\n bc: null,\n c: null,\n bm: null,\n m: null,\n bu: null,\n u: null,\n um: null,\n bum: null,\n da: null,\n a: null,\n rtg: null,\n rtc: null,\n ec: null,\n sp: null\n };\n {\n instance2.ctx = { _: instance2 };\n }\n instance2.root = parent ? parent.root : instance2;\n instance2.emit = emit$1.bind(null, instance2);\n if (vnode.ce) {\n vnode.ce(instance2);\n }\n return instance2;\n}\nlet currentInstance = null;\nconst getCurrentInstance = () => currentInstance || currentRenderingInstance;\nconst setCurrentInstance = (instance2) => {\n currentInstance = instance2;\n instance2.scope.on();\n};\nconst unsetCurrentInstance = () => {\n currentInstance && currentInstance.scope.off();\n currentInstance = null;\n};\nfunction isStatefulComponent(instance2) {\n return instance2.vnode.shapeFlag & 4;\n}\nlet isInSSRComponentSetup = false;\nfunction setupComponent(instance2, isSSR = false) {\n isInSSRComponentSetup = isSSR;\n const { props, children } = instance2.vnode;\n const isStateful = isStatefulComponent(instance2);\n initProps(instance2, props, isStateful, isSSR);\n initSlots(instance2, children);\n const setupResult = isStateful ? setupStatefulComponent(instance2, isSSR) : void 0;\n isInSSRComponentSetup = false;\n return setupResult;\n}\nfunction setupStatefulComponent(instance2, isSSR) {\n const Component = instance2.type;\n instance2.accessCache = /* @__PURE__ */ Object.create(null);\n instance2.proxy = markRaw(new Proxy(instance2.ctx, PublicInstanceProxyHandlers));\n const { setup } = Component;\n if (setup) {\n const setupContext = instance2.setupContext = setup.length > 1 ? createSetupContext(instance2) : null;\n setCurrentInstance(instance2);\n pauseTracking();\n const setupResult = callWithErrorHandling(setup, instance2, 0, [instance2.props, setupContext]);\n resetTracking();\n unsetCurrentInstance();\n if (isPromise(setupResult)) {\n setupResult.then(unsetCurrentInstance, unsetCurrentInstance);\n if (isSSR) {\n return setupResult.then((resolvedResult) => {\n handleSetupResult(instance2, resolvedResult, isSSR);\n }).catch((e) => {\n handleError(e, instance2, 0);\n });\n } else {\n instance2.asyncDep = setupResult;\n }\n } else {\n handleSetupResult(instance2, setupResult, isSSR);\n }\n } else {\n finishComponentSetup(instance2, isSSR);\n }\n}\nfunction handleSetupResult(instance2, setupResult, isSSR) {\n if (isFunction$1(setupResult)) {\n if (instance2.type.__ssrInlineRender) {\n instance2.ssrRender = setupResult;\n } else {\n instance2.render = setupResult;\n }\n } else if (isObject$1(setupResult)) {\n instance2.setupState = proxyRefs(setupResult);\n } else\n ;\n finishComponentSetup(instance2, isSSR);\n}\nlet compile$1;\nfunction finishComponentSetup(instance2, isSSR, skipOptions) {\n const Component = instance2.type;\n if (!instance2.render) {\n if (!isSSR && compile$1 && !Component.render) {\n const template = Component.template;\n if (template) {\n const { isCustomElement, compilerOptions } = instance2.appContext.config;\n const { delimiters, compilerOptions: componentCompilerOptions } = Component;\n const finalCompilerOptions = extend$1(extend$1({\n isCustomElement,\n delimiters\n }, compilerOptions), componentCompilerOptions);\n Component.render = compile$1(template, finalCompilerOptions);\n }\n }\n instance2.render = Component.render || NOOP;\n }\n {\n setCurrentInstance(instance2);\n pauseTracking();\n applyOptions(instance2);\n resetTracking();\n unsetCurrentInstance();\n }\n}\nfunction createAttrsProxy(instance2) {\n return new Proxy(instance2.attrs, {\n get(target, key) {\n track(instance2, \"get\", \"$attrs\");\n return target[key];\n }\n });\n}\nfunction createSetupContext(instance2) {\n const expose = (exposed) => {\n instance2.exposed = exposed || {};\n };\n let attrs;\n {\n return {\n get attrs() {\n return attrs || (attrs = createAttrsProxy(instance2));\n },\n slots: instance2.slots,\n emit: instance2.emit,\n expose\n };\n }\n}\nfunction getExposeProxy(instance2) {\n if (instance2.exposed) {\n return instance2.exposeProxy || (instance2.exposeProxy = new Proxy(proxyRefs(markRaw(instance2.exposed)), {\n get(target, key) {\n if (key in target) {\n return target[key];\n } else if (key in publicPropertiesMap) {\n return publicPropertiesMap[key](instance2);\n }\n }\n }));\n }\n}\nfunction getComponentName(Component, includeInferred = true) {\n return isFunction$1(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;\n}\nfunction isClassComponent(value) {\n return isFunction$1(value) && \"__vccOpts\" in value;\n}\nconst computed = (getterOrOptions, debugOptions) => {\n return computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);\n};\nfunction h(type, propsOrChildren, children) {\n const l = arguments.length;\n if (l === 2) {\n if (isObject$1(propsOrChildren) && !isArray$1(propsOrChildren)) {\n if (isVNode(propsOrChildren)) {\n return createVNode(type, null, [propsOrChildren]);\n }\n return createVNode(type, propsOrChildren);\n } else {\n return createVNode(type, null, propsOrChildren);\n }\n } else {\n if (l > 3) {\n children = Array.prototype.slice.call(arguments, 2);\n } else if (l === 3 && isVNode(children)) {\n children = [children];\n }\n return createVNode(type, propsOrChildren, children);\n }\n}\nconst version = \"3.2.37\";\nfunction makeMap(str, expectsLowerCase) {\n const map = /* @__PURE__ */ Object.create(null);\n const list2 = str.split(\",\");\n for (let i = 0; i < list2.length; i++) {\n map[list2[i]] = true;\n }\n return expectsLowerCase ? (val) => !!map[val.toLowerCase()] : (val) => !!map[val];\n}\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst onRE = /^on[^a-z]/;\nconst isOn = (key) => onRE.test(key);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst isArray = Array.isArray;\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, \"-$1\").toLowerCase());\nconst capitalize = cacheStringFunction((str) => str.charAt(0).toUpperCase() + str.slice(1));\nconst toNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst svgNS = \"http://www.w3.org/2000/svg\";\nconst doc = typeof document !== \"undefined\" ? document : null;\nconst templateContainer = doc && /* @__PURE__ */ doc.createElement(\"template\");\nconst nodeOps = {\n insert: (child, parent, anchor) => {\n parent.insertBefore(child, anchor || null);\n },\n remove: (child) => {\n const parent = child.parentNode;\n if (parent) {\n parent.removeChild(child);\n }\n },\n createElement: (tag, isSVG, is, props) => {\n const el = isSVG ? doc.createElementNS(svgNS, tag) : doc.createElement(tag, is ? { is } : void 0);\n if (tag === \"select\" && props && props.multiple != null) {\n el.setAttribute(\"multiple\", props.multiple);\n }\n return el;\n },\n createText: (text2) => doc.createTextNode(text2),\n createComment: (text2) => doc.createComment(text2),\n setText: (node, text2) => {\n node.nodeValue = text2;\n },\n setElementText: (el, text2) => {\n el.textContent = text2;\n },\n parentNode: (node) => node.parentNode,\n nextSibling: (node) => node.nextSibling,\n querySelector: (selector) => doc.querySelector(selector),\n setScopeId(el, id) {\n el.setAttribute(id, \"\");\n },\n cloneNode(el) {\n const cloned = el.cloneNode(true);\n if (`_value` in el) {\n cloned._value = el._value;\n }\n return cloned;\n },\n insertStaticContent(content2, parent, anchor, isSVG, start, end) {\n const before = anchor ? anchor.previousSibling : parent.lastChild;\n if (start && (start === end || start.nextSibling)) {\n while (true) {\n parent.insertBefore(start.cloneNode(true), anchor);\n if (start === end || !(start = start.nextSibling))\n break;\n }\n } else {\n templateContainer.innerHTML = isSVG ? `<svg>${content2}</svg>` : content2;\n const template = templateContainer.content;\n if (isSVG) {\n const wrapper = template.firstChild;\n while (wrapper.firstChild) {\n template.appendChild(wrapper.firstChild);\n }\n template.removeChild(wrapper);\n }\n parent.insertBefore(template, anchor);\n }\n return [\n before ? before.nextSibling : parent.firstChild,\n anchor ? anchor.previousSibling : parent.lastChild\n ];\n }\n};\nfunction patchClass(el, value, isSVG) {\n const transitionClasses = el._vtc;\n if (transitionClasses) {\n value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(\" \");\n }\n if (value == null) {\n el.removeAttribute(\"class\");\n } else if (isSVG) {\n el.setAttribute(\"class\", value);\n } else {\n el.className = value;\n }\n}\nfunction patchStyle(el, prev, next) {\n const style = el.style;\n const isCssString = isString(next);\n if (next && !isCssString) {\n for (const key in next) {\n setStyle(style, key, next[key]);\n }\n if (prev && !isString(prev)) {\n for (const key in prev) {\n if (next[key] == null) {\n setStyle(style, key, \"\");\n }\n }\n }\n } else {\n const currentDisplay = style.display;\n if (isCssString) {\n if (prev !== next) {\n style.cssText = next;\n }\n } else if (prev) {\n el.removeAttribute(\"style\");\n }\n if (\"_vod\" in el) {\n style.display = currentDisplay;\n }\n }\n}\nconst importantRE = /\\s*!important$/;\nfunction setStyle(style, name, val) {\n if (isArray(val)) {\n val.forEach((v) => setStyle(style, name, v));\n } else {\n if (val == null)\n val = \"\";\n if (name.startsWith(\"--\")) {\n style.setProperty(name, val);\n } else {\n const prefixed = autoPrefix(style, name);\n if (importantRE.test(val)) {\n style.setProperty(hyphenate(prefixed), val.replace(importantRE, \"\"), \"important\");\n } else {\n style[prefixed] = val;\n }\n }\n }\n}\nconst prefixes = [\"Webkit\", \"Moz\", \"ms\"];\nconst prefixCache = {};\nfunction autoPrefix(style, rawName) {\n const cached = prefixCache[rawName];\n if (cached) {\n return cached;\n }\n let name = camelize$1(rawName);\n if (name !== \"filter\" && name in style) {\n return prefixCache[rawName] = name;\n }\n name = capitalize(name);\n for (let i = 0; i < prefixes.length; i++) {\n const prefixed = prefixes[i] + name;\n if (prefixed in style) {\n return prefixCache[rawName] = prefixed;\n }\n }\n return rawName;\n}\nconst xlinkNS = \"http://www.w3.org/1999/xlink\";\nfunction patchAttr(el, key, value, isSVG, instance2) {\n if (isSVG && key.startsWith(\"xlink:\")) {\n if (value == null) {\n el.removeAttributeNS(xlinkNS, key.slice(6, key.length));\n } else {\n el.setAttributeNS(xlinkNS, key, value);\n }\n } else {\n const isBoolean = isSpecialBooleanAttr(key);\n if (value == null || isBoolean && !includeBooleanAttr(value)) {\n el.removeAttribute(key);\n } else {\n el.setAttribute(key, isBoolean ? \"\" : value);\n }\n }\n}\nfunction patchDOMProp(el, key, value, prevChildren, parentComponent, parentSuspense, unmountChildren) {\n if (key === \"innerHTML\" || key === \"textContent\") {\n if (prevChildren) {\n unmountChildren(prevChildren, parentComponent, parentSuspense);\n }\n el[key] = value == null ? \"\" : value;\n return;\n }\n if (key === \"value\" && el.tagName !== \"PROGRESS\" && !el.tagName.includes(\"-\")) {\n el._value = value;\n const newValue = value == null ? \"\" : value;\n if (el.value !== newValue || el.tagName === \"OPTION\") {\n el.value = newValue;\n }\n if (value == null) {\n el.removeAttribute(key);\n }\n return;\n }\n let needRemove = false;\n if (value === \"\" || value == null) {\n const type = typeof el[key];\n if (type === \"boolean\") {\n value = includeBooleanAttr(value);\n } else if (value == null && type === \"string\") {\n value = \"\";\n needRemove = true;\n } else if (type === \"number\") {\n value = 0;\n needRemove = true;\n }\n }\n try {\n el[key] = value;\n } catch (e) {\n }\n needRemove && el.removeAttribute(key);\n}\nconst [_getNow, skipTimestampCheck] = /* @__PURE__ */ (() => {\n let _getNow2 = Date.now;\n let skipTimestampCheck2 = false;\n if (typeof window !== \"undefined\") {\n if (Date.now() > document.createEvent(\"Event\").timeStamp) {\n _getNow2 = performance.now.bind(performance);\n }\n const ffMatch = navigator.userAgent.match(/firefox\\/(\\d+)/i);\n skipTimestampCheck2 = !!(ffMatch && Number(ffMatch[1]) <= 53);\n }\n return [_getNow2, skipTimestampCheck2];\n})();\nlet cachedNow = 0;\nconst p = /* @__PURE__ */ Promise.resolve();\nconst reset = () => {\n cachedNow = 0;\n};\nconst getNow = () => cachedNow || (p.then(reset), cachedNow = _getNow());\nfunction addEventListener$1(el, event, handler, options) {\n el.addEventListener(event, handler, options);\n}\nfunction removeEventListener(el, event, handler, options) {\n el.removeEventListener(event, handler, options);\n}\nfunction patchEvent(el, rawName, prevValue, nextValue, instance2 = null) {\n const invokers = el._vei || (el._vei = {});\n const existingInvoker = invokers[rawName];\n if (nextValue && existingInvoker) {\n existingInvoker.value = nextValue;\n } else {\n const [name, options] = parseName(rawName);\n if (nextValue) {\n const invoker = invokers[rawName] = createInvoker(nextValue, instance2);\n addEventListener$1(el, name, invoker, options);\n } else if (existingInvoker) {\n removeEventListener(el, name, existingInvoker, options);\n invokers[rawName] = void 0;\n }\n }\n}\nconst optionsModifierRE = /(?:Once|Passive|Capture)$/;\nfunction parseName(name) {\n let options;\n if (optionsModifierRE.test(name)) {\n options = {};\n let m;\n while (m = name.match(optionsModifierRE)) {\n name = name.slice(0, name.length - m[0].length);\n options[m[0].toLowerCase()] = true;\n }\n }\n return [hyphenate(name.slice(2)), options];\n}\nfunction createInvoker(initialValue, instance2) {\n const invoker = (e) => {\n const timeStamp = e.timeStamp || _getNow();\n if (skipTimestampCheck || timeStamp >= invoker.attached - 1) {\n callWithAsyncErrorHandling(patchStopImmediatePropagation(e, invoker.value), instance2, 5, [e]);\n }\n };\n invoker.value = initialValue;\n invoker.attached = getNow();\n return invoker;\n}\nfunction patchStopImmediatePropagation(e, value) {\n if (isArray(value)) {\n const originalStop = e.stopImmediatePropagation;\n e.stopImmediatePropagation = () => {\n originalStop.call(e);\n e._stopped = true;\n };\n return value.map((fn) => (e2) => !e2._stopped && fn && fn(e2));\n } else {\n return value;\n }\n}\nconst nativeOnRE = /^on[a-z]/;\nconst patchProp = (el, key, prevValue, nextValue, isSVG = false, prevChildren, parentComponent, parentSuspense, unmountChildren) => {\n if (key === \"class\") {\n patchClass(el, nextValue, isSVG);\n } else if (key === \"style\") {\n patchStyle(el, prevValue, nextValue);\n } else if (isOn(key)) {\n if (!isModelListener(key)) {\n patchEvent(el, key, prevValue, nextValue, parentComponent);\n }\n } else if (key[0] === \".\" ? (key = key.slice(1), true) : key[0] === \"^\" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) {\n patchDOMProp(el, key, nextValue, prevChildren, parentComponent, parentSuspense, unmountChildren);\n } else {\n if (key === \"true-value\") {\n el._trueValue = nextValue;\n } else if (key === \"false-value\") {\n el._falseValue = nextValue;\n }\n patchAttr(el, key, nextValue, isSVG);\n }\n};\nfunction shouldSetAsProp(el, key, value, isSVG) {\n if (isSVG) {\n if (key === \"innerHTML\" || key === \"textContent\") {\n return true;\n }\n if (key in el && nativeOnRE.test(key) && isFunction(value)) {\n return true;\n }\n return false;\n }\n if (key === \"spellcheck\" || key === \"draggable\" || key === \"translate\") {\n return false;\n }\n if (key === \"form\") {\n return false;\n }\n if (key === \"list\" && el.tagName === \"INPUT\") {\n return false;\n }\n if (key === \"type\" && el.tagName === \"TEXTAREA\") {\n return false;\n }\n if (nativeOnRE.test(key) && isString(value)) {\n return false;\n }\n return key in el;\n}\nfunction defineCustomElement(options, hydrate) {\n const Comp = defineComponent(options);\n class VueCustomElement extends VueElement {\n constructor(initialProps) {\n super(Comp, initialProps, hydrate);\n }\n }\n VueCustomElement.def = Comp;\n return VueCustomElement;\n}\nconst BaseClass = typeof HTMLElement !== \"undefined\" ? HTMLElement : class {\n};\nclass VueElement extends BaseClass {\n constructor(_def, _props = {}, hydrate) {\n super();\n this._def = _def;\n this._props = _props;\n this._instance = null;\n this._connected = false;\n this._resolved = false;\n this._numberProps = null;\n if (this.shadowRoot && hydrate) {\n hydrate(this._createVNode(), this.shadowRoot);\n } else {\n this.attachShadow({ mode: \"open\" });\n }\n }\n connectedCallback() {\n this._connected = true;\n if (!this._instance) {\n this._resolveDef();\n }\n }\n disconnectedCallback() {\n this._connected = false;\n nextTick(() => {\n if (!this._connected) {\n render(null, this.shadowRoot);\n this._instance = null;\n }\n });\n }\n _resolveDef() {\n if (this._resolved) {\n return;\n }\n this._resolved = true;\n for (let i = 0; i < this.attributes.length; i++) {\n this._setAttr(this.attributes[i].name);\n }\n new MutationObserver((mutations) => {\n for (const m of mutations) {\n this._setAttr(m.attributeName);\n }\n }).observe(this, { attributes: true });\n const resolve2 = (def2) => {\n const { props, styles } = def2;\n const hasOptions = !isArray(props);\n const rawKeys = props ? hasOptions ? Object.keys(props) : props : [];\n let numberProps;\n if (hasOptions) {\n for (const key in this._props) {\n const opt = props[key];\n if (opt === Number || opt && opt.type === Number) {\n this._props[key] = toNumber(this._props[key]);\n (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[key] = true;\n }\n }\n }\n this._numberProps = numberProps;\n for (const key of Object.keys(this)) {\n if (key[0] !== \"_\") {\n this._setProp(key, this[key], true, false);\n }\n }\n for (const key of rawKeys.map(camelize)) {\n Object.defineProperty(this, key, {\n get() {\n return this._getProp(key);\n },\n set(val) {\n this._setProp(key, val);\n }\n });\n }\n this._applyStyles(styles);\n this._update();\n };\n const asyncDef = this._def.__asyncLoader;\n if (asyncDef) {\n asyncDef().then(resolve2);\n } else {\n resolve2(this._def);\n }\n }\n _setAttr(key) {\n let value = this.getAttribute(key);\n if (this._numberProps && this._numberProps[key]) {\n value = toNumber(value);\n }\n this._setProp(camelize(key), value, false);\n }\n _getProp(key) {\n return this._props[key];\n }\n _setProp(key, val, shouldReflect = true, shouldUpdate = true) {\n if (val !== this._props[key]) {\n this._props[key] = val;\n if (shouldUpdate && this._instance) {\n this._update();\n }\n if (shouldReflect) {\n if (val === true) {\n this.setAttribute(hyphenate(key), \"\");\n } else if (typeof val === \"string\" || typeof val === \"number\") {\n this.setAttribute(hyphenate(key), val + \"\");\n } else if (!val) {\n this.removeAttribute(hyphenate(key));\n }\n }\n }\n }\n _update() {\n render(this._createVNode(), this.shadowRoot);\n }\n _createVNode() {\n const vnode = createVNode(this._def, extend({}, this._props));\n if (!this._instance) {\n vnode.ce = (instance2) => {\n this._instance = instance2;\n instance2.isCE = true;\n instance2.emit = (event, ...args) => {\n this.dispatchEvent(new CustomEvent(event, {\n detail: args\n }));\n };\n let parent = this;\n while (parent = parent && (parent.parentNode || parent.host)) {\n if (parent instanceof VueElement) {\n instance2.parent = parent._instance;\n break;\n }\n }\n };\n }\n return vnode;\n }\n _applyStyles(styles) {\n if (styles) {\n styles.forEach((css) => {\n const s = document.createElement(\"style\");\n s.textContent = css;\n this.shadowRoot.appendChild(s);\n });\n }\n }\n}\nconst TRANSITION = \"transition\";\nconst ANIMATION = \"animation\";\nconst Transition = (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots);\nTransition.displayName = \"Transition\";\nconst DOMTransitionPropsValidators = {\n name: String,\n type: String,\n css: {\n type: Boolean,\n default: true\n },\n duration: [String, Number, Object],\n enterFromClass: String,\n enterActiveClass: String,\n enterToClass: String,\n appearFromClass: String,\n appearActiveClass: String,\n appearToClass: String,\n leaveFromClass: String,\n leaveActiveClass: String,\n leaveToClass: String\n};\nconst TransitionPropsValidators = Transition.props = /* @__PURE__ */ extend({}, BaseTransition.props, DOMTransitionPropsValidators);\nconst callHook = (hook, args = []) => {\n if (isArray(hook)) {\n hook.forEach((h2) => h2(...args));\n } else if (hook) {\n hook(...args);\n }\n};\nconst hasExplicitCallback = (hook) => {\n return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false;\n};\nfunction resolveTransitionProps(rawProps) {\n const baseProps = {};\n for (const key in rawProps) {\n if (!(key in DOMTransitionPropsValidators)) {\n baseProps[key] = rawProps[key];\n }\n }\n if (rawProps.css === false) {\n return baseProps;\n }\n const { name = \"v\", type, duration, enterFromClass = `${name}-enter-from`, enterActiveClass = `${name}-enter-active`, enterToClass = `${name}-enter-to`, appearFromClass = enterFromClass, appearActiveClass = enterActiveClass, appearToClass = enterToClass, leaveFromClass = `${name}-leave-from`, leaveActiveClass = `${name}-leave-active`, leaveToClass = `${name}-leave-to` } = rawProps;\n const durations = normalizeDuration(duration);\n const enterDuration = durations && durations[0];\n const leaveDuration = durations && durations[1];\n const { onBeforeEnter, onEnter, onEnterCancelled, onLeave, onLeaveCancelled, onBeforeAppear = onBeforeEnter, onAppear = onEnter, onAppearCancelled = onEnterCancelled } = baseProps;\n const finishEnter = (el, isAppear, done) => {\n removeTransitionClass(el, isAppear ? appearToClass : enterToClass);\n removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);\n done && done();\n };\n const finishLeave = (el, done) => {\n el._isLeaving = false;\n removeTransitionClass(el, leaveFromClass);\n removeTransitionClass(el, leaveToClass);\n removeTransitionClass(el, leaveActiveClass);\n done && done();\n };\n const makeEnterHook = (isAppear) => {\n return (el, done) => {\n const hook = isAppear ? onAppear : onEnter;\n const resolve2 = () => finishEnter(el, isAppear, done);\n callHook(hook, [el, resolve2]);\n nextFrame(() => {\n removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);\n addTransitionClass(el, isAppear ? appearToClass : enterToClass);\n if (!hasExplicitCallback(hook)) {\n whenTransitionEnds(el, type, enterDuration, resolve2);\n }\n });\n };\n };\n return extend(baseProps, {\n onBeforeEnter(el) {\n callHook(onBeforeEnter, [el]);\n addTransitionClass(el, enterFromClass);\n addTransitionClass(el, enterActiveClass);\n },\n onBeforeAppear(el) {\n callHook(onBeforeAppear, [el]);\n addTransitionClass(el, appearFromClass);\n addTransitionClass(el, appearActiveClass);\n },\n onEnter: makeEnterHook(false),\n onAppear: makeEnterHook(true),\n onLeave(el, done) {\n el._isLeaving = true;\n const resolve2 = () => finishLeave(el, done);\n addTransitionClass(el, leaveFromClass);\n forceReflow();\n addTransitionClass(el, leaveActiveClass);\n nextFrame(() => {\n if (!el._isLeaving) {\n return;\n }\n removeTransitionClass(el, leaveFromClass);\n addTransitionClass(el, leaveToClass);\n if (!hasExplicitCallback(onLeave)) {\n whenTransitionEnds(el, type, leaveDuration, resolve2);\n }\n });\n callHook(onLeave, [el, resolve2]);\n },\n onEnterCancelled(el) {\n finishEnter(el, false);\n callHook(onEnterCancelled, [el]);\n },\n onAppearCancelled(el) {\n finishEnter(el, true);\n callHook(onAppearCancelled, [el]);\n },\n onLeaveCancelled(el) {\n finishLeave(el);\n callHook(onLeaveCancelled, [el]);\n }\n });\n}\nfunction normalizeDuration(duration) {\n if (duration == null) {\n return null;\n } else if (isObject(duration)) {\n return [NumberOf(duration.enter), NumberOf(duration.leave)];\n } else {\n const n = NumberOf(duration);\n return [n, n];\n }\n}\nfunction NumberOf(val) {\n const res = toNumber(val);\n return res;\n}\nfunction addTransitionClass(el, cls) {\n cls.split(/\\s+/).forEach((c) => c && el.classList.add(c));\n (el._vtc || (el._vtc = /* @__PURE__ */ new Set())).add(cls);\n}\nfunction removeTransitionClass(el, cls) {\n cls.split(/\\s+/).forEach((c) => c && el.classList.remove(c));\n const { _vtc } = el;\n if (_vtc) {\n _vtc.delete(cls);\n if (!_vtc.size) {\n el._vtc = void 0;\n }\n }\n}\nfunction nextFrame(cb) {\n requestAnimationFrame(() => {\n requestAnimationFrame(cb);\n });\n}\nlet endId = 0;\nfunction whenTransitionEnds(el, expectedType, explicitTimeout, resolve2) {\n const id = el._endId = ++endId;\n const resolveIfNotStale = () => {\n if (id === el._endId) {\n resolve2();\n }\n };\n if (explicitTimeout) {\n return setTimeout(resolveIfNotStale, explicitTimeout);\n }\n const { type, timeout, propCount } = getTransitionInfo(el, expectedType);\n if (!type) {\n return resolve2();\n }\n const endEvent = type + \"end\";\n let ended = 0;\n const end = () => {\n el.removeEventListener(endEvent, onEnd);\n resolveIfNotStale();\n };\n const onEnd = (e) => {\n if (e.target === el && ++ended >= propCount) {\n end();\n }\n };\n setTimeout(() => {\n if (ended < propCount) {\n end();\n }\n }, timeout + 1);\n el.addEventListener(endEvent, onEnd);\n}\nfunction getTransitionInfo(el, expectedType) {\n const styles = window.getComputedStyle(el);\n const getStyleProperties = (key) => (styles[key] || \"\").split(\", \");\n const transitionDelays = getStyleProperties(TRANSITION + \"Delay\");\n const transitionDurations = getStyleProperties(TRANSITION + \"Duration\");\n const transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n const animationDelays = getStyleProperties(ANIMATION + \"Delay\");\n const animationDurations = getStyleProperties(ANIMATION + \"Duration\");\n const animationTimeout = getTimeout(animationDelays, animationDurations);\n let type = null;\n let timeout = 0;\n let propCount = 0;\n if (expectedType === TRANSITION) {\n if (transitionTimeout > 0) {\n type = TRANSITION;\n timeout = transitionTimeout;\n propCount = transitionDurations.length;\n }\n } else if (expectedType === ANIMATION) {\n if (animationTimeout > 0) {\n type = ANIMATION;\n timeout = animationTimeout;\n propCount = animationDurations.length;\n }\n } else {\n timeout = Math.max(transitionTimeout, animationTimeout);\n type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null;\n propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0;\n }\n const hasTransform = type === TRANSITION && /\\b(transform|all)(,|$)/.test(styles[TRANSITION + \"Property\"]);\n return {\n type,\n timeout,\n propCount,\n hasTransform\n };\n}\nfunction getTimeout(delays, durations) {\n while (delays.length < durations.length) {\n delays = delays.concat(delays);\n }\n return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));\n}\nfunction toMs(s) {\n return Number(s.slice(0, -1).replace(\",\", \".\")) * 1e3;\n}\nfunction forceReflow() {\n return document.body.offsetHeight;\n}\nconst positionMap = /* @__PURE__ */ new WeakMap();\nconst newPositionMap = /* @__PURE__ */ new WeakMap();\nconst TransitionGroupImpl = {\n name: \"TransitionGroup\",\n props: /* @__PURE__ */ extend({}, TransitionPropsValidators, {\n tag: String,\n moveClass: String\n }),\n setup(props, { slots }) {\n const instance2 = getCurrentInstance();\n const state = useTransitionState();\n let prevChildren;\n let children;\n onUpdated(() => {\n if (!prevChildren.length) {\n return;\n }\n const moveClass = props.moveClass || `${props.name || \"v\"}-move`;\n if (!hasCSSTransform(prevChildren[0].el, instance2.vnode.el, moveClass)) {\n return;\n }\n prevChildren.forEach(callPendingCbs);\n prevChildren.forEach(recordPosition);\n const movedChildren = prevChildren.filter(applyTranslation);\n forceReflow();\n movedChildren.forEach((c) => {\n const el = c.el;\n const style = el.style;\n addTransitionClass(el, moveClass);\n style.transform = style.webkitTransform = style.transitionDuration = \"\";\n const cb = el._moveCb = (e) => {\n if (e && e.target !== el) {\n return;\n }\n if (!e || /transform$/.test(e.propertyName)) {\n el.removeEventListener(\"transitionend\", cb);\n el._moveCb = null;\n removeTransitionClass(el, moveClass);\n }\n };\n el.addEventListener(\"transitionend\", cb);\n });\n });\n return () => {\n const rawProps = toRaw(props);\n const cssTransitionProps = resolveTransitionProps(rawProps);\n let tag = rawProps.tag || Fragment;\n prevChildren = children;\n children = slots.default ? getTransitionRawChildren(slots.default()) : [];\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (child.key != null) {\n setTransitionHooks(child, resolveTransitionHooks(child, cssTransitionProps, state, instance2));\n }\n }\n if (prevChildren) {\n for (let i = 0; i < prevChildren.length; i++) {\n const child = prevChildren[i];\n setTransitionHooks(child, resolveTransitionHooks(child, cssTransitionProps, state, instance2));\n positionMap.set(child, child.el.getBoundingClientRect());\n }\n }\n return createVNode(tag, null, children);\n };\n }\n};\nconst TransitionGroup = TransitionGroupImpl;\nfunction callPendingCbs(c) {\n const el = c.el;\n if (el._moveCb) {\n el._moveCb();\n }\n if (el._enterCb) {\n el._enterCb();\n }\n}\nfunction recordPosition(c) {\n newPositionMap.set(c, c.el.getBoundingClientRect());\n}\nfunction applyTranslation(c) {\n const oldPos = positionMap.get(c);\n const newPos = newPositionMap.get(c);\n const dx = oldPos.left - newPos.left;\n const dy = oldPos.top - newPos.top;\n if (dx || dy) {\n const s = c.el.style;\n s.transform = s.webkitTransform = `translate(${dx}px,${dy}px)`;\n s.transitionDuration = \"0s\";\n return c;\n }\n}\nfunction hasCSSTransform(el, root, moveClass) {\n const clone = el.cloneNode();\n if (el._vtc) {\n el._vtc.forEach((cls) => {\n cls.split(/\\s+/).forEach((c) => c && clone.classList.remove(c));\n });\n }\n moveClass.split(/\\s+/).forEach((c) => c && clone.classList.add(c));\n clone.style.display = \"none\";\n const container = root.nodeType === 1 ? root : root.parentNode;\n container.appendChild(clone);\n const { hasTransform } = getTransitionInfo(clone);\n container.removeChild(clone);\n return hasTransform;\n}\nconst systemModifiers = [\"ctrl\", \"shift\", \"alt\", \"meta\"];\nconst modifierGuards = {\n stop: (e) => e.stopPropagation(),\n prevent: (e) => e.preventDefault(),\n self: (e) => e.target !== e.currentTarget,\n ctrl: (e) => !e.ctrlKey,\n shift: (e) => !e.shiftKey,\n alt: (e) => !e.altKey,\n meta: (e) => !e.metaKey,\n left: (e) => \"button\" in e && e.button !== 0,\n middle: (e) => \"button\" in e && e.button !== 1,\n right: (e) => \"button\" in e && e.button !== 2,\n exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m))\n};\nconst withModifiers = (fn, modifiers) => {\n return (event, ...args) => {\n for (let i = 0; i < modifiers.length; i++) {\n const guard = modifierGuards[modifiers[i]];\n if (guard && guard(event, modifiers))\n return;\n }\n return fn(event, ...args);\n };\n};\nconst keyNames = {\n esc: \"escape\",\n space: \" \",\n up: \"arrow-up\",\n left: \"arrow-left\",\n right: \"arrow-right\",\n down: \"arrow-down\",\n delete: \"backspace\"\n};\nconst withKeys = (fn, modifiers) => {\n return (event) => {\n if (!(\"key\" in event)) {\n return;\n }\n const eventKey = hyphenate(event.key);\n if (modifiers.some((k) => k === eventKey || keyNames[k] === eventKey)) {\n return fn(event);\n }\n };\n};\nconst vShow = {\n beforeMount(el, { value }, { transition }) {\n el._vod = el.style.display === \"none\" ? \"\" : el.style.display;\n if (transition && value) {\n transition.beforeEnter(el);\n } else {\n setDisplay(el, value);\n }\n },\n mounted(el, { value }, { transition }) {\n if (transition && value) {\n transition.enter(el);\n }\n },\n updated(el, { value, oldValue }, { transition }) {\n if (!value === !oldValue)\n return;\n if (transition) {\n if (value) {\n transition.beforeEnter(el);\n setDisplay(el, true);\n transition.enter(el);\n } else {\n transition.leave(el, () => {\n setDisplay(el, false);\n });\n }\n } else {\n setDisplay(el, value);\n }\n },\n beforeUnmount(el, { value }) {\n setDisplay(el, value);\n }\n};\nfunction setDisplay(el, value) {\n el.style.display = value ? el._vod : \"none\";\n}\nconst rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);\nlet renderer;\nfunction ensureRenderer() {\n return renderer || (renderer = createRenderer(rendererOptions));\n}\nconst render = (...args) => {\n ensureRenderer().render(...args);\n};\nvar _export_sfc = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\nconst _sfc_main$q = {\n name: \"AppLoader\",\n props: {\n show: { type: Boolean, default: false },\n infinite: { type: Boolean, default: false },\n type: { type: String, required: true },\n messageId: { type: String, default: \"\" }\n }\n};\nconst _hoisted_1$q = /* @__PURE__ */ createBaseVNode(\"div\", { id: \"vac-circle\" }, null, -1);\nconst _hoisted_2$n = /* @__PURE__ */ createBaseVNode(\"div\", { id: \"vac-circle\" }, null, -1);\nconst _hoisted_3$j = /* @__PURE__ */ createBaseVNode(\"div\", { id: \"vac-circle\" }, null, -1);\nconst _hoisted_4$g = /* @__PURE__ */ createBaseVNode(\"div\", { id: \"vac-circle\" }, null, -1);\nconst _hoisted_5$b = /* @__PURE__ */ createBaseVNode(\"div\", { id: \"vac-circle\" }, null, -1);\nconst _hoisted_6$7 = /* @__PURE__ */ createBaseVNode(\"div\", { id: \"vac-circle\" }, null, -1);\nfunction _sfc_render$q(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createBlock(Transition, {\n name: \"vac-fade-spinner\",\n appear: \"\"\n }, {\n default: withCtx(() => [\n $props.show ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"vac-loader-wrapper\", {\n \"vac-container-center\": !$props.infinite,\n \"vac-container-top\": $props.infinite\n }])\n }, [\n $props.type === \"rooms\" ? renderSlot(_ctx.$slots, \"spinner-icon-rooms\", { key: 0 }, () => [\n _hoisted_1$q\n ]) : createCommentVNode(\"\", true),\n $props.type === \"infinite-rooms\" ? renderSlot(_ctx.$slots, \"spinner-icon-infinite-rooms\", { key: 1 }, () => [\n _hoisted_2$n\n ]) : createCommentVNode(\"\", true),\n $props.type === \"message-file\" ? renderSlot(_ctx.$slots, \"spinner-icon-message-file_\" + $props.messageId, { key: 2 }, () => [\n _hoisted_3$j\n ]) : createCommentVNode(\"\", true),\n $props.type === \"room-file\" ? renderSlot(_ctx.$slots, \"spinner-icon-room-file\", { key: 3 }, () => [\n _hoisted_4$g\n ]) : createCommentVNode(\"\", true),\n $props.type === \"messages\" ? renderSlot(_ctx.$slots, \"spinner-icon-messages\", { key: 4 }, () => [\n _hoisted_5$b\n ]) : createCommentVNode(\"\", true),\n $props.type === \"infinite-messages\" ? renderSlot(_ctx.$slots, \"spinner-icon-infinite-messages\", { key: 5 }, () => [\n _hoisted_6$7\n ]) : createCommentVNode(\"\", true)\n ], 2)) : createCommentVNode(\"\", true)\n ]),\n _: 3\n });\n}\nvar Loader = /* @__PURE__ */ _export_sfc(_sfc_main$q, [[\"render\", _sfc_render$q]]);\nconst _sfc_main$p = {\n name: \"SvgIcon\",\n props: {\n name: { type: String, default: null },\n param: { type: String, default: null }\n },\n data() {\n return {\n svgItem: {\n search: {\n path: \"M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z\"\n },\n add: {\n path: \"M17,13H13V17H11V13H7V11H11V7H13V11H17M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\"\n },\n toggle: {\n path: \"M5,13L9,17L7.6,18.42L1.18,12L7.6,5.58L9,7L5,11H21V13H5M21,6V8H11V6H21M21,16V18H11V16H21Z\"\n },\n menu: {\n path: \"M12,16A2,2 0 0,1 14,18A2,2 0 0,1 12,20A2,2 0 0,1 10,18A2,2 0 0,1 12,16M12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10M12,4A2,2 0 0,1 14,6A2,2 0 0,1 12,8A2,2 0 0,1 10,6A2,2 0 0,1 12,4Z\"\n },\n close: {\n path: \"M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z\"\n },\n file: {\n path: \"M14,17H7V15H14M17,13H7V11H17M17,9H7V7H17M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\"\n },\n paperclip: {\n path: \"M16.5,6V17.5A4,4 0 0,1 12.5,21.5A4,4 0 0,1 8.5,17.5V5A2.5,2.5 0 0,1 11,2.5A2.5,2.5 0 0,1 13.5,5V15.5A1,1 0 0,1 12.5,16.5A1,1 0 0,1 11.5,15.5V6H10V15.5A2.5,2.5 0 0,0 12.5,18A2.5,2.5 0 0,0 15,15.5V5A4,4 0 0,0 11,1A4,4 0 0,0 7,5V17.5A5.5,5.5 0 0,0 12.5,23A5.5,5.5 0 0,0 18,17.5V6H16.5Z\"\n },\n \"close-outline\": {\n path: \"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z\"\n },\n send: {\n path: \"M2,21L23,12L2,3V10L17,12L2,14V21Z\"\n },\n emoji: {\n path: \"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z\"\n },\n document: {\n path: \"M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z\"\n },\n pencil: {\n path: \"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z\"\n },\n checkmark: {\n path: \"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\"\n },\n \"double-checkmark\": {\n path: \"M18 7l-1.41-1.41-6.34 6.34 1.41 1.41L18 7zm4.24-1.41L11.66 16.17 7.48 12l-1.41 1.41L11.66 19l12-12-1.42-1.41zM.41 13.41L6 19l1.41-1.41L1.83 12 .41 13.41z\"\n },\n eye: {\n path: \"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z\"\n },\n dropdown: {\n path: \"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z\"\n },\n deleted: {\n path: \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12C4,13.85 4.63,15.55 5.68,16.91L16.91,5.68C15.55,4.63 13.85,4 12,4M12,20A8,8 0 0,0 20,12C20,10.15 19.37,8.45 18.32,7.09L7.09,18.32C8.45,19.37 10.15,20 12,20Z\"\n },\n microphone: {\n size: \"large\",\n path: \"M432.8,216.4v39.2c0,45.2-15.3,84.3-45.2,118.4c-29.8,33.2-67.3,52.8-111.6,57.9v40.9h78.4c5.1,0,10.2,1.7,13.6,6c4.3,4.3,6,8.5,6,13.6c0,5.1-1.7,10.2-6,13.6c-4.3,4.3-8.5,6-13.6,6H157.6c-5.1,0-10.2-1.7-13.6-6c-4.3-4.3-6-8.5-6-13.6c0-5.1,1.7-10.2,6-13.6c4.3-4.3,8.5-6,13.6-6H236v-40.9c-44.3-5.1-81.8-23.9-111.6-57.9s-45.2-73.3-45.2-118.4v-39.2c0-5.1,1.7-10.2,6-13.6c4.3-4.3,8.5-6,13.6-6s10.2,1.7,13.6,6c4.3,4.3,6,8.5,6,13.6v39.2c0,37.5,13.6,70.7,40,97.1s59.6,40,97.1,40s70.7-13.6,97.1-40c26.4-26.4,40-59.6,40-97.1v-39.2c0-5.1,1.7-10.2,6-13.6c4.3-4.3,8.5-6,13.6-6c5.1,0,10.2,1.7,13.6,6C430.2,206.2,432.8,211.3,432.8,216.4z M353.5,98v157.6c0,27.3-9.4,50.3-29,69c-19.6,19.6-42.6,29-69,29s-50.3-9.4-69-29c-19.6-19.6-29-42.6-29-69V98c0-27.3,9.4-50.3,29-69c19.6-19.6,42.6-29,69-29s50.3,9.4,69,29C344.2,47.7,353.5,71.6,353.5,98z\"\n },\n \"audio-play\": {\n size: \"medium\",\n path: \"M43.331,21.237L7.233,0.397c-0.917-0.529-2.044-0.529-2.96,0c-0.916,0.528-1.48,1.505-1.48,2.563v41.684 c0,1.058,0.564,2.035,1.48,2.563c0.458,0.268,0.969,0.397,1.48,0.397c0.511,0,1.022-0.133,1.48-0.397l36.098-20.84 c0.918-0.529,1.479-1.506,1.479-2.564S44.247,21.767,43.331,21.237z\"\n },\n \"audio-pause\": {\n size: \"medium\",\n path: \"M17.991,40.976c0,3.662-2.969,6.631-6.631,6.631l0,0c-3.662,0-6.631-2.969-6.631-6.631V6.631C4.729,2.969,7.698,0,11.36,0l0,0c3.662,0,6.631,2.969,6.631,6.631V40.976z\",\n path2: \"M42.877,40.976c0,3.662-2.969,6.631-6.631,6.631l0,0c-3.662,0-6.631-2.969-6.631-6.631V6.631C29.616,2.969,32.585,0,36.246,0l0,0c3.662,0,6.631,2.969,6.631,6.631V40.976z\"\n }\n }\n };\n },\n computed: {\n svgId() {\n const param = this.param ? \"-\" + this.param : \"\";\n return `vac-icon-${this.name}${param}`;\n },\n size() {\n const item = this.svgItem[this.name];\n if (item.size === \"large\")\n return 512;\n else if (item.size === \"medium\")\n return 48;\n else\n return 24;\n }\n }\n};\nconst _hoisted_1$p = [\"viewBox\"];\nconst _hoisted_2$m = [\"id\", \"d\"];\nconst _hoisted_3$i = [\"id\", \"d\"];\nfunction _sfc_render$p(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n version: \"1.1\",\n width: \"24\",\n height: \"24\",\n viewBox: `0 0 ${$options.size} ${$options.size}`\n }, [\n createBaseVNode(\"path\", {\n id: $options.svgId,\n d: $data.svgItem[$props.name].path\n }, null, 8, _hoisted_2$m),\n $data.svgItem[$props.name].path2 ? (openBlock(), createElementBlock(\"path\", {\n key: 0,\n id: $options.svgId,\n d: $data.svgItem[$props.name].path2\n }, null, 8, _hoisted_3$i)) : createCommentVNode(\"\", true)\n ], 8, _hoisted_1$p);\n}\nvar SvgIcon = /* @__PURE__ */ _export_sfc(_sfc_main$p, [[\"render\", _sfc_render$p]]);\nconst _sfc_main$o = {\n name: \"RoomsSearch\",\n components: { SvgIcon },\n props: {\n textMessages: { type: Object, required: true },\n showSearch: { type: Boolean, required: true },\n showAddRoom: { type: Boolean, required: true },\n rooms: { type: Array, required: true },\n loadingRooms: { type: Boolean, required: true }\n },\n emits: [\"search-room\", \"add-room\"],\n computed: {\n showSearchBar() {\n return this.showSearch || this.showAddRoom;\n }\n }\n};\nconst _hoisted_1$o = {\n key: 0,\n class: \"vac-icon-search\"\n};\nconst _hoisted_2$l = [\"placeholder\"];\nfunction _sfc_render$o(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass({\n \"vac-box-search\": $options.showSearchBar,\n \"vac-box-empty\": !$options.showSearchBar\n })\n }, [\n $props.showSearch ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n !$props.loadingRooms && $props.rooms.length ? (openBlock(), createElementBlock(\"div\", _hoisted_1$o, [\n renderSlot(_ctx.$slots, \"search-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"search\" })\n ])\n ])) : createCommentVNode(\"\", true),\n !$props.loadingRooms && $props.rooms.length ? (openBlock(), createElementBlock(\"input\", {\n key: 1,\n type: \"search\",\n placeholder: $props.textMessages.SEARCH,\n autocomplete: \"off\",\n class: \"vac-input\",\n onInput: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"search-room\", $event))\n }, null, 40, _hoisted_2$l)) : createCommentVNode(\"\", true)\n ], 64)) : createCommentVNode(\"\", true),\n $props.showAddRoom ? (openBlock(), createElementBlock(\"div\", {\n key: 1,\n class: \"vac-svg-button vac-add-icon\",\n onClick: _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"add-room\"))\n }, [\n renderSlot(_ctx.$slots, \"add-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"add\" })\n ])\n ])) : createCommentVNode(\"\", true)\n ], 2);\n}\nvar RoomsSearch = /* @__PURE__ */ _export_sfc(_sfc_main$o, [[\"render\", _sfc_render$o]]);\nconst element$1 = document.createElement(\"i\");\nfunction decodeNamedCharacterReference(value) {\n const characterReference2 = \"&\" + value + \";\";\n element$1.innerHTML = characterReference2;\n const char = element$1.textContent;\n if (char.charCodeAt(char.length - 1) === 59 && value !== \"semi\") {\n return false;\n }\n return char === characterReference2 ? false : char;\n}\nfunction splice(list2, start, remove2, items) {\n const end = list2.length;\n let chunkStart = 0;\n let parameters;\n if (start < 0) {\n start = -start > end ? 0 : end + start;\n } else {\n start = start > end ? end : start;\n }\n remove2 = remove2 > 0 ? remove2 : 0;\n if (items.length < 1e4) {\n parameters = Array.from(items);\n parameters.unshift(start, remove2);\n list2.splice(...parameters);\n } else {\n if (remove2)\n list2.splice(start, remove2);\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 1e4);\n parameters.unshift(start, 0);\n list2.splice(...parameters);\n chunkStart += 1e4;\n start += 1e4;\n }\n }\n}\nfunction push(list2, items) {\n if (list2.length > 0) {\n splice(list2, list2.length, 0, items);\n return list2;\n }\n return items;\n}\nconst hasOwnProperty$1 = {}.hasOwnProperty;\nfunction combineExtensions(extensions) {\n const all = {};\n let index = -1;\n while (++index < extensions.length) {\n syntaxExtension(all, extensions[index]);\n }\n return all;\n}\nfunction syntaxExtension(all, extension) {\n let hook;\n for (hook in extension) {\n const maybe = hasOwnProperty$1.call(all, hook) ? all[hook] : void 0;\n const left = maybe || (all[hook] = {});\n const right = extension[hook];\n let code2;\n if (right) {\n for (code2 in right) {\n if (!hasOwnProperty$1.call(left, code2))\n left[code2] = [];\n const value = right[code2];\n constructs(\n left[code2],\n Array.isArray(value) ? value : value ? [value] : []\n );\n }\n }\n }\n}\nfunction constructs(existing, list2) {\n let index = -1;\n const before = [];\n while (++index < list2.length) {\n (list2[index].add === \"after\" ? existing : before).push(list2[index]);\n }\n splice(existing, 0, 0, before);\n}\nfunction combineHtmlExtensions(htmlExtensions) {\n const handlers = {};\n let index = -1;\n while (++index < htmlExtensions.length) {\n htmlExtension(handlers, htmlExtensions[index]);\n }\n return handlers;\n}\nfunction htmlExtension(all, extension) {\n let hook;\n for (hook in extension) {\n const maybe = hasOwnProperty$1.call(all, hook) ? all[hook] : void 0;\n const left = maybe || (all[hook] = {});\n const right = extension[hook];\n let type;\n if (right) {\n for (type in right) {\n left[type] = right[type];\n }\n }\n }\n}\nfunction decodeNumericCharacterReference(value, base) {\n const code2 = Number.parseInt(value, base);\n if (code2 < 9 || code2 === 11 || code2 > 13 && code2 < 32 || code2 > 126 && code2 < 160 || code2 > 55295 && code2 < 57344 || code2 > 64975 && code2 < 65008 || (code2 & 65535) === 65535 || (code2 & 65535) === 65534 || code2 > 1114111) {\n return \"\\uFFFD\";\n }\n return String.fromCharCode(code2);\n}\nconst characterReferences = { '\"': \"quot\", \"&\": \"amp\", \"<\": \"lt\", \">\": \"gt\" };\nfunction encode(value) {\n return value.replace(/[\"&<>]/g, replace2);\n function replace2(value2) {\n return \"&\" + characterReferences[value2] + \";\";\n }\n}\nfunction normalizeIdentifier(value) {\n return value.replace(/[\\t\\n\\r ]+/g, \" \").replace(/^ | $/g, \"\").toLowerCase().toUpperCase();\n}\nconst unicodePunctuationRegex = /[!-\\/:-@\\[-`\\{-~\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061D-\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1B7D\\u1B7E\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52-\\u2E5D\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/;\nconst asciiAlpha = regexCheck(/[A-Za-z]/);\nconst asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/);\nconst asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/);\nfunction asciiControl(code2) {\n return code2 !== null && (code2 < 32 || code2 === 127);\n}\nconst asciiDigit = regexCheck(/\\d/);\nconst asciiHexDigit = regexCheck(/[\\dA-Fa-f]/);\nconst asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/);\nfunction markdownLineEnding(code2) {\n return code2 !== null && code2 < -2;\n}\nfunction markdownLineEndingOrSpace(code2) {\n return code2 !== null && (code2 < 0 || code2 === 32);\n}\nfunction markdownSpace(code2) {\n return code2 === -2 || code2 === -1 || code2 === 32;\n}\nconst unicodePunctuation = regexCheck(unicodePunctuationRegex);\nconst unicodeWhitespace = regexCheck(/\\s/);\nfunction regexCheck(regex) {\n return check;\n function check(code2) {\n return code2 !== null && regex.test(String.fromCharCode(code2));\n }\n}\nfunction sanitizeUri(url, protocol) {\n const value = encode(normalizeUri(url || \"\"));\n if (!protocol) {\n return value;\n }\n const colon = value.indexOf(\":\");\n const questionMark = value.indexOf(\"?\");\n const numberSign = value.indexOf(\"#\");\n const slash = value.indexOf(\"/\");\n if (colon < 0 || slash > -1 && colon > slash || questionMark > -1 && colon > questionMark || numberSign > -1 && colon > numberSign || protocol.test(value.slice(0, colon))) {\n return value;\n }\n return \"\";\n}\nfunction normalizeUri(value) {\n const result = [];\n let index = -1;\n let start = 0;\n let skip = 0;\n while (++index < value.length) {\n const code2 = value.charCodeAt(index);\n let replace2 = \"\";\n if (code2 === 37 && asciiAlphanumeric(value.charCodeAt(index + 1)) && asciiAlphanumeric(value.charCodeAt(index + 2))) {\n skip = 2;\n } else if (code2 < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code2))) {\n replace2 = String.fromCharCode(code2);\n }\n } else if (code2 > 55295 && code2 < 57344) {\n const next = value.charCodeAt(index + 1);\n if (code2 < 56320 && next > 56319 && next < 57344) {\n replace2 = String.fromCharCode(code2, next);\n skip = 1;\n } else {\n replace2 = \"\\uFFFD\";\n }\n } else {\n replace2 = String.fromCharCode(code2);\n }\n if (replace2) {\n result.push(value.slice(start, index), encodeURIComponent(replace2));\n start = index + skip + 1;\n replace2 = \"\";\n }\n if (skip) {\n index += skip;\n skip = 0;\n }\n }\n return result.join(\"\") + value.slice(start);\n}\nconst hasOwnProperty = {}.hasOwnProperty;\nconst protocolHref = /^(https?|ircs?|mailto|xmpp)$/i;\nconst protocolSrc = /^https?$/i;\nfunction compile(options) {\n const settings = options || {};\n let tags = true;\n const definitions2 = {};\n const buffers = [[]];\n const mediaStack = [];\n const tightStack = [];\n const defaultHandlers = {\n enter: {\n blockQuote: onenterblockquote,\n codeFenced: onentercodefenced,\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: onentercodeindented,\n codeText: onentercodetext,\n content: onentercontent,\n definition: onenterdefinition,\n definitionDestinationString: onenterdefinitiondestinationstring,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: onenteremphasis,\n htmlFlow: onenterhtmlflow,\n htmlText: onenterhtml,\n image: onenterimage,\n label: buffer,\n link: onenterlink,\n listItemMarker: onenterlistitemmarker,\n listItemValue: onenterlistitemvalue,\n listOrdered: onenterlistordered,\n listUnordered: onenterlistunordered,\n paragraph: onenterparagraph,\n reference: buffer,\n resource: onenterresource,\n resourceDestinationString: onenterresourcedestinationstring,\n resourceTitleString: buffer,\n setextHeading: onentersetextheading,\n strong: onenterstrong\n },\n exit: {\n atxHeading: onexitatxheading,\n atxHeadingSequence: onexitatxheadingsequence,\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: onexitblockquote,\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n codeFenced: onexitflowcode,\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: resume,\n codeFlowValue: onexitcodeflowvalue,\n codeIndented: onexitflowcode,\n codeText: onexitcodetext,\n codeTextData: onexitdata,\n data: onexitdata,\n definition: onexitdefinition,\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: onexitemphasis,\n hardBreakEscape: onexithardbreak,\n hardBreakTrailing: onexithardbreak,\n htmlFlow: onexithtml,\n htmlFlowData: onexitdata,\n htmlText: onexithtml,\n htmlTextData: onexitdata,\n image: onexitmedia,\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: onexitmedia,\n listOrdered: onexitlistordered,\n listUnordered: onexitlistunordered,\n paragraph: onexitparagraph,\n reference: resume,\n referenceString: onexitreferencestring,\n resource: resume,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n setextHeading: onexitsetextheading,\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: onexitstrong,\n thematicBreak: onexitthematicbreak\n }\n };\n const handlers = combineHtmlExtensions(\n [defaultHandlers].concat(settings.htmlExtensions || [])\n );\n const data = {\n tightStack,\n definitions: definitions2\n };\n const context = {\n lineEndingIfNeeded,\n options: settings,\n encode: encode$1,\n raw,\n tag,\n buffer,\n resume,\n setData,\n getData\n };\n let lineEndingStyle = settings.defaultLineEnding;\n return compile2;\n function compile2(events) {\n let index = -1;\n let start = 0;\n const listStack = [];\n let head = [];\n let body = [];\n while (++index < events.length) {\n if (!lineEndingStyle && (events[index][1].type === \"lineEnding\" || events[index][1].type === \"lineEndingBlank\")) {\n lineEndingStyle = events[index][2].sliceSerialize(events[index][1]);\n }\n if (events[index][1].type === \"listOrdered\" || events[index][1].type === \"listUnordered\") {\n if (events[index][0] === \"enter\") {\n listStack.push(index);\n } else {\n prepareList(events.slice(listStack.pop(), index));\n }\n }\n if (events[index][1].type === \"definition\") {\n if (events[index][0] === \"enter\") {\n body = push(body, events.slice(start, index));\n start = index;\n } else {\n head = push(head, events.slice(start, index + 1));\n start = index + 1;\n }\n }\n }\n head = push(head, body);\n head = push(head, events.slice(start));\n index = -1;\n const result = head;\n if (handlers.enter.null) {\n handlers.enter.null.call(context);\n }\n while (++index < events.length) {\n const handles = handlers[result[index][0]];\n const kind = result[index][1].type;\n const handle = handles[kind];\n if (hasOwnProperty.call(handles, kind) && handle) {\n handle.call(\n Object.assign(\n {\n sliceSerialize: result[index][2].sliceSerialize\n },\n context\n ),\n result[index][1]\n );\n }\n }\n if (handlers.exit.null) {\n handlers.exit.null.call(context);\n }\n return buffers[0].join(\"\");\n }\n function prepareList(slice) {\n const length = slice.length;\n let index = 0;\n let containerBalance = 0;\n let loose = false;\n let atMarker;\n while (++index < length) {\n const event = slice[index];\n if (event[1]._container) {\n atMarker = void 0;\n if (event[0] === \"enter\") {\n containerBalance++;\n } else {\n containerBalance--;\n }\n } else\n switch (event[1].type) {\n case \"listItemPrefix\": {\n if (event[0] === \"exit\") {\n atMarker = true;\n }\n break;\n }\n case \"linePrefix\": {\n break;\n }\n case \"lineEndingBlank\": {\n if (event[0] === \"enter\" && !containerBalance) {\n if (atMarker) {\n atMarker = void 0;\n } else {\n loose = true;\n }\n }\n break;\n }\n default: {\n atMarker = void 0;\n }\n }\n }\n slice[0][1]._loose = loose;\n }\n function setData(key, value) {\n data[key] = value;\n }\n function getData(key) {\n return data[key];\n }\n function buffer() {\n buffers.push([]);\n }\n function resume() {\n const buf = buffers.pop();\n return buf.join(\"\");\n }\n function tag(value) {\n if (!tags)\n return;\n setData(\"lastWasTag\", true);\n buffers[buffers.length - 1].push(value);\n }\n function raw(value) {\n setData(\"lastWasTag\");\n buffers[buffers.length - 1].push(value);\n }\n function lineEnding2() {\n raw(lineEndingStyle || \"\\n\");\n }\n function lineEndingIfNeeded() {\n const buffer2 = buffers[buffers.length - 1];\n const slice = buffer2[buffer2.length - 1];\n const previous2 = slice ? slice.charCodeAt(slice.length - 1) : null;\n if (previous2 === 10 || previous2 === 13 || previous2 === null) {\n return;\n }\n lineEnding2();\n }\n function encode$1(value) {\n return getData(\"ignoreEncode\") ? value : encode(value);\n }\n function onenterlistordered(token) {\n tightStack.push(!token._loose);\n lineEndingIfNeeded();\n tag(\"<ol\");\n setData(\"expectFirstItem\", true);\n }\n function onenterlistunordered(token) {\n tightStack.push(!token._loose);\n lineEndingIfNeeded();\n tag(\"<ul\");\n setData(\"expectFirstItem\", true);\n }\n function onenterlistitemvalue(token) {\n if (getData(\"expectFirstItem\")) {\n const value = Number.parseInt(this.sliceSerialize(token), 10);\n if (value !== 1) {\n tag(' start=\"' + encode$1(String(value)) + '\"');\n }\n }\n }\n function onenterlistitemmarker() {\n if (getData(\"expectFirstItem\")) {\n tag(\">\");\n } else {\n onexitlistitem();\n }\n lineEndingIfNeeded();\n tag(\"<li>\");\n setData(\"expectFirstItem\");\n setData(\"lastWasTag\");\n }\n function onexitlistordered() {\n onexitlistitem();\n tightStack.pop();\n lineEnding2();\n tag(\"</ol>\");\n }\n function onexitlistunordered() {\n onexitlistitem();\n tightStack.pop();\n lineEnding2();\n tag(\"</ul>\");\n }\n function onexitlistitem() {\n if (getData(\"lastWasTag\") && !getData(\"slurpAllLineEndings\")) {\n lineEndingIfNeeded();\n }\n tag(\"</li>\");\n setData(\"slurpAllLineEndings\");\n }\n function onenterblockquote() {\n tightStack.push(false);\n lineEndingIfNeeded();\n tag(\"<blockquote>\");\n }\n function onexitblockquote() {\n tightStack.pop();\n lineEndingIfNeeded();\n tag(\"</blockquote>\");\n setData(\"slurpAllLineEndings\");\n }\n function onenterparagraph() {\n if (!tightStack[tightStack.length - 1]) {\n lineEndingIfNeeded();\n tag(\"<p>\");\n }\n setData(\"slurpAllLineEndings\");\n }\n function onexitparagraph() {\n if (tightStack[tightStack.length - 1]) {\n setData(\"slurpAllLineEndings\", true);\n } else {\n tag(\"</p>\");\n }\n }\n function onentercodefenced() {\n lineEndingIfNeeded();\n tag(\"<pre><code\");\n setData(\"fencesCount\", 0);\n }\n function onexitcodefencedfenceinfo() {\n const value = resume();\n tag(' class=\"language-' + value + '\"');\n }\n function onexitcodefencedfence() {\n const count = getData(\"fencesCount\") || 0;\n if (!count) {\n tag(\">\");\n setData(\"slurpOneLineEnding\", true);\n }\n setData(\"fencesCount\", count + 1);\n }\n function onentercodeindented() {\n lineEndingIfNeeded();\n tag(\"<pre><code>\");\n }\n function onexitflowcode() {\n const count = getData(\"fencesCount\");\n if (count !== void 0 && count < 2 && data.tightStack.length > 0 && !getData(\"lastWasTag\")) {\n lineEnding2();\n }\n if (getData(\"flowCodeSeenData\")) {\n lineEndingIfNeeded();\n }\n tag(\"</code></pre>\");\n if (count !== void 0 && count < 2)\n lineEndingIfNeeded();\n setData(\"flowCodeSeenData\");\n setData(\"fencesCount\");\n setData(\"slurpOneLineEnding\");\n }\n function onenterimage() {\n mediaStack.push({\n image: true\n });\n tags = void 0;\n }\n function onenterlink() {\n mediaStack.push({});\n }\n function onexitlabeltext(token) {\n mediaStack[mediaStack.length - 1].labelId = this.sliceSerialize(token);\n }\n function onexitlabel() {\n mediaStack[mediaStack.length - 1].label = resume();\n }\n function onexitreferencestring(token) {\n mediaStack[mediaStack.length - 1].referenceId = this.sliceSerialize(token);\n }\n function onenterresource() {\n buffer();\n mediaStack[mediaStack.length - 1].destination = \"\";\n }\n function onenterresourcedestinationstring() {\n buffer();\n setData(\"ignoreEncode\", true);\n }\n function onexitresourcedestinationstring() {\n mediaStack[mediaStack.length - 1].destination = resume();\n setData(\"ignoreEncode\");\n }\n function onexitresourcetitlestring() {\n mediaStack[mediaStack.length - 1].title = resume();\n }\n function onexitmedia() {\n let index = mediaStack.length - 1;\n const media = mediaStack[index];\n const id = media.referenceId || media.labelId;\n const context2 = media.destination === void 0 ? definitions2[normalizeIdentifier(id)] : media;\n tags = true;\n while (index--) {\n if (mediaStack[index].image) {\n tags = void 0;\n break;\n }\n }\n if (media.image) {\n tag(\n '<img src=\"' + sanitizeUri(\n context2.destination,\n settings.allowDangerousProtocol ? void 0 : protocolSrc\n ) + '\" alt=\"'\n );\n raw(media.label);\n tag('\"');\n } else {\n tag(\n '<a href=\"' + sanitizeUri(\n context2.destination,\n settings.allowDangerousProtocol ? void 0 : protocolHref\n ) + '\"'\n );\n }\n tag(context2.title ? ' title=\"' + context2.title + '\"' : \"\");\n if (media.image) {\n tag(\" />\");\n } else {\n tag(\">\");\n raw(media.label);\n tag(\"</a>\");\n }\n mediaStack.pop();\n }\n function onenterdefinition() {\n buffer();\n mediaStack.push({});\n }\n function onexitdefinitionlabelstring(token) {\n resume();\n mediaStack[mediaStack.length - 1].labelId = this.sliceSerialize(token);\n }\n function onenterdefinitiondestinationstring() {\n buffer();\n setData(\"ignoreEncode\", true);\n }\n function onexitdefinitiondestinationstring() {\n mediaStack[mediaStack.length - 1].destination = resume();\n setData(\"ignoreEncode\");\n }\n function onexitdefinitiontitlestring() {\n mediaStack[mediaStack.length - 1].title = resume();\n }\n function onexitdefinition() {\n const media = mediaStack[mediaStack.length - 1];\n const id = normalizeIdentifier(media.labelId);\n resume();\n if (!hasOwnProperty.call(definitions2, id)) {\n definitions2[id] = mediaStack[mediaStack.length - 1];\n }\n mediaStack.pop();\n }\n function onentercontent() {\n setData(\"slurpAllLineEndings\", true);\n }\n function onexitatxheadingsequence(token) {\n if (getData(\"headingRank\"))\n return;\n setData(\"headingRank\", this.sliceSerialize(token).length);\n lineEndingIfNeeded();\n tag(\"<h\" + getData(\"headingRank\") + \">\");\n }\n function onentersetextheading() {\n buffer();\n setData(\"slurpAllLineEndings\");\n }\n function onexitsetextheadingtext() {\n setData(\"slurpAllLineEndings\", true);\n }\n function onexitatxheading() {\n tag(\"</h\" + getData(\"headingRank\") + \">\");\n setData(\"headingRank\");\n }\n function onexitsetextheadinglinesequence(token) {\n setData(\n \"headingRank\",\n this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n );\n }\n function onexitsetextheading() {\n const value = resume();\n lineEndingIfNeeded();\n tag(\"<h\" + getData(\"headingRank\") + \">\");\n raw(value);\n tag(\"</h\" + getData(\"headingRank\") + \">\");\n setData(\"slurpAllLineEndings\");\n setData(\"headingRank\");\n }\n function onexitdata(token) {\n raw(encode$1(this.sliceSerialize(token)));\n }\n function onexitlineending(token) {\n if (getData(\"slurpAllLineEndings\")) {\n return;\n }\n if (getData(\"slurpOneLineEnding\")) {\n setData(\"slurpOneLineEnding\");\n return;\n }\n if (getData(\"inCodeText\")) {\n raw(\" \");\n return;\n }\n raw(encode$1(this.sliceSerialize(token)));\n }\n function onexitcodeflowvalue(token) {\n raw(encode$1(this.sliceSerialize(token)));\n setData(\"flowCodeSeenData\", true);\n }\n function onexithardbreak() {\n tag(\"<br />\");\n }\n function onenterhtmlflow() {\n lineEndingIfNeeded();\n onenterhtml();\n }\n function onexithtml() {\n setData(\"ignoreEncode\");\n }\n function onenterhtml() {\n if (settings.allowDangerousHtml) {\n setData(\"ignoreEncode\", true);\n }\n }\n function onenteremphasis() {\n tag(\"<em>\");\n }\n function onenterstrong() {\n tag(\"<strong>\");\n }\n function onentercodetext() {\n setData(\"inCodeText\", true);\n tag(\"<code>\");\n }\n function onexitcodetext() {\n setData(\"inCodeText\");\n tag(\"</code>\");\n }\n function onexitemphasis() {\n tag(\"</em>\");\n }\n function onexitstrong() {\n tag(\"</strong>\");\n }\n function onexitthematicbreak() {\n lineEndingIfNeeded();\n tag(\"<hr />\");\n }\n function onexitcharacterreferencemarker(token) {\n setData(\"characterReferenceType\", token.type);\n }\n function onexitcharacterreferencevalue(token) {\n let value = this.sliceSerialize(token);\n value = getData(\"characterReferenceType\") ? decodeNumericCharacterReference(\n value,\n getData(\"characterReferenceType\") === \"characterReferenceMarkerNumeric\" ? 10 : 16\n ) : decodeNamedCharacterReference(value);\n raw(encode$1(value));\n setData(\"characterReferenceType\");\n }\n function onexitautolinkprotocol(token) {\n const uri = this.sliceSerialize(token);\n tag(\n '<a href=\"' + sanitizeUri(\n uri,\n settings.allowDangerousProtocol ? void 0 : protocolHref\n ) + '\">'\n );\n raw(encode$1(uri));\n tag(\"</a>\");\n }\n function onexitautolinkemail(token) {\n const uri = this.sliceSerialize(token);\n tag('<a href=\"' + sanitizeUri(\"mailto:\" + uri) + '\">');\n raw(encode$1(uri));\n tag(\"</a>\");\n }\n}\nfunction factorySpace(effects, ok, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY;\n let size2 = 0;\n return start;\n function start(code2) {\n if (markdownSpace(code2)) {\n effects.enter(type);\n return prefix(code2);\n }\n return ok(code2);\n }\n function prefix(code2) {\n if (markdownSpace(code2) && size2++ < limit) {\n effects.consume(code2);\n return prefix;\n }\n effects.exit(type);\n return ok(code2);\n }\n}\nconst content$1 = {\n tokenize: initializeContent\n};\nfunction initializeContent(effects) {\n const contentStart = effects.attempt(\n this.parser.constructs.contentInitial,\n afterContentStartConstruct,\n paragraphInitial\n );\n let previous2;\n return contentStart;\n function afterContentStartConstruct(code2) {\n if (code2 === null) {\n effects.consume(code2);\n return;\n }\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, contentStart, \"linePrefix\");\n }\n function paragraphInitial(code2) {\n effects.enter(\"paragraph\");\n return lineStart(code2);\n }\n function lineStart(code2) {\n const token = effects.enter(\"chunkText\", {\n contentType: \"text\",\n previous: previous2\n });\n if (previous2) {\n previous2.next = token;\n }\n previous2 = token;\n return data(code2);\n }\n function data(code2) {\n if (code2 === null) {\n effects.exit(\"chunkText\");\n effects.exit(\"paragraph\");\n effects.consume(code2);\n return;\n }\n if (markdownLineEnding(code2)) {\n effects.consume(code2);\n effects.exit(\"chunkText\");\n return lineStart;\n }\n effects.consume(code2);\n return data;\n }\n}\nconst document$2 = {\n tokenize: initializeDocument\n};\nconst containerConstruct = {\n tokenize: tokenizeContainer\n};\nfunction initializeDocument(effects) {\n const self2 = this;\n const stack = [];\n let continued = 0;\n let childFlow;\n let childToken;\n let lineStartOffset;\n return start;\n function start(code2) {\n if (continued < stack.length) {\n const item = stack[continued];\n self2.containerState = item[1];\n return effects.attempt(\n item[0].continuation,\n documentContinue,\n checkNewContainers\n )(code2);\n }\n return checkNewContainers(code2);\n }\n function documentContinue(code2) {\n continued++;\n if (self2.containerState._closeFlow) {\n self2.containerState._closeFlow = void 0;\n if (childFlow) {\n closeFlow();\n }\n const indexBeforeExits = self2.events.length;\n let indexBeforeFlow = indexBeforeExits;\n let point;\n while (indexBeforeFlow--) {\n if (self2.events[indexBeforeFlow][0] === \"exit\" && self2.events[indexBeforeFlow][1].type === \"chunkFlow\") {\n point = self2.events[indexBeforeFlow][1].end;\n break;\n }\n }\n exitContainers(continued);\n let index = indexBeforeExits;\n while (index < self2.events.length) {\n self2.events[index][1].end = Object.assign({}, point);\n index++;\n }\n splice(\n self2.events,\n indexBeforeFlow + 1,\n 0,\n self2.events.slice(indexBeforeExits)\n );\n self2.events.length = index;\n return checkNewContainers(code2);\n }\n return start(code2);\n }\n function checkNewContainers(code2) {\n if (continued === stack.length) {\n if (!childFlow) {\n return documentContinued(code2);\n }\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n return flowStart(code2);\n }\n self2.interrupt = Boolean(\n childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack\n );\n }\n self2.containerState = {};\n return effects.check(\n containerConstruct,\n thereIsANewContainer,\n thereIsNoNewContainer\n )(code2);\n }\n function thereIsANewContainer(code2) {\n if (childFlow)\n closeFlow();\n exitContainers(continued);\n return documentContinued(code2);\n }\n function thereIsNoNewContainer(code2) {\n self2.parser.lazy[self2.now().line] = continued !== stack.length;\n lineStartOffset = self2.now().offset;\n return flowStart(code2);\n }\n function documentContinued(code2) {\n self2.containerState = {};\n return effects.attempt(\n containerConstruct,\n containerContinue,\n flowStart\n )(code2);\n }\n function containerContinue(code2) {\n continued++;\n stack.push([self2.currentConstruct, self2.containerState]);\n return documentContinued(code2);\n }\n function flowStart(code2) {\n if (code2 === null) {\n if (childFlow)\n closeFlow();\n exitContainers(0);\n effects.consume(code2);\n return;\n }\n childFlow = childFlow || self2.parser.flow(self2.now());\n effects.enter(\"chunkFlow\", {\n contentType: \"flow\",\n previous: childToken,\n _tokenizer: childFlow\n });\n return flowContinue(code2);\n }\n function flowContinue(code2) {\n if (code2 === null) {\n writeToChild(effects.exit(\"chunkFlow\"), true);\n exitContainers(0);\n effects.consume(code2);\n return;\n }\n if (markdownLineEnding(code2)) {\n effects.consume(code2);\n writeToChild(effects.exit(\"chunkFlow\"));\n continued = 0;\n self2.interrupt = void 0;\n return start;\n }\n effects.consume(code2);\n return flowContinue;\n }\n function writeToChild(token, eof) {\n const stream = self2.sliceStream(token);\n if (eof)\n stream.push(null);\n token.previous = childToken;\n if (childToken)\n childToken.next = token;\n childToken = token;\n childFlow.defineSkip(token.start);\n childFlow.write(stream);\n if (self2.parser.lazy[token.start.line]) {\n let index = childFlow.events.length;\n while (index--) {\n if (childFlow.events[index][1].start.offset < lineStartOffset && (!childFlow.events[index][1].end || childFlow.events[index][1].end.offset > lineStartOffset)) {\n return;\n }\n }\n const indexBeforeExits = self2.events.length;\n let indexBeforeFlow = indexBeforeExits;\n let seen;\n let point;\n while (indexBeforeFlow--) {\n if (self2.events[indexBeforeFlow][0] === \"exit\" && self2.events[indexBeforeFlow][1].type === \"chunkFlow\") {\n if (seen) {\n point = self2.events[indexBeforeFlow][1].end;\n break;\n }\n seen = true;\n }\n }\n exitContainers(continued);\n index = indexBeforeExits;\n while (index < self2.events.length) {\n self2.events[index][1].end = Object.assign({}, point);\n index++;\n }\n splice(\n self2.events,\n indexBeforeFlow + 1,\n 0,\n self2.events.slice(indexBeforeExits)\n );\n self2.events.length = index;\n }\n }\n function exitContainers(size2) {\n let index = stack.length;\n while (index-- > size2) {\n const entry = stack[index];\n self2.containerState = entry[1];\n entry[0].exit.call(self2, effects);\n }\n stack.length = size2;\n }\n function closeFlow() {\n childFlow.write([null]);\n childToken = void 0;\n childFlow = void 0;\n self2.containerState._closeFlow = void 0;\n }\n}\nfunction tokenizeContainer(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(this.parser.constructs.document, ok, nok),\n \"linePrefix\",\n this.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4\n );\n}\nfunction classifyCharacter(code2) {\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return 1;\n }\n if (unicodePunctuation(code2)) {\n return 2;\n }\n}\nfunction resolveAll(constructs2, events, context) {\n const called = [];\n let index = -1;\n while (++index < constructs2.length) {\n const resolve2 = constructs2[index].resolveAll;\n if (resolve2 && !called.includes(resolve2)) {\n events = resolve2(events, context);\n called.push(resolve2);\n }\n }\n return events;\n}\nconst attention = {\n name: \"attention\",\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n};\nfunction resolveAllAttention(events, context) {\n let index = -1;\n let open;\n let group;\n let text2;\n let openingSequence;\n let closingSequence;\n let use;\n let nextEvents;\n let offset;\n while (++index < events.length) {\n if (events[index][0] === \"enter\" && events[index][1].type === \"attentionSequence\" && events[index][1]._close) {\n open = index;\n while (open--) {\n if (events[open][0] === \"exit\" && events[open][1].type === \"attentionSequence\" && events[open][1]._open && context.sliceSerialize(events[open][1]).charCodeAt(0) === context.sliceSerialize(events[index][1]).charCodeAt(0)) {\n if ((events[open][1]._close || events[index][1]._open) && (events[index][1].end.offset - events[index][1].start.offset) % 3 && !((events[open][1].end.offset - events[open][1].start.offset + events[index][1].end.offset - events[index][1].start.offset) % 3)) {\n continue;\n }\n use = events[open][1].end.offset - events[open][1].start.offset > 1 && events[index][1].end.offset - events[index][1].start.offset > 1 ? 2 : 1;\n const start = Object.assign({}, events[open][1].end);\n const end = Object.assign({}, events[index][1].start);\n movePoint(start, -use);\n movePoint(end, use);\n openingSequence = {\n type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start,\n end: Object.assign({}, events[open][1].end)\n };\n closingSequence = {\n type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start: Object.assign({}, events[index][1].start),\n end\n };\n text2 = {\n type: use > 1 ? \"strongText\" : \"emphasisText\",\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n };\n group = {\n type: use > 1 ? \"strong\" : \"emphasis\",\n start: Object.assign({}, openingSequence.start),\n end: Object.assign({}, closingSequence.end)\n };\n events[open][1].end = Object.assign({}, openingSequence.start);\n events[index][1].start = Object.assign({}, closingSequence.end);\n nextEvents = [];\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = push(nextEvents, [\n [\"enter\", events[open][1], context],\n [\"exit\", events[open][1], context]\n ]);\n }\n nextEvents = push(nextEvents, [\n [\"enter\", group, context],\n [\"enter\", openingSequence, context],\n [\"exit\", openingSequence, context],\n [\"enter\", text2, context]\n ]);\n nextEvents = push(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n );\n nextEvents = push(nextEvents, [\n [\"exit\", text2, context],\n [\"enter\", closingSequence, context],\n [\"exit\", closingSequence, context],\n [\"exit\", group, context]\n ]);\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2;\n nextEvents = push(nextEvents, [\n [\"enter\", events[index][1], context],\n [\"exit\", events[index][1], context]\n ]);\n } else {\n offset = 0;\n }\n splice(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - offset - 2;\n break;\n }\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n if (events[index][1].type === \"attentionSequence\") {\n events[index][1].type = \"data\";\n }\n }\n return events;\n}\nfunction tokenizeAttention(effects, ok) {\n const attentionMarkers2 = this.parser.constructs.attentionMarkers.null;\n const previous2 = this.previous;\n const before = classifyCharacter(previous2);\n let marker;\n return start;\n function start(code2) {\n marker = code2;\n effects.enter(\"attentionSequence\");\n return inside(code2);\n }\n function inside(code2) {\n if (code2 === marker) {\n effects.consume(code2);\n return inside;\n }\n const token = effects.exit(\"attentionSequence\");\n const after = classifyCharacter(code2);\n const open = !after || after === 2 && before || attentionMarkers2.includes(code2);\n const close = !before || before === 2 && after || attentionMarkers2.includes(previous2);\n token._open = Boolean(marker === 42 ? open : open && (before || !close));\n token._close = Boolean(marker === 42 ? close : close && (after || !open));\n return ok(code2);\n }\n}\nfunction movePoint(point, offset) {\n point.column += offset;\n point.offset += offset;\n point._bufferIndex += offset;\n}\nconst autolink = {\n name: \"autolink\",\n tokenize: tokenizeAutolink\n};\nfunction tokenizeAutolink(effects, ok, nok) {\n let size2 = 0;\n return start;\n function start(code2) {\n effects.enter(\"autolink\");\n effects.enter(\"autolinkMarker\");\n effects.consume(code2);\n effects.exit(\"autolinkMarker\");\n effects.enter(\"autolinkProtocol\");\n return open;\n }\n function open(code2) {\n if (asciiAlpha(code2)) {\n effects.consume(code2);\n return schemeOrEmailAtext;\n }\n return emailAtext(code2);\n }\n function schemeOrEmailAtext(code2) {\n if (code2 === 43 || code2 === 45 || code2 === 46 || asciiAlphanumeric(code2)) {\n size2 = 1;\n return schemeInsideOrEmailAtext(code2);\n }\n return emailAtext(code2);\n }\n function schemeInsideOrEmailAtext(code2) {\n if (code2 === 58) {\n effects.consume(code2);\n size2 = 0;\n return urlInside;\n }\n if ((code2 === 43 || code2 === 45 || code2 === 46 || asciiAlphanumeric(code2)) && size2++ < 32) {\n effects.consume(code2);\n return schemeInsideOrEmailAtext;\n }\n size2 = 0;\n return emailAtext(code2);\n }\n function urlInside(code2) {\n if (code2 === 62) {\n effects.exit(\"autolinkProtocol\");\n effects.enter(\"autolinkMarker\");\n effects.consume(code2);\n effects.exit(\"autolinkMarker\");\n effects.exit(\"autolink\");\n return ok;\n }\n if (code2 === null || code2 === 32 || code2 === 60 || asciiControl(code2)) {\n return nok(code2);\n }\n effects.consume(code2);\n return urlInside;\n }\n function emailAtext(code2) {\n if (code2 === 64) {\n effects.consume(code2);\n return emailAtSignOrDot;\n }\n if (asciiAtext(code2)) {\n effects.consume(code2);\n return emailAtext;\n }\n return nok(code2);\n }\n function emailAtSignOrDot(code2) {\n return asciiAlphanumeric(code2) ? emailLabel(code2) : nok(code2);\n }\n function emailLabel(code2) {\n if (code2 === 46) {\n effects.consume(code2);\n size2 = 0;\n return emailAtSignOrDot;\n }\n if (code2 === 62) {\n effects.exit(\"autolinkProtocol\").type = \"autolinkEmail\";\n effects.enter(\"autolinkMarker\");\n effects.consume(code2);\n effects.exit(\"autolinkMarker\");\n effects.exit(\"autolink\");\n return ok;\n }\n return emailValue(code2);\n }\n function emailValue(code2) {\n if ((code2 === 45 || asciiAlphanumeric(code2)) && size2++ < 63) {\n const next = code2 === 45 ? emailValue : emailLabel;\n effects.consume(code2);\n return next;\n }\n return nok(code2);\n }\n}\nconst blankLine = {\n tokenize: tokenizeBlankLine,\n partial: true\n};\nfunction tokenizeBlankLine(effects, ok, nok) {\n return start;\n function start(code2) {\n return markdownSpace(code2) ? factorySpace(effects, after, \"linePrefix\")(code2) : after(code2);\n }\n function after(code2) {\n return code2 === null || markdownLineEnding(code2) ? ok(code2) : nok(code2);\n }\n}\nconst blockQuote = {\n name: \"blockQuote\",\n tokenize: tokenizeBlockQuoteStart,\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit\n};\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n const self2 = this;\n return start;\n function start(code2) {\n if (code2 === 62) {\n const state = self2.containerState;\n if (!state.open) {\n effects.enter(\"blockQuote\", {\n _container: true\n });\n state.open = true;\n }\n effects.enter(\"blockQuotePrefix\");\n effects.enter(\"blockQuoteMarker\");\n effects.consume(code2);\n effects.exit(\"blockQuoteMarker\");\n return after;\n }\n return nok(code2);\n }\n function after(code2) {\n if (markdownSpace(code2)) {\n effects.enter(\"blockQuotePrefixWhitespace\");\n effects.consume(code2);\n effects.exit(\"blockQuotePrefixWhitespace\");\n effects.exit(\"blockQuotePrefix\");\n return ok;\n }\n effects.exit(\"blockQuotePrefix\");\n return ok(code2);\n }\n}\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n const self2 = this;\n return contStart;\n function contStart(code2) {\n if (markdownSpace(code2)) {\n return factorySpace(\n effects,\n contBefore,\n \"linePrefix\",\n self2.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4\n )(code2);\n }\n return contBefore(code2);\n }\n function contBefore(code2) {\n return effects.attempt(blockQuote, ok, nok)(code2);\n }\n}\nfunction exit(effects) {\n effects.exit(\"blockQuote\");\n}\nconst characterEscape = {\n name: \"characterEscape\",\n tokenize: tokenizeCharacterEscape\n};\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start;\n function start(code2) {\n effects.enter(\"characterEscape\");\n effects.enter(\"escapeMarker\");\n effects.consume(code2);\n effects.exit(\"escapeMarker\");\n return inside;\n }\n function inside(code2) {\n if (asciiPunctuation(code2)) {\n effects.enter(\"characterEscapeValue\");\n effects.consume(code2);\n effects.exit(\"characterEscapeValue\");\n effects.exit(\"characterEscape\");\n return ok;\n }\n return nok(code2);\n }\n}\nconst characterReference = {\n name: \"characterReference\",\n tokenize: tokenizeCharacterReference\n};\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self2 = this;\n let size2 = 0;\n let max;\n let test;\n return start;\n function start(code2) {\n effects.enter(\"characterReference\");\n effects.enter(\"characterReferenceMarker\");\n effects.consume(code2);\n effects.exit(\"characterReferenceMarker\");\n return open;\n }\n function open(code2) {\n if (code2 === 35) {\n effects.enter(\"characterReferenceMarkerNumeric\");\n effects.consume(code2);\n effects.exit(\"characterReferenceMarkerNumeric\");\n return numeric;\n }\n effects.enter(\"characterReferenceValue\");\n max = 31;\n test = asciiAlphanumeric;\n return value(code2);\n }\n function numeric(code2) {\n if (code2 === 88 || code2 === 120) {\n effects.enter(\"characterReferenceMarkerHexadecimal\");\n effects.consume(code2);\n effects.exit(\"characterReferenceMarkerHexadecimal\");\n effects.enter(\"characterReferenceValue\");\n max = 6;\n test = asciiHexDigit;\n return value;\n }\n effects.enter(\"characterReferenceValue\");\n max = 7;\n test = asciiDigit;\n return value(code2);\n }\n function value(code2) {\n if (code2 === 59 && size2) {\n const token = effects.exit(\"characterReferenceValue\");\n if (test === asciiAlphanumeric && !decodeNamedCharacterReference(self2.sliceSerialize(token))) {\n return nok(code2);\n }\n effects.enter(\"characterReferenceMarker\");\n effects.consume(code2);\n effects.exit(\"characterReferenceMarker\");\n effects.exit(\"characterReference\");\n return ok;\n }\n if (test(code2) && size2++ < max) {\n effects.consume(code2);\n return value;\n }\n return nok(code2);\n }\n}\nconst nonLazyContinuation = {\n tokenize: tokenizeNonLazyContinuation,\n partial: true\n};\nconst codeFenced = {\n name: \"codeFenced\",\n tokenize: tokenizeCodeFenced,\n concrete: true\n};\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self2 = this;\n const closeStart = {\n tokenize: tokenizeCloseStart,\n partial: true\n };\n let initialPrefix = 0;\n let sizeOpen = 0;\n let marker;\n return start;\n function start(code2) {\n return beforeSequenceOpen(code2);\n }\n function beforeSequenceOpen(code2) {\n const tail = self2.events[self2.events.length - 1];\n initialPrefix = tail && tail[1].type === \"linePrefix\" ? tail[2].sliceSerialize(tail[1], true).length : 0;\n marker = code2;\n effects.enter(\"codeFenced\");\n effects.enter(\"codeFencedFence\");\n effects.enter(\"codeFencedFenceSequence\");\n return sequenceOpen(code2);\n }\n function sequenceOpen(code2) {\n if (code2 === marker) {\n sizeOpen++;\n effects.consume(code2);\n return sequenceOpen;\n }\n if (sizeOpen < 3) {\n return nok(code2);\n }\n effects.exit(\"codeFencedFenceSequence\");\n return markdownSpace(code2) ? factorySpace(effects, infoBefore, \"whitespace\")(code2) : infoBefore(code2);\n }\n function infoBefore(code2) {\n if (code2 === null || markdownLineEnding(code2)) {\n effects.exit(\"codeFencedFence\");\n return self2.interrupt ? ok(code2) : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code2);\n }\n effects.enter(\"codeFencedFenceInfo\");\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return info(code2);\n }\n function info(code2) {\n if (code2 === null || markdownLineEnding(code2)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceInfo\");\n return infoBefore(code2);\n }\n if (markdownSpace(code2)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceInfo\");\n return factorySpace(effects, metaBefore, \"whitespace\")(code2);\n }\n if (code2 === 96 && code2 === marker) {\n return nok(code2);\n }\n effects.consume(code2);\n return info;\n }\n function metaBefore(code2) {\n if (code2 === null || markdownLineEnding(code2)) {\n return infoBefore(code2);\n }\n effects.enter(\"codeFencedFenceMeta\");\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return meta(code2);\n }\n function meta(code2) {\n if (code2 === null || markdownLineEnding(code2)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceMeta\");\n return infoBefore(code2);\n }\n if (code2 === 96 && code2 === marker) {\n return nok(code2);\n }\n effects.consume(code2);\n return meta;\n }\n function atNonLazyBreak(code2) {\n return effects.attempt(closeStart, after, contentBefore)(code2);\n }\n function contentBefore(code2) {\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return contentStart;\n }\n function contentStart(code2) {\n return initialPrefix > 0 && markdownSpace(code2) ? factorySpace(\n effects,\n beforeContentChunk,\n \"linePrefix\",\n initialPrefix + 1\n )(code2) : beforeContentChunk(code2);\n }\n function beforeContentChunk(code2) {\n if (code2 === null || markdownLineEnding(code2)) {\n return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code2);\n }\n effects.enter(\"codeFlowValue\");\n return contentChunk(code2);\n }\n function contentChunk(code2) {\n if (code2 === null || markdownLineEnding(code2)) {\n effects.exit(\"codeFlowValue\");\n return beforeContentChunk(code2);\n }\n effects.consume(code2);\n return contentChunk;\n }\n function after(code2) {\n effects.exit(\"codeFenced\");\n return ok(code2);\n }\n function tokenizeCloseStart(effects2, ok2, nok2) {\n let size2 = 0;\n return startBefore;\n function startBefore(code2) {\n effects2.enter(\"lineEnding\");\n effects2.consume(code2);\n effects2.exit(\"lineEnding\");\n return start2;\n }\n function start2(code2) {\n effects2.enter(\"codeFencedFence\");\n return markdownSpace(code2) ? factorySpace(\n effects2,\n beforeSequenceClose,\n \"linePrefix\",\n self2.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4\n )(code2) : beforeSequenceClose(code2);\n }\n function beforeSequenceClose(code2) {\n if (code2 === marker) {\n effects2.enter(\"codeFencedFenceSequence\");\n return sequenceClose(code2);\n }\n return nok2(code2);\n }\n function sequenceClose(code2) {\n if (code2 === marker) {\n size2++;\n effects2.consume(code2);\n return sequenceClose;\n }\n if (size2 >= sizeOpen) {\n effects2.exit(\"codeFencedFenceSequence\");\n return markdownSpace(code2) ? factorySpace(effects2, sequenceCloseAfter, \"whitespace\")(code2) : sequenceCloseAfter(code2);\n }\n return nok2(code2);\n }\n function sequenceCloseAfter(code2) {\n if (code2 === null || markdownLineEnding(code2)) {\n effects2.exit(\"codeFencedFence\");\n return ok2(code2);\n }\n return nok2(code2);\n }\n }\n}\nfunction tokenizeNonLazyContinuation(effects, ok, nok) {\n const self2 = this;\n return start;\n function start(code2) {\n if (code2 === null) {\n return nok(code2);\n }\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return lineStart;\n }\n function lineStart(code2) {\n return self2.parser.lazy[self2.now().line] ? nok(code2) : ok(code2);\n }\n}\nconst codeIndented = {\n name: \"codeIndented\",\n tokenize: tokenizeCodeIndented\n};\nconst furtherStart = {\n tokenize: tokenizeFurtherStart,\n partial: true\n};\nfunction tokenizeCodeIndented(effects, ok, nok) {\n const self2 = this;\n return start;\n function start(code2) {\n effects.enter(\"codeIndented\");\n return factorySpace(effects, afterPrefix, \"linePrefix\", 4 + 1)(code2);\n }\n function afterPrefix(code2) {\n const tail = self2.events[self2.events.length - 1];\n return tail && tail[1].type === \"linePrefix\" && tail[2].sliceSerialize(tail[1], true).length >= 4 ? atBreak(code2) : nok(code2);\n }\n function atBreak(code2) {\n if (code2 === null) {\n return after(code2);\n }\n if (markdownLineEnding(code2)) {\n return effects.attempt(furtherStart, atBreak, after)(code2);\n }\n effects.enter(\"codeFlowValue\");\n return inside(code2);\n }\n function inside(code2) {\n if (code2 === null || markdownLineEnding(code2)) {\n effects.exit(\"codeFlowValue\");\n return atBreak(code2);\n }\n effects.consume(code2);\n return inside;\n }\n function after(code2) {\n effects.exit(\"codeIndented\");\n return ok(code2);\n }\n}\nfunction tokenizeFurtherStart(effects, ok, nok) {\n const self2 = this;\n return furtherStart2;\n function furtherStart2(code2) {\n if (self2.parser.lazy[self2.now().line]) {\n return nok(code2);\n }\n if (markdownLineEnding(code2)) {\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return furtherStart2;\n }\n return factorySpace(effects, afterPrefix, \"linePrefix\", 4 + 1)(code2);\n }\n function afterPrefix(code2) {\n const tail = self2.events[self2.events.length - 1];\n return tail && tail[1].type === \"linePrefix\" && tail[2].sliceSerialize(tail[1], true).length >= 4 ? ok(code2) : markdownLineEnding(code2) ? furtherStart2(code2) : nok(code2);\n }\n}\nconst codeText = {\n name: \"codeText\",\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous\n};\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4;\n let headEnterIndex = 3;\n let index;\n let enter;\n if ((events[headEnterIndex][1].type === \"lineEnding\" || events[headEnterIndex][1].type === \"space\") && (events[tailExitIndex][1].type === \"lineEnding\" || events[tailExitIndex][1].type === \"space\")) {\n index = headEnterIndex;\n while (++index < tailExitIndex) {\n if (events[index][1].type === \"codeTextData\") {\n events[headEnterIndex][1].type = \"codeTextPadding\";\n events[tailExitIndex][1].type = \"codeTextPadding\";\n headEnterIndex += 2;\n tailExitIndex -= 2;\n break;\n }\n }\n }\n index = headEnterIndex - 1;\n tailExitIndex++;\n while (++index <= tailExitIndex) {\n if (enter === void 0) {\n if (index !== tailExitIndex && events[index][1].type !== \"lineEnding\") {\n enter = index;\n }\n } else if (index === tailExitIndex || events[index][1].type === \"lineEnding\") {\n events[enter][1].type = \"codeTextData\";\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end;\n events.splice(enter + 2, index - enter - 2);\n tailExitIndex -= index - enter - 2;\n index = enter + 2;\n }\n enter = void 0;\n }\n }\n return events;\n}\nfunction previous(code2) {\n return code2 !== 96 || this.events[this.events.length - 1][1].type === \"characterEscape\";\n}\nfunction tokenizeCodeText(effects, ok, nok) {\n let sizeOpen = 0;\n let size2;\n let token;\n return start;\n function start(code2) {\n effects.enter(\"codeText\");\n effects.enter(\"codeTextSequence\");\n return sequenceOpen(code2);\n }\n function sequenceOpen(code2) {\n if (code2 === 96) {\n effects.consume(code2);\n sizeOpen++;\n return sequenceOpen;\n }\n effects.exit(\"codeTextSequence\");\n return between(code2);\n }\n function between(code2) {\n if (code2 === null) {\n return nok(code2);\n }\n if (code2 === 32) {\n effects.enter(\"space\");\n effects.consume(code2);\n effects.exit(\"space\");\n return between;\n }\n if (code2 === 96) {\n token = effects.enter(\"codeTextSequence\");\n size2 = 0;\n return sequenceClose(code2);\n }\n if (markdownLineEnding(code2)) {\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return between;\n }\n effects.enter(\"codeTextData\");\n return data(code2);\n }\n function data(code2) {\n if (code2 === null || code2 === 32 || code2 === 96 || markdownLineEnding(code2)) {\n effects.exit(\"codeTextData\");\n return between(code2);\n }\n effects.consume(code2);\n return data;\n }\n function sequenceClose(code2) {\n if (code2 === 96) {\n effects.consume(code2);\n size2++;\n return sequenceClose;\n }\n if (size2 === sizeOpen) {\n effects.exit(\"codeTextSequence\");\n effects.exit(\"codeText\");\n return ok(code2);\n }\n token.type = \"codeTextData\";\n return data(code2);\n }\n}\nfunction subtokenize(events) {\n const jumps = {};\n let index = -1;\n let event;\n let lineIndex;\n let otherIndex;\n let otherEvent;\n let parameters;\n let subevents;\n let more;\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index];\n }\n event = events[index];\n if (index && event[1].type === \"chunkFlow\" && events[index - 1][1].type === \"listItemPrefix\") {\n subevents = event[1]._tokenizer.events;\n otherIndex = 0;\n if (otherIndex < subevents.length && subevents[otherIndex][1].type === \"lineEndingBlank\") {\n otherIndex += 2;\n }\n if (otherIndex < subevents.length && subevents[otherIndex][1].type === \"content\") {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === \"content\") {\n break;\n }\n if (subevents[otherIndex][1].type === \"chunkText\") {\n subevents[otherIndex][1]._isInFirstContentOfListItem = true;\n otherIndex++;\n }\n }\n }\n }\n if (event[0] === \"enter\") {\n if (event[1].contentType) {\n Object.assign(jumps, subcontent(events, index));\n index = jumps[index];\n more = true;\n }\n } else if (event[1]._container) {\n otherIndex = index;\n lineIndex = void 0;\n while (otherIndex--) {\n otherEvent = events[otherIndex];\n if (otherEvent[1].type === \"lineEnding\" || otherEvent[1].type === \"lineEndingBlank\") {\n if (otherEvent[0] === \"enter\") {\n if (lineIndex) {\n events[lineIndex][1].type = \"lineEndingBlank\";\n }\n otherEvent[1].type = \"lineEnding\";\n lineIndex = otherIndex;\n }\n } else {\n break;\n }\n }\n if (lineIndex) {\n event[1].end = Object.assign({}, events[lineIndex][1].start);\n parameters = events.slice(lineIndex, index);\n parameters.unshift(event);\n splice(events, lineIndex, index - lineIndex + 1, parameters);\n }\n }\n }\n return !more;\n}\nfunction subcontent(events, eventIndex) {\n const token = events[eventIndex][1];\n const context = events[eventIndex][2];\n let startPosition = eventIndex - 1;\n const startPositions = [];\n const tokenizer = token._tokenizer || context.parser[token.contentType](token.start);\n const childEvents = tokenizer.events;\n const jumps = [];\n const gaps = {};\n let stream;\n let previous2;\n let index = -1;\n let current = token;\n let adjust = 0;\n let start = 0;\n const breaks = [start];\n while (current) {\n while (events[++startPosition][1] !== current) {\n }\n startPositions.push(startPosition);\n if (!current._tokenizer) {\n stream = context.sliceStream(current);\n if (!current.next) {\n stream.push(null);\n }\n if (previous2) {\n tokenizer.defineSkip(current.start);\n }\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true;\n }\n tokenizer.write(stream);\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = void 0;\n }\n }\n previous2 = current;\n current = current.next;\n }\n current = token;\n while (++index < childEvents.length) {\n if (childEvents[index][0] === \"exit\" && childEvents[index - 1][0] === \"enter\" && childEvents[index][1].type === childEvents[index - 1][1].type && childEvents[index][1].start.line !== childEvents[index][1].end.line) {\n start = index + 1;\n breaks.push(start);\n current._tokenizer = void 0;\n current.previous = void 0;\n current = current.next;\n }\n }\n tokenizer.events = [];\n if (current) {\n current._tokenizer = void 0;\n current.previous = void 0;\n } else {\n breaks.pop();\n }\n index = breaks.length;\n while (index--) {\n const slice = childEvents.slice(breaks[index], breaks[index + 1]);\n const start2 = startPositions.pop();\n jumps.unshift([start2, start2 + slice.length - 1]);\n splice(events, start2, 2, slice);\n }\n index = -1;\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1];\n adjust += jumps[index][1] - jumps[index][0] - 1;\n }\n return gaps;\n}\nconst content = {\n tokenize: tokenizeContent,\n resolve: resolveContent\n};\nconst continuationConstruct = {\n tokenize: tokenizeContinuation,\n partial: true\n};\nfunction resolveContent(events) {\n subtokenize(events);\n return events;\n}\nfunction tokenizeContent(effects, ok) {\n let previous2;\n return chunkStart;\n function chunkStart(code2) {\n effects.enter(\"content\");\n previous2 = effects.enter(\"chunkContent\", {\n contentType: \"content\"\n });\n return chunkInside(code2);\n }\n function chunkInside(code2) {\n if (code2 === null) {\n return contentEnd(code2);\n }\n if (markdownLineEnding(code2)) {\n return effects.check(\n continuationConstruct,\n contentContinue,\n contentEnd\n )(code2);\n }\n effects.consume(code2);\n return chunkInside;\n }\n function contentEnd(code2) {\n effects.exit(\"chunkContent\");\n effects.exit(\"content\");\n return ok(code2);\n }\n function contentContinue(code2) {\n effects.consume(code2);\n effects.exit(\"chunkContent\");\n previous2.next = effects.enter(\"chunkContent\", {\n contentType: \"content\",\n previous: previous2\n });\n previous2 = previous2.next;\n return chunkInside;\n }\n}\nfunction tokenizeContinuation(effects, ok, nok) {\n const self2 = this;\n return startLookahead;\n function startLookahead(code2) {\n effects.exit(\"chunkContent\");\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, prefixed, \"linePrefix\");\n }\n function prefixed(code2) {\n if (code2 === null || markdownLineEnding(code2)) {\n return nok(code2);\n }\n const tail = self2.events[self2.events.length - 1];\n if (!self2.parser.constructs.disable.null.includes(\"codeIndented\") && tail && tail[1].type === \"linePrefix\" && tail[2].sliceSerialize(tail[1], true).length >= 4) {\n return ok(code2);\n }\n return effects.interrupt(self2.parser.constructs.flow, nok, ok)(code2);\n }\n}\nfunction factoryDestination(effects, ok, nok, type, literalType, literalMarkerType, rawType, stringType, max) {\n const limit = max || Number.POSITIVE_INFINITY;\n let balance = 0;\n return start;\n function start(code2) {\n if (code2 === 60) {\n effects.enter(type);\n effects.enter(literalType);\n effects.enter(literalMarkerType);\n effects.consume(code2);\n effects.exit(literalMarkerType);\n return enclosedBefore;\n }\n if (code2 === null || code2 === 32 || code2 === 41 || asciiControl(code2)) {\n return nok(code2);\n }\n effects.enter(type);\n effects.enter(rawType);\n effects.enter(stringType);\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return raw(code2);\n }\n function enclosedBefore(code2) {\n if (code2 === 62) {\n effects.enter(literalMarkerType);\n effects.consume(code2);\n effects.exit(literalMarkerType);\n effects.exit(literalType);\n effects.exit(type);\n return ok;\n }\n effects.enter(stringType);\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return enclosed(code2);\n }\n function enclosed(code2) {\n if (code2 === 62) {\n effects.exit(\"chunkString\");\n effects.exit(stringType);\n return enclosedBefore(code2);\n }\n if (code2 === null || code2 === 60 || markdownLineEnding(code2)) {\n return nok(code2);\n }\n effects.consume(code2);\n return code2 === 92 ? enclosedEscape : enclosed;\n }\n function enclosedEscape(code2) {\n if (code2 === 60 || code2 === 62 || code2 === 92) {\n effects.consume(code2);\n return enclosed;\n }\n return enclosed(code2);\n }\n function raw(code2) {\n if (!balance && (code2 === null || code2 === 41 || markdownLineEndingOrSpace(code2))) {\n effects.exit(\"chunkString\");\n effects.exit(stringType);\n effects.exit(rawType);\n effects.exit(type);\n return ok(code2);\n }\n if (balance < limit && code2 === 40) {\n effects.consume(code2);\n balance++;\n return raw;\n }\n if (code2 === 41) {\n effects.consume(code2);\n balance--;\n return raw;\n }\n if (code2 === null || code2 === 32 || code2 === 40 || asciiControl(code2)) {\n return nok(code2);\n }\n effects.consume(code2);\n return code2 === 92 ? rawEscape : raw;\n }\n function rawEscape(code2) {\n if (code2 === 40 || code2 === 41 || code2 === 92) {\n effects.consume(code2);\n return raw;\n }\n return raw(code2);\n }\n}\nfunction factoryLabel(effects, ok, nok, type, markerType, stringType) {\n const self2 = this;\n let size2 = 0;\n let seen;\n return start;\n function start(code2) {\n effects.enter(type);\n effects.enter(markerType);\n effects.consume(code2);\n effects.exit(markerType);\n effects.enter(stringType);\n return atBreak;\n }\n function atBreak(code2) {\n if (size2 > 999 || code2 === null || code2 === 91 || code2 === 93 && !seen || code2 === 94 && !size2 && \"_hiddenFootnoteSupport\" in self2.parser.constructs) {\n return nok(code2);\n }\n if (code2 === 93) {\n effects.exit(stringType);\n effects.enter(markerType);\n effects.consume(code2);\n effects.exit(markerType);\n effects.exit(type);\n return ok;\n }\n if (markdownLineEnding(code2)) {\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return atBreak;\n }\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return labelInside(code2);\n }\n function labelInside(code2) {\n if (code2 === null || code2 === 91 || code2 === 93 || markdownLineEnding(code2) || size2++ > 999) {\n effects.exit(\"chunkString\");\n return atBreak(code2);\n }\n effects.consume(code2);\n if (!seen)\n seen = !markdownSpace(code2);\n return code2 === 92 ? labelEscape : labelInside;\n }\n function labelEscape(code2) {\n if (code2 === 91 || code2 === 92 || code2 === 93) {\n effects.consume(code2);\n size2++;\n return labelInside;\n }\n return labelInside(code2);\n }\n}\nfunction factoryTitle(effects, ok, nok, type, markerType, stringType) {\n let marker;\n return start;\n function start(code2) {\n if (code2 === 34 || code2 === 39 || code2 === 40) {\n effects.enter(type);\n effects.enter(markerType);\n effects.consume(code2);\n effects.exit(markerType);\n marker = code2 === 40 ? 41 : code2;\n return begin;\n }\n return nok(code2);\n }\n function begin(code2) {\n if (code2 === marker) {\n effects.enter(markerType);\n effects.consume(code2);\n effects.exit(markerType);\n effects.exit(type);\n return ok;\n }\n effects.enter(stringType);\n return atBreak(code2);\n }\n function atBreak(code2) {\n if (code2 === marker) {\n effects.exit(stringType);\n return begin(marker);\n }\n if (code2 === null) {\n return nok(code2);\n }\n if (markdownLineEnding(code2)) {\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, atBreak, \"linePrefix\");\n }\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return inside(code2);\n }\n function inside(code2) {\n if (code2 === marker || code2 === null || markdownLineEnding(code2)) {\n effects.exit(\"chunkString\");\n return atBreak(code2);\n }\n effects.consume(code2);\n return code2 === 92 ? escape : inside;\n }\n function escape(code2) {\n if (code2 === marker || code2 === 92) {\n effects.consume(code2);\n return inside;\n }\n return inside(code2);\n }\n}\nfunction factoryWhitespace(effects, ok) {\n let seen;\n return start;\n function start(code2) {\n if (markdownLineEnding(code2)) {\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n seen = true;\n return start;\n }\n if (markdownSpace(code2)) {\n return factorySpace(\n effects,\n start,\n seen ? \"linePrefix\" : \"lineSuffix\"\n )(code2);\n }\n return ok(code2);\n }\n}\nconst definition = {\n name: \"definition\",\n tokenize: tokenizeDefinition\n};\nconst titleBefore = {\n tokenize: tokenizeTitleBefore,\n partial: true\n};\nfunction tokenizeDefinition(effects, ok, nok) {\n const self2 = this;\n let identifier;\n return start;\n function start(code2) {\n effects.enter(\"definition\");\n return before(code2);\n }\n function before(code2) {\n return factoryLabel.call(\n self2,\n effects,\n labelAfter,\n nok,\n \"definitionLabel\",\n \"definitionLabelMarker\",\n \"definitionLabelString\"\n )(code2);\n }\n function labelAfter(code2) {\n identifier = normalizeIdentifier(\n self2.sliceSerialize(self2.events[self2.events.length - 1][1]).slice(1, -1)\n );\n if (code2 === 58) {\n effects.enter(\"definitionMarker\");\n effects.consume(code2);\n effects.exit(\"definitionMarker\");\n return markerAfter;\n }\n return nok(code2);\n }\n function markerAfter(code2) {\n return markdownLineEndingOrSpace(code2) ? factoryWhitespace(effects, destinationBefore)(code2) : destinationBefore(code2);\n }\n function destinationBefore(code2) {\n return factoryDestination(\n effects,\n destinationAfter,\n nok,\n \"definitionDestination\",\n \"definitionDestinationLiteral\",\n \"definitionDestinationLiteralMarker\",\n \"definitionDestinationRaw\",\n \"definitionDestinationString\"\n )(code2);\n }\n function destinationAfter(code2) {\n return effects.attempt(titleBefore, after, after)(code2);\n }\n function after(code2) {\n return markdownSpace(code2) ? factorySpace(effects, afterWhitespace, \"whitespace\")(code2) : afterWhitespace(code2);\n }\n function afterWhitespace(code2) {\n if (code2 === null || markdownLineEnding(code2)) {\n effects.exit(\"definition\");\n self2.parser.defined.push(identifier);\n return ok(code2);\n }\n return nok(code2);\n }\n}\nfunction tokenizeTitleBefore(effects, ok, nok) {\n return titleBefore2;\n function titleBefore2(code2) {\n return markdownLineEndingOrSpace(code2) ? factoryWhitespace(effects, beforeMarker)(code2) : nok(code2);\n }\n function beforeMarker(code2) {\n return factoryTitle(\n effects,\n titleAfter,\n nok,\n \"definitionTitle\",\n \"definitionTitleMarker\",\n \"definitionTitleString\"\n )(code2);\n }\n function titleAfter(code2) {\n return markdownSpace(code2) ? factorySpace(effects, titleAfterOptionalWhitespace, \"whitespace\")(code2) : titleAfterOptionalWhitespace(code2);\n }\n function titleAfterOptionalWhitespace(code2) {\n return code2 === null || markdownLineEnding(code2) ? ok(code2) : nok(code2);\n }\n}\nconst hardBreakEscape = {\n name: \"hardBreakEscape\",\n tokenize: tokenizeHardBreakEscape\n};\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start;\n function start(code2) {\n effects.enter(\"hardBreakEscape\");\n effects.consume(code2);\n return after;\n }\n function after(code2) {\n if (markdownLineEnding(code2)) {\n effects.exit(\"hardBreakEscape\");\n return ok(code2);\n }\n return nok(code2);\n }\n}\nconst headingAtx = {\n name: \"headingAtx\",\n tokenize: tokenizeHeadingAtx,\n resolve: resolveHeadingAtx\n};\nfunction resolveHeadingAtx(events, context) {\n let contentEnd = events.length - 2;\n let contentStart = 3;\n let content2;\n let text2;\n if (events[contentStart][1].type === \"whitespace\") {\n contentStart += 2;\n }\n if (contentEnd - 2 > contentStart && events[contentEnd][1].type === \"whitespace\") {\n contentEnd -= 2;\n }\n if (events[contentEnd][1].type === \"atxHeadingSequence\" && (contentStart === contentEnd - 1 || contentEnd - 4 > contentStart && events[contentEnd - 2][1].type === \"whitespace\")) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4;\n }\n if (contentEnd > contentStart) {\n content2 = {\n type: \"atxHeadingText\",\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n };\n text2 = {\n type: \"chunkText\",\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n contentType: \"text\"\n };\n splice(events, contentStart, contentEnd - contentStart + 1, [\n [\"enter\", content2, context],\n [\"enter\", text2, context],\n [\"exit\", text2, context],\n [\"exit\", content2, context]\n ]);\n }\n return events;\n}\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n let size2 = 0;\n return start;\n function start(code2) {\n effects.enter(\"atxHeading\");\n return before(code2);\n }\n function before(code2) {\n effects.enter(\"atxHeadingSequence\");\n return sequenceOpen(code2);\n }\n function sequenceOpen(code2) {\n if (code2 === 35 && size2++ < 6) {\n effects.consume(code2);\n return sequenceOpen;\n }\n if (code2 === null || markdownLineEndingOrSpace(code2)) {\n effects.exit(\"atxHeadingSequence\");\n return atBreak(code2);\n }\n return nok(code2);\n }\n function atBreak(code2) {\n if (code2 === 35) {\n effects.enter(\"atxHeadingSequence\");\n return sequenceFurther(code2);\n }\n if (code2 === null || markdownLineEnding(code2)) {\n effects.exit(\"atxHeading\");\n return ok(code2);\n }\n if (markdownSpace(code2)) {\n return factorySpace(effects, atBreak, \"whitespace\")(code2);\n }\n effects.enter(\"atxHeadingText\");\n return data(code2);\n }\n function sequenceFurther(code2) {\n if (code2 === 35) {\n effects.consume(code2);\n return sequenceFurther;\n }\n effects.exit(\"atxHeadingSequence\");\n return atBreak(code2);\n }\n function data(code2) {\n if (code2 === null || code2 === 35 || markdownLineEndingOrSpace(code2)) {\n effects.exit(\"atxHeadingText\");\n return atBreak(code2);\n }\n effects.consume(code2);\n return data;\n }\n}\nconst htmlBlockNames = [\n \"address\",\n \"article\",\n \"aside\",\n \"base\",\n \"basefont\",\n \"blockquote\",\n \"body\",\n \"caption\",\n \"center\",\n \"col\",\n \"colgroup\",\n \"dd\",\n \"details\",\n \"dialog\",\n \"dir\",\n \"div\",\n \"dl\",\n \"dt\",\n \"fieldset\",\n \"figcaption\",\n \"figure\",\n \"footer\",\n \"form\",\n \"frame\",\n \"frameset\",\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\",\n \"head\",\n \"header\",\n \"hr\",\n \"html\",\n \"iframe\",\n \"legend\",\n \"li\",\n \"link\",\n \"main\",\n \"menu\",\n \"menuitem\",\n \"nav\",\n \"noframes\",\n \"ol\",\n \"optgroup\",\n \"option\",\n \"p\",\n \"param\",\n \"search\",\n \"section\",\n \"summary\",\n \"table\",\n \"tbody\",\n \"td\",\n \"tfoot\",\n \"th\",\n \"thead\",\n \"title\",\n \"tr\",\n \"track\",\n \"ul\"\n];\nconst htmlRawNames = [\"pre\", \"script\", \"style\", \"textarea\"];\nconst htmlFlow = {\n name: \"htmlFlow\",\n tokenize: tokenizeHtmlFlow,\n resolveTo: resolveToHtmlFlow,\n concrete: true\n};\nconst blankLineBefore = {\n tokenize: tokenizeBlankLineBefore,\n partial: true\n};\nconst nonLazyContinuationStart = {\n tokenize: tokenizeNonLazyContinuationStart,\n partial: true\n};\nfunction resolveToHtmlFlow(events) {\n let index = events.length;\n while (index--) {\n if (events[index][0] === \"enter\" && events[index][1].type === \"htmlFlow\") {\n break;\n }\n }\n if (index > 1 && events[index - 2][1].type === \"linePrefix\") {\n events[index][1].start = events[index - 2][1].start;\n events[index + 1][1].start = events[index - 2][1].start;\n events.splice(index - 2, 2);\n }\n return events;\n}\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n const self2 = this;\n let marker;\n let closingTag;\n let buffer;\n let index;\n let markerB;\n return start;\n function start(code2) {\n return before(code2);\n }\n function before(code2) {\n effects.enter(\"htmlFlow\");\n effects.enter(\"htmlFlowData\");\n effects.consume(code2);\n return open;\n }\n function open(code2) {\n if (code2 === 33) {\n effects.consume(code2);\n return declarationOpen;\n }\n if (code2 === 47) {\n effects.consume(code2);\n closingTag = true;\n return tagCloseStart;\n }\n if (code2 === 63) {\n effects.consume(code2);\n marker = 3;\n return self2.interrupt ? ok : continuationDeclarationInside;\n }\n if (asciiAlpha(code2)) {\n effects.consume(code2);\n buffer = String.fromCharCode(code2);\n return tagName;\n }\n return nok(code2);\n }\n function declarationOpen(code2) {\n if (code2 === 45) {\n effects.consume(code2);\n marker = 2;\n return commentOpenInside;\n }\n if (code2 === 91) {\n effects.consume(code2);\n marker = 5;\n index = 0;\n return cdataOpenInside;\n }\n if (asciiAlpha(code2)) {\n effects.consume(code2);\n marker = 4;\n return self2.interrupt ? ok : continuationDeclarationInside;\n }\n return nok(code2);\n }\n function commentOpenInside(code2) {\n if (code2 === 45) {\n effects.consume(code2);\n return self2.interrupt ? ok : continuationDeclarationInside;\n }\n return nok(code2);\n }\n function cdataOpenInside(code2) {\n const value = \"CDATA[\";\n if (code2 === value.charCodeAt(index++)) {\n effects.consume(code2);\n if (index === value.length) {\n return self2.interrupt ? ok : continuation;\n }\n return cdataOpenInside;\n }\n return nok(code2);\n }\n function tagCloseStart(code2) {\n if (asciiAlpha(code2)) {\n effects.consume(code2);\n buffer = String.fromCharCode(code2);\n return tagName;\n }\n return nok(code2);\n }\n function tagName(code2) {\n if (code2 === null || code2 === 47 || code2 === 62 || markdownLineEndingOrSpace(code2)) {\n const slash = code2 === 47;\n const name = buffer.toLowerCase();\n if (!slash && !closingTag && htmlRawNames.includes(name)) {\n marker = 1;\n return self2.interrupt ? ok(code2) : continuation(code2);\n }\n if (htmlBlockNames.includes(buffer.toLowerCase())) {\n marker = 6;\n if (slash) {\n effects.consume(code2);\n return basicSelfClosing;\n }\n return self2.interrupt ? ok(code2) : continuation(code2);\n }\n marker = 7;\n return self2.interrupt && !self2.parser.lazy[self2.now().line] ? nok(code2) : closingTag ? completeClosingTagAfter(code2) : completeAttributeNameBefore(code2);\n }\n if (code2 === 45 || asciiAlphanumeric(code2)) {\n effects.consume(code2);\n buffer += String.fromCharCode(code2);\n return tagName;\n }\n return nok(code2);\n }\n function basicSelfClosing(code2) {\n if (code2 === 62) {\n effects.consume(code2);\n return self2.interrupt ? ok : continuation;\n }\n return nok(code2);\n }\n function completeClosingTagAfter(code2) {\n if (markdownSpace(code2)) {\n effects.consume(code2);\n return completeClosingTagAfter;\n }\n return completeEnd(code2);\n }\n function completeAttributeNameBefore(code2) {\n if (code2 === 47) {\n effects.consume(code2);\n return completeEnd;\n }\n if (code2 === 58 || code2 === 95 || asciiAlpha(code2)) {\n effects.consume(code2);\n return completeAttributeName;\n }\n if (markdownSpace(code2)) {\n effects.consume(code2);\n return completeAttributeNameBefore;\n }\n return completeEnd(code2);\n }\n function completeAttributeName(code2) {\n if (code2 === 45 || code2 === 46 || code2 === 58 || code2 === 95 || asciiAlphanumeric(code2)) {\n effects.consume(code2);\n return completeAttributeName;\n }\n return completeAttributeNameAfter(code2);\n }\n function completeAttributeNameAfter(code2) {\n if (code2 === 61) {\n effects.consume(code2);\n return completeAttributeValueBefore;\n }\n if (markdownSpace(code2)) {\n effects.consume(code2);\n return completeAttributeNameAfter;\n }\n return completeAttributeNameBefore(code2);\n }\n function completeAttributeValueBefore(code2) {\n if (code2 === null || code2 === 60 || code2 === 61 || code2 === 62 || code2 === 96) {\n return nok(code2);\n }\n if (code2 === 34 || code2 === 39) {\n effects.consume(code2);\n markerB = code2;\n return completeAttributeValueQuoted;\n }\n if (markdownSpace(code2)) {\n effects.consume(code2);\n return completeAttributeValueBefore;\n }\n return completeAttributeValueUnquoted(code2);\n }\n function completeAttributeValueQuoted(code2) {\n if (code2 === markerB) {\n effects.consume(code2);\n markerB = null;\n return completeAttributeValueQuotedAfter;\n }\n if (code2 === null || markdownLineEnding(code2)) {\n return nok(code2);\n }\n effects.consume(code2);\n return completeAttributeValueQuoted;\n }\n function completeAttributeValueUnquoted(code2) {\n if (code2 === null || code2 === 34 || code2 === 39 || code2 === 47 || code2 === 60 || code2 === 61 || code2 === 62 || code2 === 96 || markdownLineEndingOrSpace(code2)) {\n return completeAttributeNameAfter(code2);\n }\n effects.consume(code2);\n return completeAttributeValueUnquoted;\n }\n function completeAttributeValueQuotedAfter(code2) {\n if (code2 === 47 || code2 === 62 || markdownSpace(code2)) {\n return completeAttributeNameBefore(code2);\n }\n return nok(code2);\n }\n function completeEnd(code2) {\n if (code2 === 62) {\n effects.consume(code2);\n return completeAfter;\n }\n return nok(code2);\n }\n function completeAfter(code2) {\n if (code2 === null || markdownLineEnding(code2)) {\n return continuation(code2);\n }\n if (markdownSpace(code2)) {\n effects.consume(code2);\n return completeAfter;\n }\n return nok(code2);\n }\n function continuation(code2) {\n if (code2 === 45 && marker === 2) {\n effects.consume(code2);\n return continuationCommentInside;\n }\n if (code2 === 60 && marker === 1) {\n effects.consume(code2);\n return continuationRawTagOpen;\n }\n if (code2 === 62 && marker === 4) {\n effects.consume(code2);\n return continuationClose;\n }\n if (code2 === 63 && marker === 3) {\n effects.consume(code2);\n return continuationDeclarationInside;\n }\n if (code2 === 93 && marker === 5) {\n effects.consume(code2);\n return continuationCdataInside;\n }\n if (markdownLineEnding(code2) && (marker === 6 || marker === 7)) {\n effects.exit(\"htmlFlowData\");\n return effects.check(\n blankLineBefore,\n continuationAfter,\n continuationStart\n )(code2);\n }\n if (code2 === null || markdownLineEnding(code2)) {\n effects.exit(\"htmlFlowData\");\n return continuationStart(code2);\n }\n effects.consume(code2);\n return continuation;\n }\n function continuationStart(code2) {\n return effects.check(\n nonLazyContinuationStart,\n continuationStartNonLazy,\n continuationAfter\n )(code2);\n }\n function continuationStartNonLazy(code2) {\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return continuationBefore;\n }\n function continuationBefore(code2) {\n if (code2 === null || markdownLineEnding(code2)) {\n return continuationStart(code2);\n }\n effects.enter(\"htmlFlowData\");\n return continuation(code2);\n }\n function continuationCommentInside(code2) {\n if (code2 === 45) {\n effects.consume(code2);\n return continuationDeclarationInside;\n }\n return continuation(code2);\n }\n function continuationRawTagOpen(code2) {\n if (code2 === 47) {\n effects.consume(code2);\n buffer = \"\";\n return continuationRawEndTag;\n }\n return continuation(code2);\n }\n function continuationRawEndTag(code2) {\n if (code2 === 62) {\n const name = buffer.toLowerCase();\n if (htmlRawNames.includes(name)) {\n effects.consume(code2);\n return continuationClose;\n }\n return continuation(code2);\n }\n if (asciiAlpha(code2) && buffer.length < 8) {\n effects.consume(code2);\n buffer += String.fromCharCode(code2);\n return continuationRawEndTag;\n }\n return continuation(code2);\n }\n function continuationCdataInside(code2) {\n if (code2 === 93) {\n effects.consume(code2);\n return continuationDeclarationInside;\n }\n return continuation(code2);\n }\n function continuationDeclarationInside(code2) {\n if (code2 === 62) {\n effects.consume(code2);\n return continuationClose;\n }\n if (code2 === 45 && marker === 2) {\n effects.consume(code2);\n return continuationDeclarationInside;\n }\n return continuation(code2);\n }\n function continuationClose(code2) {\n if (code2 === null || markdownLineEnding(code2)) {\n effects.exit(\"htmlFlowData\");\n return continuationAfter(code2);\n }\n effects.consume(code2);\n return continuationClose;\n }\n function continuationAfter(code2) {\n effects.exit(\"htmlFlow\");\n return ok(code2);\n }\n}\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self2 = this;\n return start;\n function start(code2) {\n if (markdownLineEnding(code2)) {\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return after;\n }\n return nok(code2);\n }\n function after(code2) {\n return self2.parser.lazy[self2.now().line] ? nok(code2) : ok(code2);\n }\n}\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start;\n function start(code2) {\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return effects.attempt(blankLine, ok, nok);\n }\n}\nconst htmlText = {\n name: \"htmlText\",\n tokenize: tokenizeHtmlText\n};\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self2 = this;\n let marker;\n let index;\n let returnState;\n return start;\n function start(code2) {\n effects.enter(\"htmlText\");\n effects.enter(\"htmlTextData\");\n effects.consume(code2);\n return open;\n }\n function open(code2) {\n if (code2 === 33) {\n effects.consume(code2);\n return declarationOpen;\n }\n if (code2 === 47) {\n effects.consume(code2);\n return tagCloseStart;\n }\n if (code2 === 63) {\n effects.consume(code2);\n return instruction;\n }\n if (asciiAlpha(code2)) {\n effects.consume(code2);\n return tagOpen;\n }\n return nok(code2);\n }\n function declarationOpen(code2) {\n if (code2 === 45) {\n effects.consume(code2);\n return commentOpenInside;\n }\n if (code2 === 91) {\n effects.consume(code2);\n index = 0;\n return cdataOpenInside;\n }\n if (asciiAlpha(code2)) {\n effects.consume(code2);\n return declaration;\n }\n return nok(code2);\n }\n function commentOpenInside(code2) {\n if (code2 === 45) {\n effects.consume(code2);\n return commentEnd;\n }\n return nok(code2);\n }\n function comment(code2) {\n if (code2 === null) {\n return nok(code2);\n }\n if (code2 === 45) {\n effects.consume(code2);\n return commentClose;\n }\n if (markdownLineEnding(code2)) {\n returnState = comment;\n return lineEndingBefore(code2);\n }\n effects.consume(code2);\n return comment;\n }\n function commentClose(code2) {\n if (code2 === 45) {\n effects.consume(code2);\n return commentEnd;\n }\n return comment(code2);\n }\n function commentEnd(code2) {\n return code2 === 62 ? end(code2) : code2 === 45 ? commentClose(code2) : comment(code2);\n }\n function cdataOpenInside(code2) {\n const value = \"CDATA[\";\n if (code2 === value.charCodeAt(index++)) {\n effects.consume(code2);\n return index === value.length ? cdata : cdataOpenInside;\n }\n return nok(code2);\n }\n function cdata(code2) {\n if (code2 === null) {\n return nok(code2);\n }\n if (code2 === 93) {\n effects.consume(code2);\n return cdataClose;\n }\n if (markdownLineEnding(code2)) {\n returnState = cdata;\n return lineEndingBefore(code2);\n }\n effects.consume(code2);\n return cdata;\n }\n function cdataClose(code2) {\n if (code2 === 93) {\n effects.consume(code2);\n return cdataEnd;\n }\n return cdata(code2);\n }\n function cdataEnd(code2) {\n if (code2 === 62) {\n return end(code2);\n }\n if (code2 === 93) {\n effects.consume(code2);\n return cdataEnd;\n }\n return cdata(code2);\n }\n function declaration(code2) {\n if (code2 === null || code2 === 62) {\n return end(code2);\n }\n if (markdownLineEnding(code2)) {\n returnState = declaration;\n return lineEndingBefore(code2);\n }\n effects.consume(code2);\n return declaration;\n }\n function instruction(code2) {\n if (code2 === null) {\n return nok(code2);\n }\n if (code2 === 63) {\n effects.consume(code2);\n return instructionClose;\n }\n if (markdownLineEnding(code2)) {\n returnState = instruction;\n return lineEndingBefore(code2);\n }\n effects.consume(code2);\n return instruction;\n }\n function instructionClose(code2) {\n return code2 === 62 ? end(code2) : instruction(code2);\n }\n function tagCloseStart(code2) {\n if (asciiAlpha(code2)) {\n effects.consume(code2);\n return tagClose;\n }\n return nok(code2);\n }\n function tagClose(code2) {\n if (code2 === 45 || asciiAlphanumeric(code2)) {\n effects.consume(code2);\n return tagClose;\n }\n return tagCloseBetween(code2);\n }\n function tagCloseBetween(code2) {\n if (markdownLineEnding(code2)) {\n returnState = tagCloseBetween;\n return lineEndingBefore(code2);\n }\n if (markdownSpace(code2)) {\n effects.consume(code2);\n return tagCloseBetween;\n }\n return end(code2);\n }\n function tagOpen(code2) {\n if (code2 === 45 || asciiAlphanumeric(code2)) {\n effects.consume(code2);\n return tagOpen;\n }\n if (code2 === 47 || code2 === 62 || markdownLineEndingOrSpace(code2)) {\n return tagOpenBetween(code2);\n }\n return nok(code2);\n }\n function tagOpenBetween(code2) {\n if (code2 === 47) {\n effects.consume(code2);\n return end;\n }\n if (code2 === 58 || code2 === 95 || asciiAlpha(code2)) {\n effects.consume(code2);\n return tagOpenAttributeName;\n }\n if (markdownLineEnding(code2)) {\n returnState = tagOpenBetween;\n return lineEndingBefore(code2);\n }\n if (markdownSpace(code2)) {\n effects.consume(code2);\n return tagOpenBetween;\n }\n return end(code2);\n }\n function tagOpenAttributeName(code2) {\n if (code2 === 45 || code2 === 46 || code2 === 58 || code2 === 95 || asciiAlphanumeric(code2)) {\n effects.consume(code2);\n return tagOpenAttributeName;\n }\n return tagOpenAttributeNameAfter(code2);\n }\n function tagOpenAttributeNameAfter(code2) {\n if (code2 === 61) {\n effects.consume(code2);\n return tagOpenAttributeValueBefore;\n }\n if (markdownLineEnding(code2)) {\n returnState = tagOpenAttributeNameAfter;\n return lineEndingBefore(code2);\n }\n if (markdownSpace(code2)) {\n effects.consume(code2);\n return tagOpenAttributeNameAfter;\n }\n return tagOpenBetween(code2);\n }\n function tagOpenAttributeValueBefore(code2) {\n if (code2 === null || code2 === 60 || code2 === 61 || code2 === 62 || code2 === 96) {\n return nok(code2);\n }\n if (code2 === 34 || code2 === 39) {\n effects.consume(code2);\n marker = code2;\n return tagOpenAttributeValueQuoted;\n }\n if (markdownLineEnding(code2)) {\n returnState = tagOpenAttributeValueBefore;\n return lineEndingBefore(code2);\n }\n if (markdownSpace(code2)) {\n effects.consume(code2);\n return tagOpenAttributeValueBefore;\n }\n effects.consume(code2);\n return tagOpenAttributeValueUnquoted;\n }\n function tagOpenAttributeValueQuoted(code2) {\n if (code2 === marker) {\n effects.consume(code2);\n marker = void 0;\n return tagOpenAttributeValueQuotedAfter;\n }\n if (code2 === null) {\n return nok(code2);\n }\n if (markdownLineEnding(code2)) {\n returnState = tagOpenAttributeValueQuoted;\n return lineEndingBefore(code2);\n }\n effects.consume(code2);\n return tagOpenAttributeValueQuoted;\n }\n function tagOpenAttributeValueUnquoted(code2) {\n if (code2 === null || code2 === 34 || code2 === 39 || code2 === 60 || code2 === 61 || code2 === 96) {\n return nok(code2);\n }\n if (code2 === 47 || code2 === 62 || markdownLineEndingOrSpace(code2)) {\n return tagOpenBetween(code2);\n }\n effects.consume(code2);\n return tagOpenAttributeValueUnquoted;\n }\n function tagOpenAttributeValueQuotedAfter(code2) {\n if (code2 === 47 || code2 === 62 || markdownLineEndingOrSpace(code2)) {\n return tagOpenBetween(code2);\n }\n return nok(code2);\n }\n function end(code2) {\n if (code2 === 62) {\n effects.consume(code2);\n effects.exit(\"htmlTextData\");\n effects.exit(\"htmlText\");\n return ok;\n }\n return nok(code2);\n }\n function lineEndingBefore(code2) {\n effects.exit(\"htmlTextData\");\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return lineEndingAfter;\n }\n function lineEndingAfter(code2) {\n return markdownSpace(code2) ? factorySpace(\n effects,\n lineEndingAfterPrefix,\n \"linePrefix\",\n self2.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4\n )(code2) : lineEndingAfterPrefix(code2);\n }\n function lineEndingAfterPrefix(code2) {\n effects.enter(\"htmlTextData\");\n return returnState(code2);\n }\n}\nconst labelEnd = {\n name: \"labelEnd\",\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n};\nconst resourceConstruct = {\n tokenize: tokenizeResource\n};\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n};\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n};\nfunction resolveAllLabelEnd(events) {\n let index = -1;\n while (++index < events.length) {\n const token = events[index][1];\n if (token.type === \"labelImage\" || token.type === \"labelLink\" || token.type === \"labelEnd\") {\n events.splice(index + 1, token.type === \"labelImage\" ? 4 : 2);\n token.type = \"data\";\n index++;\n }\n }\n return events;\n}\nfunction resolveToLabelEnd(events, context) {\n let index = events.length;\n let offset = 0;\n let token;\n let open;\n let close;\n let media;\n while (index--) {\n token = events[index][1];\n if (open) {\n if (token.type === \"link\" || token.type === \"labelLink\" && token._inactive) {\n break;\n }\n if (events[index][0] === \"enter\" && token.type === \"labelLink\") {\n token._inactive = true;\n }\n } else if (close) {\n if (events[index][0] === \"enter\" && (token.type === \"labelImage\" || token.type === \"labelLink\") && !token._balanced) {\n open = index;\n if (token.type !== \"labelLink\") {\n offset = 2;\n break;\n }\n }\n } else if (token.type === \"labelEnd\") {\n close = index;\n }\n }\n const group = {\n type: events[open][1].type === \"labelLink\" ? \"link\" : \"image\",\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n };\n const label = {\n type: \"label\",\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[close][1].end)\n };\n const text2 = {\n type: \"labelText\",\n start: Object.assign({}, events[open + offset + 2][1].end),\n end: Object.assign({}, events[close - 2][1].start)\n };\n media = [\n [\"enter\", group, context],\n [\"enter\", label, context]\n ];\n media = push(media, events.slice(open + 1, open + offset + 3));\n media = push(media, [[\"enter\", text2, context]]);\n media = push(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n );\n media = push(media, [\n [\"exit\", text2, context],\n events[close - 2],\n events[close - 1],\n [\"exit\", label, context]\n ]);\n media = push(media, events.slice(close + 1));\n media = push(media, [[\"exit\", group, context]]);\n splice(events, open, events.length, media);\n return events;\n}\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self2 = this;\n let index = self2.events.length;\n let labelStart;\n let defined;\n while (index--) {\n if ((self2.events[index][1].type === \"labelImage\" || self2.events[index][1].type === \"labelLink\") && !self2.events[index][1]._balanced) {\n labelStart = self2.events[index][1];\n break;\n }\n }\n return start;\n function start(code2) {\n if (!labelStart) {\n return nok(code2);\n }\n if (labelStart._inactive) {\n return labelEndNok(code2);\n }\n defined = self2.parser.defined.includes(\n normalizeIdentifier(\n self2.sliceSerialize({\n start: labelStart.end,\n end: self2.now()\n })\n )\n );\n effects.enter(\"labelEnd\");\n effects.enter(\"labelMarker\");\n effects.consume(code2);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelEnd\");\n return after;\n }\n function after(code2) {\n if (code2 === 40) {\n return effects.attempt(\n resourceConstruct,\n labelEndOk,\n defined ? labelEndOk : labelEndNok\n )(code2);\n }\n if (code2 === 91) {\n return effects.attempt(\n referenceFullConstruct,\n labelEndOk,\n defined ? referenceNotFull : labelEndNok\n )(code2);\n }\n return defined ? labelEndOk(code2) : labelEndNok(code2);\n }\n function referenceNotFull(code2) {\n return effects.attempt(\n referenceCollapsedConstruct,\n labelEndOk,\n labelEndNok\n )(code2);\n }\n function labelEndOk(code2) {\n return ok(code2);\n }\n function labelEndNok(code2) {\n labelStart._balanced = true;\n return nok(code2);\n }\n}\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart;\n function resourceStart(code2) {\n effects.enter(\"resource\");\n effects.enter(\"resourceMarker\");\n effects.consume(code2);\n effects.exit(\"resourceMarker\");\n return resourceBefore;\n }\n function resourceBefore(code2) {\n return markdownLineEndingOrSpace(code2) ? factoryWhitespace(effects, resourceOpen)(code2) : resourceOpen(code2);\n }\n function resourceOpen(code2) {\n if (code2 === 41) {\n return resourceEnd(code2);\n }\n return factoryDestination(\n effects,\n resourceDestinationAfter,\n resourceDestinationMissing,\n \"resourceDestination\",\n \"resourceDestinationLiteral\",\n \"resourceDestinationLiteralMarker\",\n \"resourceDestinationRaw\",\n \"resourceDestinationString\",\n 32\n )(code2);\n }\n function resourceDestinationAfter(code2) {\n return markdownLineEndingOrSpace(code2) ? factoryWhitespace(effects, resourceBetween)(code2) : resourceEnd(code2);\n }\n function resourceDestinationMissing(code2) {\n return nok(code2);\n }\n function resourceBetween(code2) {\n if (code2 === 34 || code2 === 39 || code2 === 40) {\n return factoryTitle(\n effects,\n resourceTitleAfter,\n nok,\n \"resourceTitle\",\n \"resourceTitleMarker\",\n \"resourceTitleString\"\n )(code2);\n }\n return resourceEnd(code2);\n }\n function resourceTitleAfter(code2) {\n return markdownLineEndingOrSpace(code2) ? factoryWhitespace(effects, resourceEnd)(code2) : resourceEnd(code2);\n }\n function resourceEnd(code2) {\n if (code2 === 41) {\n effects.enter(\"resourceMarker\");\n effects.consume(code2);\n effects.exit(\"resourceMarker\");\n effects.exit(\"resource\");\n return ok;\n }\n return nok(code2);\n }\n}\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self2 = this;\n return referenceFull;\n function referenceFull(code2) {\n return factoryLabel.call(\n self2,\n effects,\n referenceFullAfter,\n referenceFullMissing,\n \"reference\",\n \"referenceMarker\",\n \"referenceString\"\n )(code2);\n }\n function referenceFullAfter(code2) {\n return self2.parser.defined.includes(\n normalizeIdentifier(\n self2.sliceSerialize(self2.events[self2.events.length - 1][1]).slice(1, -1)\n )\n ) ? ok(code2) : nok(code2);\n }\n function referenceFullMissing(code2) {\n return nok(code2);\n }\n}\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart;\n function referenceCollapsedStart(code2) {\n effects.enter(\"reference\");\n effects.enter(\"referenceMarker\");\n effects.consume(code2);\n effects.exit(\"referenceMarker\");\n return referenceCollapsedOpen;\n }\n function referenceCollapsedOpen(code2) {\n if (code2 === 93) {\n effects.enter(\"referenceMarker\");\n effects.consume(code2);\n effects.exit(\"referenceMarker\");\n effects.exit(\"reference\");\n return ok;\n }\n return nok(code2);\n }\n}\nconst labelStartImage = {\n name: \"labelStartImage\",\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n};\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self2 = this;\n return start;\n function start(code2) {\n effects.enter(\"labelImage\");\n effects.enter(\"labelImageMarker\");\n effects.consume(code2);\n effects.exit(\"labelImageMarker\");\n return open;\n }\n function open(code2) {\n if (code2 === 91) {\n effects.enter(\"labelMarker\");\n effects.consume(code2);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelImage\");\n return after;\n }\n return nok(code2);\n }\n function after(code2) {\n return code2 === 94 && \"_hiddenFootnoteSupport\" in self2.parser.constructs ? nok(code2) : ok(code2);\n }\n}\nconst labelStartLink = {\n name: \"labelStartLink\",\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n};\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self2 = this;\n return start;\n function start(code2) {\n effects.enter(\"labelLink\");\n effects.enter(\"labelMarker\");\n effects.consume(code2);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelLink\");\n return after;\n }\n function after(code2) {\n return code2 === 94 && \"_hiddenFootnoteSupport\" in self2.parser.constructs ? nok(code2) : ok(code2);\n }\n}\nconst lineEnding = {\n name: \"lineEnding\",\n tokenize: tokenizeLineEnding\n};\nfunction tokenizeLineEnding(effects, ok) {\n return start;\n function start(code2) {\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, ok, \"linePrefix\");\n }\n}\nconst thematicBreak = {\n name: \"thematicBreak\",\n tokenize: tokenizeThematicBreak\n};\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size2 = 0;\n let marker;\n return start;\n function start(code2) {\n effects.enter(\"thematicBreak\");\n return before(code2);\n }\n function before(code2) {\n marker = code2;\n return atBreak(code2);\n }\n function atBreak(code2) {\n if (code2 === marker) {\n effects.enter(\"thematicBreakSequence\");\n return sequence(code2);\n }\n if (size2 >= 3 && (code2 === null || markdownLineEnding(code2))) {\n effects.exit(\"thematicBreak\");\n return ok(code2);\n }\n return nok(code2);\n }\n function sequence(code2) {\n if (code2 === marker) {\n effects.consume(code2);\n size2++;\n return sequence;\n }\n effects.exit(\"thematicBreakSequence\");\n return markdownSpace(code2) ? factorySpace(effects, atBreak, \"whitespace\")(code2) : atBreak(code2);\n }\n}\nconst list = {\n name: \"list\",\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n};\nconst listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n};\nconst indentConstruct = {\n tokenize: tokenizeIndent$1,\n partial: true\n};\nfunction tokenizeListStart(effects, ok, nok) {\n const self2 = this;\n const tail = self2.events[self2.events.length - 1];\n let initialSize = tail && tail[1].type === \"linePrefix\" ? tail[2].sliceSerialize(tail[1], true).length : 0;\n let size2 = 0;\n return start;\n function start(code2) {\n const kind = self2.containerState.type || (code2 === 42 || code2 === 43 || code2 === 45 ? \"listUnordered\" : \"listOrdered\");\n if (kind === \"listUnordered\" ? !self2.containerState.marker || code2 === self2.containerState.marker : asciiDigit(code2)) {\n if (!self2.containerState.type) {\n self2.containerState.type = kind;\n effects.enter(kind, {\n _container: true\n });\n }\n if (kind === \"listUnordered\") {\n effects.enter(\"listItemPrefix\");\n return code2 === 42 || code2 === 45 ? effects.check(thematicBreak, nok, atMarker)(code2) : atMarker(code2);\n }\n if (!self2.interrupt || code2 === 49) {\n effects.enter(\"listItemPrefix\");\n effects.enter(\"listItemValue\");\n return inside(code2);\n }\n }\n return nok(code2);\n }\n function inside(code2) {\n if (asciiDigit(code2) && ++size2 < 10) {\n effects.consume(code2);\n return inside;\n }\n if ((!self2.interrupt || size2 < 2) && (self2.containerState.marker ? code2 === self2.containerState.marker : code2 === 41 || code2 === 46)) {\n effects.exit(\"listItemValue\");\n return atMarker(code2);\n }\n return nok(code2);\n }\n function atMarker(code2) {\n effects.enter(\"listItemMarker\");\n effects.consume(code2);\n effects.exit(\"listItemMarker\");\n self2.containerState.marker = self2.containerState.marker || code2;\n return effects.check(\n blankLine,\n self2.interrupt ? nok : onBlank,\n effects.attempt(\n listItemPrefixWhitespaceConstruct,\n endOfPrefix,\n otherPrefix\n )\n );\n }\n function onBlank(code2) {\n self2.containerState.initialBlankLine = true;\n initialSize++;\n return endOfPrefix(code2);\n }\n function otherPrefix(code2) {\n if (markdownSpace(code2)) {\n effects.enter(\"listItemPrefixWhitespace\");\n effects.consume(code2);\n effects.exit(\"listItemPrefixWhitespace\");\n return endOfPrefix;\n }\n return nok(code2);\n }\n function endOfPrefix(code2) {\n self2.containerState.size = initialSize + self2.sliceSerialize(effects.exit(\"listItemPrefix\"), true).length;\n return ok(code2);\n }\n}\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self2 = this;\n self2.containerState._closeFlow = void 0;\n return effects.check(blankLine, onBlank, notBlank);\n function onBlank(code2) {\n self2.containerState.furtherBlankLines = self2.containerState.furtherBlankLines || self2.containerState.initialBlankLine;\n return factorySpace(\n effects,\n ok,\n \"listItemIndent\",\n self2.containerState.size + 1\n )(code2);\n }\n function notBlank(code2) {\n if (self2.containerState.furtherBlankLines || !markdownSpace(code2)) {\n self2.containerState.furtherBlankLines = void 0;\n self2.containerState.initialBlankLine = void 0;\n return notInCurrentItem(code2);\n }\n self2.containerState.furtherBlankLines = void 0;\n self2.containerState.initialBlankLine = void 0;\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code2);\n }\n function notInCurrentItem(code2) {\n self2.containerState._closeFlow = true;\n self2.interrupt = void 0;\n return factorySpace(\n effects,\n effects.attempt(list, ok, nok),\n \"linePrefix\",\n self2.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4\n )(code2);\n }\n}\nfunction tokenizeIndent$1(effects, ok, nok) {\n const self2 = this;\n return factorySpace(\n effects,\n afterPrefix,\n \"listItemIndent\",\n self2.containerState.size + 1\n );\n function afterPrefix(code2) {\n const tail = self2.events[self2.events.length - 1];\n return tail && tail[1].type === \"listItemIndent\" && tail[2].sliceSerialize(tail[1], true).length === self2.containerState.size ? ok(code2) : nok(code2);\n }\n}\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type);\n}\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self2 = this;\n return factorySpace(\n effects,\n afterPrefix,\n \"listItemPrefixWhitespace\",\n self2.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4 + 1\n );\n function afterPrefix(code2) {\n const tail = self2.events[self2.events.length - 1];\n return !markdownSpace(code2) && tail && tail[1].type === \"listItemPrefixWhitespace\" ? ok(code2) : nok(code2);\n }\n}\nconst setextUnderline = {\n name: \"setextUnderline\",\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n};\nfunction resolveToSetextUnderline(events, context) {\n let index = events.length;\n let content2;\n let text2;\n let definition2;\n while (index--) {\n if (events[index][0] === \"enter\") {\n if (events[index][1].type === \"content\") {\n content2 = index;\n break;\n }\n if (events[index][1].type === \"paragraph\") {\n text2 = index;\n }\n } else {\n if (events[index][1].type === \"content\") {\n events.splice(index, 1);\n }\n if (!definition2 && events[index][1].type === \"definition\") {\n definition2 = index;\n }\n }\n }\n const heading = {\n type: \"setextHeading\",\n start: Object.assign({}, events[text2][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n };\n events[text2][1].type = \"setextHeadingText\";\n if (definition2) {\n events.splice(text2, 0, [\"enter\", heading, context]);\n events.splice(definition2 + 1, 0, [\"exit\", events[content2][1], context]);\n events[content2][1].end = Object.assign({}, events[definition2][1].end);\n } else {\n events[content2][1] = heading;\n }\n events.push([\"exit\", heading, context]);\n return events;\n}\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self2 = this;\n let marker;\n return start;\n function start(code2) {\n let index = self2.events.length;\n let paragraph;\n while (index--) {\n if (self2.events[index][1].type !== \"lineEnding\" && self2.events[index][1].type !== \"linePrefix\" && self2.events[index][1].type !== \"content\") {\n paragraph = self2.events[index][1].type === \"paragraph\";\n break;\n }\n }\n if (!self2.parser.lazy[self2.now().line] && (self2.interrupt || paragraph)) {\n effects.enter(\"setextHeadingLine\");\n marker = code2;\n return before(code2);\n }\n return nok(code2);\n }\n function before(code2) {\n effects.enter(\"setextHeadingLineSequence\");\n return inside(code2);\n }\n function inside(code2) {\n if (code2 === marker) {\n effects.consume(code2);\n return inside;\n }\n effects.exit(\"setextHeadingLineSequence\");\n return markdownSpace(code2) ? factorySpace(effects, after, \"lineSuffix\")(code2) : after(code2);\n }\n function after(code2) {\n if (code2 === null || markdownLineEnding(code2)) {\n effects.exit(\"setextHeadingLine\");\n return ok(code2);\n }\n return nok(code2);\n }\n}\nconst flow$1 = {\n tokenize: initializeFlow\n};\nfunction initializeFlow(effects) {\n const self2 = this;\n const initial = effects.attempt(\n blankLine,\n atBlankEnding,\n effects.attempt(\n this.parser.constructs.flowInitial,\n afterConstruct,\n factorySpace(\n effects,\n effects.attempt(\n this.parser.constructs.flow,\n afterConstruct,\n effects.attempt(content, afterConstruct)\n ),\n \"linePrefix\"\n )\n )\n );\n return initial;\n function atBlankEnding(code2) {\n if (code2 === null) {\n effects.consume(code2);\n return;\n }\n effects.enter(\"lineEndingBlank\");\n effects.consume(code2);\n effects.exit(\"lineEndingBlank\");\n self2.currentConstruct = void 0;\n return initial;\n }\n function afterConstruct(code2) {\n if (code2 === null) {\n effects.consume(code2);\n return;\n }\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n self2.currentConstruct = void 0;\n return initial;\n }\n}\nconst resolver = {\n resolveAll: createResolver()\n};\nconst string$1 = initializeFactory(\"string\");\nconst text$3 = initializeFactory(\"text\");\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(\n field === \"text\" ? resolveAllLineSuffixes : void 0\n )\n };\n function initializeText(effects) {\n const self2 = this;\n const constructs2 = this.parser.constructs[field];\n const text2 = effects.attempt(constructs2, start, notText);\n return start;\n function start(code2) {\n return atBreak(code2) ? text2(code2) : notText(code2);\n }\n function notText(code2) {\n if (code2 === null) {\n effects.consume(code2);\n return;\n }\n effects.enter(\"data\");\n effects.consume(code2);\n return data;\n }\n function data(code2) {\n if (atBreak(code2)) {\n effects.exit(\"data\");\n return text2(code2);\n }\n effects.consume(code2);\n return data;\n }\n function atBreak(code2) {\n if (code2 === null) {\n return true;\n }\n const list2 = constructs2[code2];\n let index = -1;\n if (list2) {\n while (++index < list2.length) {\n const item = list2[index];\n if (!item.previous || item.previous.call(self2, self2.previous)) {\n return true;\n }\n }\n }\n return false;\n }\n }\n}\nfunction createResolver(extraResolver) {\n return resolveAllText;\n function resolveAllText(events, context) {\n let index = -1;\n let enter;\n while (++index <= events.length) {\n if (enter === void 0) {\n if (events[index] && events[index][1].type === \"data\") {\n enter = index;\n index++;\n }\n } else if (!events[index] || events[index][1].type !== \"data\") {\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end;\n events.splice(enter + 2, index - enter - 2);\n index = enter + 2;\n }\n enter = void 0;\n }\n }\n return extraResolver ? extraResolver(events, context) : events;\n }\n}\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = 0;\n while (++eventIndex <= events.length) {\n if ((eventIndex === events.length || events[eventIndex][1].type === \"lineEnding\") && events[eventIndex - 1][1].type === \"data\") {\n const data = events[eventIndex - 1][1];\n const chunks = context.sliceStream(data);\n let index = chunks.length;\n let bufferIndex = -1;\n let size2 = 0;\n let tabs;\n while (index--) {\n const chunk = chunks[index];\n if (typeof chunk === \"string\") {\n bufferIndex = chunk.length;\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size2++;\n bufferIndex--;\n }\n if (bufferIndex)\n break;\n bufferIndex = -1;\n } else if (chunk === -2) {\n tabs = true;\n size2++;\n } else if (chunk === -1)\n ;\n else {\n index++;\n break;\n }\n }\n if (size2) {\n const token = {\n type: eventIndex === events.length || tabs || size2 < 2 ? \"lineSuffix\" : \"hardBreakTrailing\",\n start: {\n line: data.end.line,\n column: data.end.column - size2,\n offset: data.end.offset - size2,\n _index: data.start._index + index,\n _bufferIndex: index ? bufferIndex : data.start._bufferIndex + bufferIndex\n },\n end: Object.assign({}, data.end)\n };\n data.end = Object.assign({}, token.start);\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token);\n } else {\n events.splice(\n eventIndex,\n 0,\n [\"enter\", token, context],\n [\"exit\", token, context]\n );\n eventIndex += 2;\n }\n }\n eventIndex++;\n }\n }\n return events;\n}\nfunction createTokenizer(parser, initialize, from) {\n let point = Object.assign(\n from ? Object.assign({}, from) : {\n line: 1,\n column: 1,\n offset: 0\n },\n {\n _index: 0,\n _bufferIndex: -1\n }\n );\n const columnStart = {};\n const resolveAllConstructs = [];\n let chunks = [];\n let stack = [];\n const effects = {\n consume,\n enter,\n exit: exit2,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n };\n const context = {\n previous: null,\n code: null,\n containerState: {},\n events: [],\n parser,\n sliceStream,\n sliceSerialize,\n now,\n defineSkip,\n write\n };\n let state = initialize.tokenize.call(context, effects);\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize);\n }\n return context;\n function write(slice) {\n chunks = push(chunks, slice);\n main();\n if (chunks[chunks.length - 1] !== null) {\n return [];\n }\n addResult(initialize, 0);\n context.events = resolveAll(resolveAllConstructs, context.events, context);\n return context.events;\n }\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs);\n }\n function sliceStream(token) {\n return sliceChunks(chunks, token);\n }\n function now() {\n const { line, column, offset, _index, _bufferIndex } = point;\n return {\n line,\n column,\n offset,\n _index,\n _bufferIndex\n };\n }\n function defineSkip(value) {\n columnStart[value.line] = value.column;\n accountForPotentialSkip();\n }\n function main() {\n let chunkIndex;\n while (point._index < chunks.length) {\n const chunk = chunks[point._index];\n if (typeof chunk === \"string\") {\n chunkIndex = point._index;\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0;\n }\n while (point._index === chunkIndex && point._bufferIndex < chunk.length) {\n go(chunk.charCodeAt(point._bufferIndex));\n }\n } else {\n go(chunk);\n }\n }\n }\n function go(code2) {\n state = state(code2);\n }\n function consume(code2) {\n if (markdownLineEnding(code2)) {\n point.line++;\n point.column = 1;\n point.offset += code2 === -3 ? 2 : 1;\n accountForPotentialSkip();\n } else if (code2 !== -1) {\n point.column++;\n point.offset++;\n }\n if (point._bufferIndex < 0) {\n point._index++;\n } else {\n point._bufferIndex++;\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1;\n point._index++;\n }\n }\n context.previous = code2;\n }\n function enter(type, fields) {\n const token = fields || {};\n token.type = type;\n token.start = now();\n context.events.push([\"enter\", token, context]);\n stack.push(token);\n return token;\n }\n function exit2(type) {\n const token = stack.pop();\n token.end = now();\n context.events.push([\"exit\", token, context]);\n return token;\n }\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from);\n }\n function onsuccessfulcheck(_, info) {\n info.restore();\n }\n function constructFactory(onreturn, fields) {\n return hook;\n function hook(constructs2, returnState, bogusState) {\n let listOfConstructs;\n let constructIndex;\n let currentConstruct;\n let info;\n return Array.isArray(constructs2) ? handleListOfConstructs(constructs2) : \"tokenize\" in constructs2 ? handleListOfConstructs([constructs2]) : handleMapOfConstructs(constructs2);\n function handleMapOfConstructs(map) {\n return start;\n function start(code2) {\n const def2 = code2 !== null && map[code2];\n const all = code2 !== null && map.null;\n const list2 = [\n ...Array.isArray(def2) ? def2 : def2 ? [def2] : [],\n ...Array.isArray(all) ? all : all ? [all] : []\n ];\n return handleListOfConstructs(list2)(code2);\n }\n }\n function handleListOfConstructs(list2) {\n listOfConstructs = list2;\n constructIndex = 0;\n if (list2.length === 0) {\n return bogusState;\n }\n return handleConstruct(list2[constructIndex]);\n }\n function handleConstruct(construct) {\n return start;\n function start(code2) {\n info = store();\n currentConstruct = construct;\n if (!construct.partial) {\n context.currentConstruct = construct;\n }\n if (construct.name && context.parser.constructs.disable.null.includes(construct.name)) {\n return nok();\n }\n return construct.tokenize.call(\n fields ? Object.assign(Object.create(context), fields) : context,\n effects,\n ok,\n nok\n )(code2);\n }\n }\n function ok(code2) {\n onreturn(currentConstruct, info);\n return returnState;\n }\n function nok(code2) {\n info.restore();\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex]);\n }\n return bogusState;\n }\n }\n }\n function addResult(construct, from2) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct);\n }\n if (construct.resolve) {\n splice(\n context.events,\n from2,\n context.events.length - from2,\n construct.resolve(context.events.slice(from2), context)\n );\n }\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context);\n }\n }\n function store() {\n const startPoint = now();\n const startPrevious = context.previous;\n const startCurrentConstruct = context.currentConstruct;\n const startEventsIndex = context.events.length;\n const startStack = Array.from(stack);\n return {\n restore,\n from: startEventsIndex\n };\n function restore() {\n point = startPoint;\n context.previous = startPrevious;\n context.currentConstruct = startCurrentConstruct;\n context.events.length = startEventsIndex;\n stack = startStack;\n accountForPotentialSkip();\n }\n }\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line];\n point.offset += columnStart[point.line] - 1;\n }\n }\n}\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index;\n const startBufferIndex = token.start._bufferIndex;\n const endIndex = token.end._index;\n const endBufferIndex = token.end._bufferIndex;\n let view;\n if (startIndex === endIndex) {\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)];\n } else {\n view = chunks.slice(startIndex, endIndex);\n if (startBufferIndex > -1) {\n const head = view[0];\n if (typeof head === \"string\") {\n view[0] = head.slice(startBufferIndex);\n } else {\n view.shift();\n }\n }\n if (endBufferIndex > 0) {\n view.push(chunks[endIndex].slice(0, endBufferIndex));\n }\n }\n return view;\n}\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1;\n const result = [];\n let atTab;\n while (++index < chunks.length) {\n const chunk = chunks[index];\n let value;\n if (typeof chunk === \"string\") {\n value = chunk;\n } else\n switch (chunk) {\n case -5: {\n value = \"\\r\";\n break;\n }\n case -4: {\n value = \"\\n\";\n break;\n }\n case -3: {\n value = \"\\r\\n\";\n break;\n }\n case -2: {\n value = expandTabs ? \" \" : \"\t\";\n break;\n }\n case -1: {\n if (!expandTabs && atTab)\n continue;\n value = \" \";\n break;\n }\n default: {\n value = String.fromCharCode(chunk);\n }\n }\n atTab = chunk === -2;\n result.push(value);\n }\n return result.join(\"\");\n}\nconst document$1 = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n};\nconst contentInitial = {\n [91]: definition\n};\nconst flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n};\nconst flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n};\nconst string = {\n [38]: characterReference,\n [92]: characterEscape\n};\nconst text$2 = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n};\nconst insideSpan = {\n null: [attention, resolver]\n};\nconst attentionMarkers = {\n null: [42, 95]\n};\nconst disable = {\n null: []\n};\nvar defaultConstructs = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n document: document$1,\n contentInitial,\n flowInitial,\n flow,\n string,\n text: text$2,\n insideSpan,\n attentionMarkers,\n disable\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction parse(options) {\n const settings = options || {};\n const constructs2 = combineExtensions([defaultConstructs, ...settings.extensions || []]);\n const parser = {\n defined: [],\n lazy: {},\n constructs: constructs2,\n content: create(content$1),\n document: create(document$2),\n flow: create(flow$1),\n string: create(string$1),\n text: create(text$3)\n };\n return parser;\n function create(initial) {\n return creator;\n function creator(from) {\n return createTokenizer(parser, initial, from);\n }\n }\n}\nfunction postprocess(events) {\n while (!subtokenize(events)) {\n }\n return events;\n}\nconst search = /[\\0\\t\\n\\r]/g;\nfunction preprocess() {\n let column = 1;\n let buffer = \"\";\n let start = true;\n let atCarriageReturn;\n return preprocessor;\n function preprocessor(value, encoding, end) {\n const chunks = [];\n let match;\n let next;\n let startPosition;\n let endPosition;\n let code2;\n value = buffer + value.toString(encoding);\n startPosition = 0;\n buffer = \"\";\n if (start) {\n if (value.charCodeAt(0) === 65279) {\n startPosition++;\n }\n start = void 0;\n }\n while (startPosition < value.length) {\n search.lastIndex = startPosition;\n match = search.exec(value);\n endPosition = match && match.index !== void 0 ? match.index : value.length;\n code2 = value.charCodeAt(endPosition);\n if (!match) {\n buffer = value.slice(startPosition);\n break;\n }\n if (code2 === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3);\n atCarriageReturn = void 0;\n } else {\n if (atCarriageReturn) {\n chunks.push(-5);\n atCarriageReturn = void 0;\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition));\n column += endPosition - startPosition;\n }\n switch (code2) {\n case 0: {\n chunks.push(65533);\n column++;\n break;\n }\n case 9: {\n next = Math.ceil(column / 4) * 4;\n chunks.push(-2);\n while (column++ < next)\n chunks.push(-1);\n break;\n }\n case 10: {\n chunks.push(-4);\n column = 1;\n break;\n }\n default: {\n atCarriageReturn = true;\n column = 1;\n }\n }\n }\n startPosition = endPosition + 1;\n }\n if (end) {\n if (atCarriageReturn)\n chunks.push(-5);\n if (buffer)\n chunks.push(buffer);\n chunks.push(null);\n }\n return chunks;\n }\n}\nfunction micromark(value, encoding, options) {\n if (typeof encoding !== \"string\") {\n options = encoding;\n encoding = void 0;\n }\n return compile(options)(\n postprocess(\n parse(options).document().write(preprocess()(value, encoding, true))\n )\n );\n}\nconst wwwPrefix = {\n tokenize: tokenizeWwwPrefix,\n partial: true\n};\nconst domain = {\n tokenize: tokenizeDomain,\n partial: true\n};\nconst path = {\n tokenize: tokenizePath,\n partial: true\n};\nconst trail = {\n tokenize: tokenizeTrail,\n partial: true\n};\nconst emailDomainDotTrail = {\n tokenize: tokenizeEmailDomainDotTrail,\n partial: true\n};\nconst wwwAutolink = {\n tokenize: tokenizeWwwAutolink,\n previous: previousWww\n};\nconst protocolAutolink = {\n tokenize: tokenizeProtocolAutolink,\n previous: previousProtocol\n};\nconst emailAutolink = {\n tokenize: tokenizeEmailAutolink,\n previous: previousEmail\n};\nconst text$1 = {};\nconst gfmAutolinkLiteral = {\n text: text$1\n};\nlet code = 48;\nwhile (code < 123) {\n text$1[code] = emailAutolink;\n code++;\n if (code === 58)\n code = 65;\n else if (code === 91)\n code = 97;\n}\ntext$1[43] = emailAutolink;\ntext$1[45] = emailAutolink;\ntext$1[46] = emailAutolink;\ntext$1[95] = emailAutolink;\ntext$1[72] = [emailAutolink, protocolAutolink];\ntext$1[104] = [emailAutolink, protocolAutolink];\ntext$1[87] = [emailAutolink, wwwAutolink];\ntext$1[119] = [emailAutolink, wwwAutolink];\nfunction tokenizeEmailAutolink(effects, ok, nok) {\n const self2 = this;\n let dot;\n let data;\n return start;\n function start(code2) {\n if (!gfmAtext(code2) || !previousEmail.call(self2, self2.previous) || previousUnbalanced(self2.events)) {\n return nok(code2);\n }\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkEmail\");\n return atext(code2);\n }\n function atext(code2) {\n if (gfmAtext(code2)) {\n effects.consume(code2);\n return atext;\n }\n if (code2 === 64) {\n effects.consume(code2);\n return emailDomain;\n }\n return nok(code2);\n }\n function emailDomain(code2) {\n if (code2 === 46) {\n return effects.check(\n emailDomainDotTrail,\n emailDomainAfter,\n emailDomainDot\n )(code2);\n }\n if (code2 === 45 || code2 === 95 || asciiAlphanumeric(code2)) {\n data = true;\n effects.consume(code2);\n return emailDomain;\n }\n return emailDomainAfter(code2);\n }\n function emailDomainDot(code2) {\n effects.consume(code2);\n dot = true;\n return emailDomain;\n }\n function emailDomainAfter(code2) {\n if (data && dot && asciiAlpha(self2.previous)) {\n effects.exit(\"literalAutolinkEmail\");\n effects.exit(\"literalAutolink\");\n return ok(code2);\n }\n return nok(code2);\n }\n}\nfunction tokenizeWwwAutolink(effects, ok, nok) {\n const self2 = this;\n return wwwStart;\n function wwwStart(code2) {\n if (code2 !== 87 && code2 !== 119 || !previousWww.call(self2, self2.previous) || previousUnbalanced(self2.events)) {\n return nok(code2);\n }\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkWww\");\n return effects.check(\n wwwPrefix,\n effects.attempt(domain, effects.attempt(path, wwwAfter), nok),\n nok\n )(code2);\n }\n function wwwAfter(code2) {\n effects.exit(\"literalAutolinkWww\");\n effects.exit(\"literalAutolink\");\n return ok(code2);\n }\n}\nfunction tokenizeProtocolAutolink(effects, ok, nok) {\n const self2 = this;\n let buffer = \"\";\n let seen = false;\n return protocolStart;\n function protocolStart(code2) {\n if ((code2 === 72 || code2 === 104) && previousProtocol.call(self2, self2.previous) && !previousUnbalanced(self2.events)) {\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkHttp\");\n buffer += String.fromCodePoint(code2);\n effects.consume(code2);\n return protocolPrefixInside;\n }\n return nok(code2);\n }\n function protocolPrefixInside(code2) {\n if (asciiAlpha(code2) && buffer.length < 5) {\n buffer += String.fromCodePoint(code2);\n effects.consume(code2);\n return protocolPrefixInside;\n }\n if (code2 === 58) {\n const protocol = buffer.toLowerCase();\n if (protocol === \"http\" || protocol === \"https\") {\n effects.consume(code2);\n return protocolSlashesInside;\n }\n }\n return nok(code2);\n }\n function protocolSlashesInside(code2) {\n if (code2 === 47) {\n effects.consume(code2);\n if (seen) {\n return afterProtocol;\n }\n seen = true;\n return protocolSlashesInside;\n }\n return nok(code2);\n }\n function afterProtocol(code2) {\n return code2 === null || asciiControl(code2) || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2) || unicodePunctuation(code2) ? nok(code2) : effects.attempt(domain, effects.attempt(path, protocolAfter), nok)(code2);\n }\n function protocolAfter(code2) {\n effects.exit(\"literalAutolinkHttp\");\n effects.exit(\"literalAutolink\");\n return ok(code2);\n }\n}\nfunction tokenizeWwwPrefix(effects, ok, nok) {\n let size2 = 0;\n return wwwPrefixInside;\n function wwwPrefixInside(code2) {\n if ((code2 === 87 || code2 === 119) && size2 < 3) {\n size2++;\n effects.consume(code2);\n return wwwPrefixInside;\n }\n if (code2 === 46 && size2 === 3) {\n effects.consume(code2);\n return wwwPrefixAfter;\n }\n return nok(code2);\n }\n function wwwPrefixAfter(code2) {\n return code2 === null ? nok(code2) : ok(code2);\n }\n}\nfunction tokenizeDomain(effects, ok, nok) {\n let underscoreInLastSegment;\n let underscoreInLastLastSegment;\n let seen;\n return domainInside;\n function domainInside(code2) {\n if (code2 === 46 || code2 === 95) {\n return effects.check(trail, domainAfter, domainAtPunctuation)(code2);\n }\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2) || code2 !== 45 && unicodePunctuation(code2)) {\n return domainAfter(code2);\n }\n seen = true;\n effects.consume(code2);\n return domainInside;\n }\n function domainAtPunctuation(code2) {\n if (code2 === 95) {\n underscoreInLastSegment = true;\n } else {\n underscoreInLastLastSegment = underscoreInLastSegment;\n underscoreInLastSegment = void 0;\n }\n effects.consume(code2);\n return domainInside;\n }\n function domainAfter(code2) {\n if (underscoreInLastLastSegment || underscoreInLastSegment || !seen) {\n return nok(code2);\n }\n return ok(code2);\n }\n}\nfunction tokenizePath(effects, ok) {\n let sizeOpen = 0;\n let sizeClose = 0;\n return pathInside;\n function pathInside(code2) {\n if (code2 === 40) {\n sizeOpen++;\n effects.consume(code2);\n return pathInside;\n }\n if (code2 === 41 && sizeClose < sizeOpen) {\n return pathAtPunctuation(code2);\n }\n if (code2 === 33 || code2 === 34 || code2 === 38 || code2 === 39 || code2 === 41 || code2 === 42 || code2 === 44 || code2 === 46 || code2 === 58 || code2 === 59 || code2 === 60 || code2 === 63 || code2 === 93 || code2 === 95 || code2 === 126) {\n return effects.check(trail, ok, pathAtPunctuation)(code2);\n }\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return ok(code2);\n }\n effects.consume(code2);\n return pathInside;\n }\n function pathAtPunctuation(code2) {\n if (code2 === 41) {\n sizeClose++;\n }\n effects.consume(code2);\n return pathInside;\n }\n}\nfunction tokenizeTrail(effects, ok, nok) {\n return trail2;\n function trail2(code2) {\n if (code2 === 33 || code2 === 34 || code2 === 39 || code2 === 41 || code2 === 42 || code2 === 44 || code2 === 46 || code2 === 58 || code2 === 59 || code2 === 63 || code2 === 95 || code2 === 126) {\n effects.consume(code2);\n return trail2;\n }\n if (code2 === 38) {\n effects.consume(code2);\n return trailCharRefStart;\n }\n if (code2 === 93) {\n effects.consume(code2);\n return trailBracketAfter;\n }\n if (code2 === 60 || code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return ok(code2);\n }\n return nok(code2);\n }\n function trailBracketAfter(code2) {\n if (code2 === null || code2 === 40 || code2 === 91 || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return ok(code2);\n }\n return trail2(code2);\n }\n function trailCharRefStart(code2) {\n return asciiAlpha(code2) ? trailCharRefInside(code2) : nok(code2);\n }\n function trailCharRefInside(code2) {\n if (code2 === 59) {\n effects.consume(code2);\n return trail2;\n }\n if (asciiAlpha(code2)) {\n effects.consume(code2);\n return trailCharRefInside;\n }\n return nok(code2);\n }\n}\nfunction tokenizeEmailDomainDotTrail(effects, ok, nok) {\n return start;\n function start(code2) {\n effects.consume(code2);\n return after;\n }\n function after(code2) {\n return asciiAlphanumeric(code2) ? nok(code2) : ok(code2);\n }\n}\nfunction previousWww(code2) {\n return code2 === null || code2 === 40 || code2 === 42 || code2 === 95 || code2 === 91 || code2 === 93 || code2 === 126 || markdownLineEndingOrSpace(code2);\n}\nfunction previousProtocol(code2) {\n return !asciiAlpha(code2);\n}\nfunction previousEmail(code2) {\n return !(code2 === 47 || gfmAtext(code2));\n}\nfunction gfmAtext(code2) {\n return code2 === 43 || code2 === 45 || code2 === 46 || code2 === 95 || asciiAlphanumeric(code2);\n}\nfunction previousUnbalanced(events) {\n let index = events.length;\n let result = false;\n while (index--) {\n const token = events[index][1];\n if ((token.type === \"labelLink\" || token.type === \"labelImage\") && !token._balanced) {\n result = true;\n break;\n }\n if (token._gfmAutolinkLiteralWalkedInto) {\n result = false;\n break;\n }\n }\n if (events.length > 0 && !result) {\n events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true;\n }\n return result;\n}\nconst gfmAutolinkLiteralHtml = {\n exit: {\n literalAutolinkEmail,\n literalAutolinkHttp,\n literalAutolinkWww\n }\n};\nfunction literalAutolinkWww(token) {\n anchorFromToken.call(this, token, \"http://\");\n}\nfunction literalAutolinkEmail(token) {\n anchorFromToken.call(this, token, \"mailto:\");\n}\nfunction literalAutolinkHttp(token) {\n anchorFromToken.call(this, token);\n}\nfunction anchorFromToken(token, protocol) {\n const url = this.sliceSerialize(token);\n this.tag('<a href=\"' + sanitizeUri((protocol || \"\") + url) + '\">');\n this.raw(this.encode(url));\n this.tag(\"</a>\");\n}\nconst indent = {\n tokenize: tokenizeIndent,\n partial: true\n};\nfunction gfmFootnote() {\n return {\n document: {\n [91]: {\n tokenize: tokenizeDefinitionStart,\n continuation: {\n tokenize: tokenizeDefinitionContinuation\n },\n exit: gfmFootnoteDefinitionEnd\n }\n },\n text: {\n [91]: {\n tokenize: tokenizeGfmFootnoteCall\n },\n [93]: {\n add: \"after\",\n tokenize: tokenizePotentialGfmFootnoteCall,\n resolveTo: resolveToPotentialGfmFootnoteCall\n }\n }\n };\n}\nfunction tokenizePotentialGfmFootnoteCall(effects, ok, nok) {\n const self2 = this;\n let index = self2.events.length;\n const defined = self2.parser.gfmFootnotes || (self2.parser.gfmFootnotes = []);\n let labelStart;\n while (index--) {\n const token = self2.events[index][1];\n if (token.type === \"labelImage\") {\n labelStart = token;\n break;\n }\n if (token.type === \"gfmFootnoteCall\" || token.type === \"labelLink\" || token.type === \"label\" || token.type === \"image\" || token.type === \"link\") {\n break;\n }\n }\n return start;\n function start(code2) {\n if (!labelStart || !labelStart._balanced) {\n return nok(code2);\n }\n const id = normalizeIdentifier(\n self2.sliceSerialize({\n start: labelStart.end,\n end: self2.now()\n })\n );\n if (id.codePointAt(0) !== 94 || !defined.includes(id.slice(1))) {\n return nok(code2);\n }\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n return ok(code2);\n }\n}\nfunction resolveToPotentialGfmFootnoteCall(events, context) {\n let index = events.length;\n while (index--) {\n if (events[index][1].type === \"labelImage\" && events[index][0] === \"enter\") {\n events[index][1];\n break;\n }\n }\n events[index + 1][1].type = \"data\";\n events[index + 3][1].type = \"gfmFootnoteCallLabelMarker\";\n const call = {\n type: \"gfmFootnoteCall\",\n start: Object.assign({}, events[index + 3][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n };\n const marker = {\n type: \"gfmFootnoteCallMarker\",\n start: Object.assign({}, events[index + 3][1].end),\n end: Object.assign({}, events[index + 3][1].end)\n };\n marker.end.column++;\n marker.end.offset++;\n marker.end._bufferIndex++;\n const string2 = {\n type: \"gfmFootnoteCallString\",\n start: Object.assign({}, marker.end),\n end: Object.assign({}, events[events.length - 1][1].start)\n };\n const chunk = {\n type: \"chunkString\",\n contentType: \"string\",\n start: Object.assign({}, string2.start),\n end: Object.assign({}, string2.end)\n };\n const replacement = [\n events[index + 1],\n events[index + 2],\n [\"enter\", call, context],\n events[index + 3],\n events[index + 4],\n [\"enter\", marker, context],\n [\"exit\", marker, context],\n [\"enter\", string2, context],\n [\"enter\", chunk, context],\n [\"exit\", chunk, context],\n [\"exit\", string2, context],\n events[events.length - 2],\n events[events.length - 1],\n [\"exit\", call, context]\n ];\n events.splice(index, events.length - index + 1, ...replacement);\n return events;\n}\nfunction tokenizeGfmFootnoteCall(effects, ok, nok) {\n const self2 = this;\n const defined = self2.parser.gfmFootnotes || (self2.parser.gfmFootnotes = []);\n let size2 = 0;\n let data;\n return start;\n function start(code2) {\n effects.enter(\"gfmFootnoteCall\");\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n return callStart;\n }\n function callStart(code2) {\n if (code2 !== 94)\n return nok(code2);\n effects.enter(\"gfmFootnoteCallMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallMarker\");\n effects.enter(\"gfmFootnoteCallString\");\n effects.enter(\"chunkString\").contentType = \"string\";\n return callData;\n }\n function callData(code2) {\n if (size2 > 999 || code2 === 93 && !data || code2 === null || code2 === 91 || markdownLineEndingOrSpace(code2)) {\n return nok(code2);\n }\n if (code2 === 93) {\n effects.exit(\"chunkString\");\n const token = effects.exit(\"gfmFootnoteCallString\");\n if (!defined.includes(normalizeIdentifier(self2.sliceSerialize(token)))) {\n return nok(code2);\n }\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n effects.exit(\"gfmFootnoteCall\");\n return ok;\n }\n if (!markdownLineEndingOrSpace(code2)) {\n data = true;\n }\n size2++;\n effects.consume(code2);\n return code2 === 92 ? callEscape : callData;\n }\n function callEscape(code2) {\n if (code2 === 91 || code2 === 92 || code2 === 93) {\n effects.consume(code2);\n size2++;\n return callData;\n }\n return callData(code2);\n }\n}\nfunction tokenizeDefinitionStart(effects, ok, nok) {\n const self2 = this;\n const defined = self2.parser.gfmFootnotes || (self2.parser.gfmFootnotes = []);\n let identifier;\n let size2 = 0;\n let data;\n return start;\n function start(code2) {\n effects.enter(\"gfmFootnoteDefinition\")._container = true;\n effects.enter(\"gfmFootnoteDefinitionLabel\");\n effects.enter(\"gfmFootnoteDefinitionLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionLabelMarker\");\n return labelAtMarker;\n }\n function labelAtMarker(code2) {\n if (code2 === 94) {\n effects.enter(\"gfmFootnoteDefinitionMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionMarker\");\n effects.enter(\"gfmFootnoteDefinitionLabelString\");\n effects.enter(\"chunkString\").contentType = \"string\";\n return labelInside;\n }\n return nok(code2);\n }\n function labelInside(code2) {\n if (size2 > 999 || code2 === 93 && !data || code2 === null || code2 === 91 || markdownLineEndingOrSpace(code2)) {\n return nok(code2);\n }\n if (code2 === 93) {\n effects.exit(\"chunkString\");\n const token = effects.exit(\"gfmFootnoteDefinitionLabelString\");\n identifier = normalizeIdentifier(self2.sliceSerialize(token));\n effects.enter(\"gfmFootnoteDefinitionLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionLabelMarker\");\n effects.exit(\"gfmFootnoteDefinitionLabel\");\n return labelAfter;\n }\n if (!markdownLineEndingOrSpace(code2)) {\n data = true;\n }\n size2++;\n effects.consume(code2);\n return code2 === 92 ? labelEscape : labelInside;\n }\n function labelEscape(code2) {\n if (code2 === 91 || code2 === 92 || code2 === 93) {\n effects.consume(code2);\n size2++;\n return labelInside;\n }\n return labelInside(code2);\n }\n function labelAfter(code2) {\n if (code2 === 58) {\n effects.enter(\"definitionMarker\");\n effects.consume(code2);\n effects.exit(\"definitionMarker\");\n if (!defined.includes(identifier)) {\n defined.push(identifier);\n }\n return factorySpace(\n effects,\n whitespaceAfter,\n \"gfmFootnoteDefinitionWhitespace\"\n );\n }\n return nok(code2);\n }\n function whitespaceAfter(code2) {\n return ok(code2);\n }\n}\nfunction tokenizeDefinitionContinuation(effects, ok, nok) {\n return effects.check(blankLine, ok, effects.attempt(indent, ok, nok));\n}\nfunction gfmFootnoteDefinitionEnd(effects) {\n effects.exit(\"gfmFootnoteDefinition\");\n}\nfunction tokenizeIndent(effects, ok, nok) {\n const self2 = this;\n return factorySpace(\n effects,\n afterPrefix,\n \"gfmFootnoteDefinitionIndent\",\n 4 + 1\n );\n function afterPrefix(code2) {\n const tail = self2.events[self2.events.length - 1];\n return tail && tail[1].type === \"gfmFootnoteDefinitionIndent\" && tail[2].sliceSerialize(tail[1], true).length === 4 ? ok(code2) : nok(code2);\n }\n}\nconst own = {}.hasOwnProperty;\nconst emptyOptions = {};\nfunction defaultBackLabel(referenceIndex, rereferenceIndex) {\n return \"Back to reference \" + (referenceIndex + 1) + (rereferenceIndex > 1 ? \"-\" + rereferenceIndex : \"\");\n}\nfunction gfmFootnoteHtml(options) {\n const config = options || emptyOptions;\n const label = config.label || \"Footnotes\";\n const labelTagName = config.labelTagName || \"h2\";\n const labelAttributes = config.labelAttributes === null || config.labelAttributes === void 0 ? 'class=\"sr-only\"' : config.labelAttributes;\n const backLabel = config.backLabel || defaultBackLabel;\n const clobberPrefix = config.clobberPrefix === null || config.clobberPrefix === void 0 ? \"user-content-\" : config.clobberPrefix;\n return {\n enter: {\n gfmFootnoteDefinition() {\n const stack = this.getData(\"tightStack\");\n stack.push(false);\n },\n gfmFootnoteDefinitionLabelString() {\n this.buffer();\n },\n gfmFootnoteCallString() {\n this.buffer();\n }\n },\n exit: {\n gfmFootnoteDefinition() {\n let definitions2 = this.getData(\"gfmFootnoteDefinitions\");\n const footnoteStack = this.getData(\"gfmFootnoteDefinitionStack\");\n const tightStack = this.getData(\"tightStack\");\n const current = footnoteStack.pop();\n const value = this.resume();\n if (!definitions2) {\n this.setData(\"gfmFootnoteDefinitions\", definitions2 = {});\n }\n if (!own.call(definitions2, current))\n definitions2[current] = value;\n tightStack.pop();\n this.setData(\"slurpOneLineEnding\", true);\n this.setData(\"lastWasTag\");\n },\n gfmFootnoteDefinitionLabelString(token) {\n let footnoteStack = this.getData(\"gfmFootnoteDefinitionStack\");\n if (!footnoteStack) {\n this.setData(\"gfmFootnoteDefinitionStack\", footnoteStack = []);\n }\n footnoteStack.push(normalizeIdentifier(this.sliceSerialize(token)));\n this.resume();\n this.buffer();\n },\n gfmFootnoteCallString(token) {\n let calls = this.getData(\"gfmFootnoteCallOrder\");\n let counts = this.getData(\"gfmFootnoteCallCounts\");\n const id = normalizeIdentifier(this.sliceSerialize(token));\n let counter;\n this.resume();\n if (!calls)\n this.setData(\"gfmFootnoteCallOrder\", calls = []);\n if (!counts)\n this.setData(\"gfmFootnoteCallCounts\", counts = {});\n const index = calls.indexOf(id);\n const safeId = sanitizeUri(id.toLowerCase());\n if (index === -1) {\n calls.push(id);\n counts[id] = 1;\n counter = calls.length;\n } else {\n counts[id]++;\n counter = index + 1;\n }\n const reuseCounter = counts[id];\n this.tag(\n '<sup><a href=\"#' + clobberPrefix + \"fn-\" + safeId + '\" id=\"' + clobberPrefix + \"fnref-\" + safeId + (reuseCounter > 1 ? \"-\" + reuseCounter : \"\") + '\" data-footnote-ref=\"\" aria-describedby=\"footnote-label\">' + String(counter) + \"</a></sup>\"\n );\n },\n null() {\n const calls = this.getData(\"gfmFootnoteCallOrder\") || [];\n const counts = this.getData(\"gfmFootnoteCallCounts\") || {};\n const definitions2 = this.getData(\"gfmFootnoteDefinitions\") || {};\n let index = -1;\n if (calls.length > 0) {\n this.lineEndingIfNeeded();\n this.tag(\n '<section data-footnotes=\"\" class=\"footnotes\"><' + labelTagName + ' id=\"footnote-label\"' + (labelAttributes ? \" \" + labelAttributes : \"\") + \">\"\n );\n this.raw(this.encode(label));\n this.tag(\"</\" + labelTagName + \">\");\n this.lineEndingIfNeeded();\n this.tag(\"<ol>\");\n }\n while (++index < calls.length) {\n const id = calls[index];\n const safeId = sanitizeUri(id.toLowerCase());\n let referenceIndex = 0;\n const references = [];\n while (++referenceIndex <= counts[id]) {\n references.push(\n '<a href=\"#' + clobberPrefix + \"fnref-\" + safeId + (referenceIndex > 1 ? \"-\" + referenceIndex : \"\") + '\" data-footnote-backref=\"\" aria-label=\"' + this.encode(\n typeof backLabel === \"string\" ? backLabel : backLabel(index, referenceIndex)\n ) + '\" class=\"data-footnote-backref\">\\u21A9' + (referenceIndex > 1 ? \"<sup>\" + referenceIndex + \"</sup>\" : \"\") + \"</a>\"\n );\n }\n const reference = references.join(\" \");\n let injected = false;\n this.lineEndingIfNeeded();\n this.tag('<li id=\"' + clobberPrefix + \"fn-\" + safeId + '\">');\n this.lineEndingIfNeeded();\n this.tag(\n definitions2[id].replace(\n /<\\/p>(?:\\r?\\n|\\r)?$/,\n ($0) => {\n injected = true;\n return \" \" + reference + $0;\n }\n )\n );\n if (!injected) {\n this.lineEndingIfNeeded();\n this.tag(reference);\n }\n this.lineEndingIfNeeded();\n this.tag(\"</li>\");\n }\n if (calls.length > 0) {\n this.lineEndingIfNeeded();\n this.tag(\"</ol>\");\n this.lineEndingIfNeeded();\n this.tag(\"</section>\");\n }\n }\n }\n };\n}\nconst gfmStrikethroughHtml = {\n enter: {\n strikethrough() {\n this.tag(\"<del>\");\n }\n },\n exit: {\n strikethrough() {\n this.tag(\"</del>\");\n }\n }\n};\nfunction gfmStrikethrough(options) {\n const options_ = options || {};\n let single = options_.singleTilde;\n const tokenizer = {\n tokenize: tokenizeStrikethrough,\n resolveAll: resolveAllStrikethrough\n };\n if (single === null || single === void 0) {\n single = true;\n }\n return {\n text: {\n [126]: tokenizer\n },\n insideSpan: {\n null: [tokenizer]\n },\n attentionMarkers: {\n null: [126]\n }\n };\n function resolveAllStrikethrough(events, context) {\n let index = -1;\n while (++index < events.length) {\n if (events[index][0] === \"enter\" && events[index][1].type === \"strikethroughSequenceTemporary\" && events[index][1]._close) {\n let open = index;\n while (open--) {\n if (events[open][0] === \"exit\" && events[open][1].type === \"strikethroughSequenceTemporary\" && events[open][1]._open && events[index][1].end.offset - events[index][1].start.offset === events[open][1].end.offset - events[open][1].start.offset) {\n events[index][1].type = \"strikethroughSequence\";\n events[open][1].type = \"strikethroughSequence\";\n const strikethrough = {\n type: \"strikethrough\",\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[index][1].end)\n };\n const text2 = {\n type: \"strikethroughText\",\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n };\n const nextEvents = [\n [\"enter\", strikethrough, context],\n [\"enter\", events[open][1], context],\n [\"exit\", events[open][1], context],\n [\"enter\", text2, context]\n ];\n const insideSpan2 = context.parser.constructs.insideSpan.null;\n if (insideSpan2) {\n splice(\n nextEvents,\n nextEvents.length,\n 0,\n resolveAll(insideSpan2, events.slice(open + 1, index), context)\n );\n }\n splice(nextEvents, nextEvents.length, 0, [\n [\"exit\", text2, context],\n [\"enter\", events[index][1], context],\n [\"exit\", events[index][1], context],\n [\"exit\", strikethrough, context]\n ]);\n splice(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - 2;\n break;\n }\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n if (events[index][1].type === \"strikethroughSequenceTemporary\") {\n events[index][1].type = \"data\";\n }\n }\n return events;\n }\n function tokenizeStrikethrough(effects, ok, nok) {\n const previous2 = this.previous;\n const events = this.events;\n let size2 = 0;\n return start;\n function start(code2) {\n if (previous2 === 126 && events[events.length - 1][1].type !== \"characterEscape\") {\n return nok(code2);\n }\n effects.enter(\"strikethroughSequenceTemporary\");\n return more(code2);\n }\n function more(code2) {\n const before = classifyCharacter(previous2);\n if (code2 === 126) {\n if (size2 > 1)\n return nok(code2);\n effects.consume(code2);\n size2++;\n return more;\n }\n if (size2 < 2 && !single)\n return nok(code2);\n const token = effects.exit(\"strikethroughSequenceTemporary\");\n const after = classifyCharacter(code2);\n token._open = !after || after === 2 && Boolean(before);\n token._close = !before || before === 2 && Boolean(after);\n return ok(code2);\n }\n }\n}\nconst alignment = {\n none: \"\",\n left: ' align=\"left\"',\n right: ' align=\"right\"',\n center: ' align=\"center\"'\n};\nconst gfmTableHtml = {\n enter: {\n table(token) {\n const tableAlign = token._align;\n this.lineEndingIfNeeded();\n this.tag(\"<table>\");\n this.setData(\"tableAlign\", tableAlign);\n },\n tableBody() {\n this.tag(\"<tbody>\");\n },\n tableData() {\n const tableAlign = this.getData(\"tableAlign\");\n const tableColumn = this.getData(\"tableColumn\");\n const align = alignment[tableAlign[tableColumn]];\n if (align === void 0) {\n this.buffer();\n } else {\n this.lineEndingIfNeeded();\n this.tag(\"<td\" + align + \">\");\n }\n },\n tableHead() {\n this.lineEndingIfNeeded();\n this.tag(\"<thead>\");\n },\n tableHeader() {\n const tableAlign = this.getData(\"tableAlign\");\n const tableColumn = this.getData(\"tableColumn\");\n const align = alignment[tableAlign[tableColumn]];\n this.lineEndingIfNeeded();\n this.tag(\"<th\" + align + \">\");\n },\n tableRow() {\n this.setData(\"tableColumn\", 0);\n this.lineEndingIfNeeded();\n this.tag(\"<tr>\");\n }\n },\n exit: {\n codeTextData(token) {\n let value = this.sliceSerialize(token);\n if (this.getData(\"tableAlign\")) {\n value = value.replace(/\\\\([\\\\|])/g, replace);\n }\n this.raw(this.encode(value));\n },\n table() {\n this.setData(\"tableAlign\");\n this.setData(\"slurpAllLineEndings\");\n this.lineEndingIfNeeded();\n this.tag(\"</table>\");\n },\n tableBody() {\n this.lineEndingIfNeeded();\n this.tag(\"</tbody>\");\n },\n tableData() {\n const tableAlign = this.getData(\"tableAlign\");\n const tableColumn = this.getData(\"tableColumn\");\n if (tableColumn in tableAlign) {\n this.tag(\"</td>\");\n this.setData(\"tableColumn\", tableColumn + 1);\n } else {\n this.resume();\n }\n },\n tableHead() {\n this.lineEndingIfNeeded();\n this.tag(\"</thead>\");\n },\n tableHeader() {\n const tableColumn = this.getData(\"tableColumn\");\n this.tag(\"</th>\");\n this.setData(\"tableColumn\", tableColumn + 1);\n },\n tableRow() {\n const tableAlign = this.getData(\"tableAlign\");\n let tableColumn = this.getData(\"tableColumn\");\n while (tableColumn < tableAlign.length) {\n this.lineEndingIfNeeded();\n this.tag(\"<td\" + alignment[tableAlign[tableColumn]] + \"></td>\");\n tableColumn++;\n }\n this.setData(\"tableColumn\", tableColumn);\n this.lineEndingIfNeeded();\n this.tag(\"</tr>\");\n }\n }\n};\nfunction replace($0, $1) {\n return $1 === \"|\" ? $1 : $0;\n}\nclass EditMap {\n constructor() {\n this.map = [];\n }\n add(index, remove2, add2) {\n addImpl(this, index, remove2, add2);\n }\n consume(events) {\n this.map.sort((a, b) => a[0] - b[0]);\n if (this.map.length === 0) {\n return;\n }\n let index = this.map.length;\n const vecs = [];\n while (index > 0) {\n index -= 1;\n vecs.push(events.slice(this.map[index][0] + this.map[index][1]));\n vecs.push(this.map[index][2]);\n events.length = this.map[index][0];\n }\n vecs.push([...events]);\n events.length = 0;\n let slice = vecs.pop();\n while (slice) {\n events.push(...slice);\n slice = vecs.pop();\n }\n this.map.length = 0;\n }\n}\nfunction addImpl(editMap, at, remove2, add2) {\n let index = 0;\n if (remove2 === 0 && add2.length === 0) {\n return;\n }\n while (index < editMap.map.length) {\n if (editMap.map[index][0] === at) {\n editMap.map[index][1] += remove2;\n editMap.map[index][2].push(...add2);\n return;\n }\n index += 1;\n }\n editMap.map.push([at, remove2, add2]);\n}\nfunction gfmTableAlign(events, index) {\n let inDelimiterRow = false;\n const align = [];\n while (index < events.length) {\n const event = events[index];\n if (inDelimiterRow) {\n if (event[0] === \"enter\") {\n if (event[1].type === \"tableContent\") {\n align.push(\n events[index + 1][1].type === \"tableDelimiterMarker\" ? \"left\" : \"none\"\n );\n }\n } else if (event[1].type === \"tableContent\") {\n if (events[index - 1][1].type === \"tableDelimiterMarker\") {\n const alignIndex = align.length - 1;\n align[alignIndex] = align[alignIndex] === \"left\" ? \"center\" : \"right\";\n }\n } else if (event[1].type === \"tableDelimiterRow\") {\n break;\n }\n } else if (event[0] === \"enter\" && event[1].type === \"tableDelimiterRow\") {\n inDelimiterRow = true;\n }\n index += 1;\n }\n return align;\n}\nconst gfmTable = {\n flow: {\n null: {\n tokenize: tokenizeTable,\n resolveAll: resolveTable\n }\n }\n};\nfunction tokenizeTable(effects, ok, nok) {\n const self2 = this;\n let size2 = 0;\n let sizeB = 0;\n let seen;\n return start;\n function start(code2) {\n let index = self2.events.length - 1;\n while (index > -1) {\n const type = self2.events[index][1].type;\n if (type === \"lineEnding\" || type === \"linePrefix\")\n index--;\n else\n break;\n }\n const tail = index > -1 ? self2.events[index][1].type : null;\n const next = tail === \"tableHead\" || tail === \"tableRow\" ? bodyRowStart : headRowBefore;\n if (next === bodyRowStart && self2.parser.lazy[self2.now().line]) {\n return nok(code2);\n }\n return next(code2);\n }\n function headRowBefore(code2) {\n effects.enter(\"tableHead\");\n effects.enter(\"tableRow\");\n return headRowStart(code2);\n }\n function headRowStart(code2) {\n if (code2 === 124) {\n return headRowBreak(code2);\n }\n seen = true;\n sizeB += 1;\n return headRowBreak(code2);\n }\n function headRowBreak(code2) {\n if (code2 === null) {\n return nok(code2);\n }\n if (markdownLineEnding(code2)) {\n if (sizeB > 1) {\n sizeB = 0;\n self2.interrupt = true;\n effects.exit(\"tableRow\");\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return headDelimiterStart;\n }\n return nok(code2);\n }\n if (markdownSpace(code2)) {\n return factorySpace(effects, headRowBreak, \"whitespace\")(code2);\n }\n sizeB += 1;\n if (seen) {\n seen = false;\n size2 += 1;\n }\n if (code2 === 124) {\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n seen = true;\n return headRowBreak;\n }\n effects.enter(\"data\");\n return headRowData(code2);\n }\n function headRowData(code2) {\n if (code2 === null || code2 === 124 || markdownLineEndingOrSpace(code2)) {\n effects.exit(\"data\");\n return headRowBreak(code2);\n }\n effects.consume(code2);\n return code2 === 92 ? headRowEscape : headRowData;\n }\n function headRowEscape(code2) {\n if (code2 === 92 || code2 === 124) {\n effects.consume(code2);\n return headRowData;\n }\n return headRowData(code2);\n }\n function headDelimiterStart(code2) {\n self2.interrupt = false;\n if (self2.parser.lazy[self2.now().line]) {\n return nok(code2);\n }\n effects.enter(\"tableDelimiterRow\");\n seen = false;\n if (markdownSpace(code2)) {\n return factorySpace(\n effects,\n headDelimiterBefore,\n \"linePrefix\",\n self2.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4\n )(code2);\n }\n return headDelimiterBefore(code2);\n }\n function headDelimiterBefore(code2) {\n if (code2 === 45 || code2 === 58) {\n return headDelimiterValueBefore(code2);\n }\n if (code2 === 124) {\n seen = true;\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n return headDelimiterCellBefore;\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterCellBefore(code2) {\n if (markdownSpace(code2)) {\n return factorySpace(effects, headDelimiterValueBefore, \"whitespace\")(code2);\n }\n return headDelimiterValueBefore(code2);\n }\n function headDelimiterValueBefore(code2) {\n if (code2 === 58) {\n sizeB += 1;\n seen = true;\n effects.enter(\"tableDelimiterMarker\");\n effects.consume(code2);\n effects.exit(\"tableDelimiterMarker\");\n return headDelimiterLeftAlignmentAfter;\n }\n if (code2 === 45) {\n sizeB += 1;\n return headDelimiterLeftAlignmentAfter(code2);\n }\n if (code2 === null || markdownLineEnding(code2)) {\n return headDelimiterCellAfter(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterLeftAlignmentAfter(code2) {\n if (code2 === 45) {\n effects.enter(\"tableDelimiterFiller\");\n return headDelimiterFiller(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterFiller(code2) {\n if (code2 === 45) {\n effects.consume(code2);\n return headDelimiterFiller;\n }\n if (code2 === 58) {\n seen = true;\n effects.exit(\"tableDelimiterFiller\");\n effects.enter(\"tableDelimiterMarker\");\n effects.consume(code2);\n effects.exit(\"tableDelimiterMarker\");\n return headDelimiterRightAlignmentAfter;\n }\n effects.exit(\"tableDelimiterFiller\");\n return headDelimiterRightAlignmentAfter(code2);\n }\n function headDelimiterRightAlignmentAfter(code2) {\n if (markdownSpace(code2)) {\n return factorySpace(effects, headDelimiterCellAfter, \"whitespace\")(code2);\n }\n return headDelimiterCellAfter(code2);\n }\n function headDelimiterCellAfter(code2) {\n if (code2 === 124) {\n return headDelimiterBefore(code2);\n }\n if (code2 === null || markdownLineEnding(code2)) {\n if (!seen || size2 !== sizeB) {\n return headDelimiterNok(code2);\n }\n effects.exit(\"tableDelimiterRow\");\n effects.exit(\"tableHead\");\n return ok(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterNok(code2) {\n return nok(code2);\n }\n function bodyRowStart(code2) {\n effects.enter(\"tableRow\");\n return bodyRowBreak(code2);\n }\n function bodyRowBreak(code2) {\n if (code2 === 124) {\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n return bodyRowBreak;\n }\n if (code2 === null || markdownLineEnding(code2)) {\n effects.exit(\"tableRow\");\n return ok(code2);\n }\n if (markdownSpace(code2)) {\n return factorySpace(effects, bodyRowBreak, \"whitespace\")(code2);\n }\n effects.enter(\"data\");\n return bodyRowData(code2);\n }\n function bodyRowData(code2) {\n if (code2 === null || code2 === 124 || markdownLineEndingOrSpace(code2)) {\n effects.exit(\"data\");\n return bodyRowBreak(code2);\n }\n effects.consume(code2);\n return code2 === 92 ? bodyRowEscape : bodyRowData;\n }\n function bodyRowEscape(code2) {\n if (code2 === 92 || code2 === 124) {\n effects.consume(code2);\n return bodyRowData;\n }\n return bodyRowData(code2);\n }\n}\nfunction resolveTable(events, context) {\n let index = -1;\n let inFirstCellAwaitingPipe = true;\n let rowKind = 0;\n let lastCell = [0, 0, 0, 0];\n let cell = [0, 0, 0, 0];\n let afterHeadAwaitingFirstBodyRow = false;\n let lastTableEnd = 0;\n let currentTable;\n let currentBody;\n let currentCell;\n const map = new EditMap();\n while (++index < events.length) {\n const event = events[index];\n const token = event[1];\n if (event[0] === \"enter\") {\n if (token.type === \"tableHead\") {\n afterHeadAwaitingFirstBodyRow = false;\n if (lastTableEnd !== 0) {\n flushTableEnd(map, context, lastTableEnd, currentTable, currentBody);\n currentBody = void 0;\n lastTableEnd = 0;\n }\n currentTable = {\n type: \"table\",\n start: Object.assign({}, token.start),\n end: Object.assign({}, token.end)\n };\n map.add(index, 0, [[\"enter\", currentTable, context]]);\n } else if (token.type === \"tableRow\" || token.type === \"tableDelimiterRow\") {\n inFirstCellAwaitingPipe = true;\n currentCell = void 0;\n lastCell = [0, 0, 0, 0];\n cell = [0, index + 1, 0, 0];\n if (afterHeadAwaitingFirstBodyRow) {\n afterHeadAwaitingFirstBodyRow = false;\n currentBody = {\n type: \"tableBody\",\n start: Object.assign({}, token.start),\n end: Object.assign({}, token.end)\n };\n map.add(index, 0, [[\"enter\", currentBody, context]]);\n }\n rowKind = token.type === \"tableDelimiterRow\" ? 2 : currentBody ? 3 : 1;\n } else if (rowKind && (token.type === \"data\" || token.type === \"tableDelimiterMarker\" || token.type === \"tableDelimiterFiller\")) {\n inFirstCellAwaitingPipe = false;\n if (cell[2] === 0) {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(\n map,\n context,\n lastCell,\n rowKind,\n void 0,\n currentCell\n );\n lastCell = [0, 0, 0, 0];\n }\n cell[2] = index;\n }\n } else if (token.type === \"tableCellDivider\") {\n if (inFirstCellAwaitingPipe) {\n inFirstCellAwaitingPipe = false;\n } else {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(\n map,\n context,\n lastCell,\n rowKind,\n void 0,\n currentCell\n );\n }\n lastCell = cell;\n cell = [lastCell[1], index, 0, 0];\n }\n }\n } else if (token.type === \"tableHead\") {\n afterHeadAwaitingFirstBodyRow = true;\n lastTableEnd = index;\n } else if (token.type === \"tableRow\" || token.type === \"tableDelimiterRow\") {\n lastTableEnd = index;\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(\n map,\n context,\n lastCell,\n rowKind,\n index,\n currentCell\n );\n } else if (cell[1] !== 0) {\n currentCell = flushCell(map, context, cell, rowKind, index, currentCell);\n }\n rowKind = 0;\n } else if (rowKind && (token.type === \"data\" || token.type === \"tableDelimiterMarker\" || token.type === \"tableDelimiterFiller\")) {\n cell[3] = index;\n }\n }\n if (lastTableEnd !== 0) {\n flushTableEnd(map, context, lastTableEnd, currentTable, currentBody);\n }\n map.consume(context.events);\n index = -1;\n while (++index < context.events.length) {\n const event = context.events[index];\n if (event[0] === \"enter\" && event[1].type === \"table\") {\n event[1]._align = gfmTableAlign(context.events, index);\n }\n }\n return events;\n}\nfunction flushCell(map, context, range, rowKind, rowEnd, previousCell) {\n const groupName = rowKind === 1 ? \"tableHeader\" : rowKind === 2 ? \"tableDelimiter\" : \"tableData\";\n const valueName = \"tableContent\";\n if (range[0] !== 0) {\n previousCell.end = Object.assign({}, getPoint(context.events, range[0]));\n map.add(range[0], 0, [[\"exit\", previousCell, context]]);\n }\n const now = getPoint(context.events, range[1]);\n previousCell = {\n type: groupName,\n start: Object.assign({}, now),\n end: Object.assign({}, now)\n };\n map.add(range[1], 0, [[\"enter\", previousCell, context]]);\n if (range[2] !== 0) {\n const relatedStart = getPoint(context.events, range[2]);\n const relatedEnd = getPoint(context.events, range[3]);\n const valueToken = {\n type: valueName,\n start: Object.assign({}, relatedStart),\n end: Object.assign({}, relatedEnd)\n };\n map.add(range[2], 0, [[\"enter\", valueToken, context]]);\n if (rowKind !== 2) {\n const start = context.events[range[2]];\n const end = context.events[range[3]];\n start[1].end = Object.assign({}, end[1].end);\n start[1].type = \"chunkText\";\n start[1].contentType = \"text\";\n if (range[3] > range[2] + 1) {\n const a = range[2] + 1;\n const b = range[3] - range[2] - 1;\n map.add(a, b, []);\n }\n }\n map.add(range[3] + 1, 0, [[\"exit\", valueToken, context]]);\n }\n if (rowEnd !== void 0) {\n previousCell.end = Object.assign({}, getPoint(context.events, rowEnd));\n map.add(rowEnd, 0, [[\"exit\", previousCell, context]]);\n previousCell = void 0;\n }\n return previousCell;\n}\nfunction flushTableEnd(map, context, index, table, tableBody) {\n const exits = [];\n const related = getPoint(context.events, index);\n if (tableBody) {\n tableBody.end = Object.assign({}, related);\n exits.push([\"exit\", tableBody, context]);\n }\n table.end = Object.assign({}, related);\n exits.push([\"exit\", table, context]);\n map.add(index + 1, 0, exits);\n}\nfunction getPoint(events, index) {\n const event = events[index];\n const side = event[0] === \"enter\" ? \"start\" : \"end\";\n return event[1][side];\n}\nconst reFlow = /<(\\/?)(iframe|noembed|noframes|plaintext|script|style|title|textarea|xmp)(?=[\\t\\n\\f\\r />])/gi;\nconst reText = new RegExp(\"^\" + reFlow.source, \"i\");\nconst gfmTagfilterHtml = {\n exit: {\n htmlFlowData(token) {\n exitHtmlData.call(this, token, reFlow);\n },\n htmlTextData(token) {\n exitHtmlData.call(this, token, reText);\n }\n }\n};\nfunction exitHtmlData(token, filter) {\n let value = this.sliceSerialize(token);\n if (this.options.allowDangerousHtml) {\n value = value.replace(filter, \"<$1$2\");\n }\n this.raw(this.encode(value));\n}\nconst gfmTaskListItemHtml = {\n enter: {\n taskListCheck() {\n this.tag('<input type=\"checkbox\" disabled=\"\" ');\n }\n },\n exit: {\n taskListCheck() {\n this.tag(\"/>\");\n },\n taskListCheckValueChecked() {\n this.tag('checked=\"\" ');\n }\n }\n};\nconst tasklistCheck = {\n tokenize: tokenizeTasklistCheck\n};\nconst gfmTaskListItem = {\n text: {\n [91]: tasklistCheck\n }\n};\nfunction tokenizeTasklistCheck(effects, ok, nok) {\n const self2 = this;\n return open;\n function open(code2) {\n if (self2.previous !== null || !self2._gfmTasklistFirstContentOfListItem) {\n return nok(code2);\n }\n effects.enter(\"taskListCheck\");\n effects.enter(\"taskListCheckMarker\");\n effects.consume(code2);\n effects.exit(\"taskListCheckMarker\");\n return inside;\n }\n function inside(code2) {\n if (markdownLineEndingOrSpace(code2)) {\n effects.enter(\"taskListCheckValueUnchecked\");\n effects.consume(code2);\n effects.exit(\"taskListCheckValueUnchecked\");\n return close;\n }\n if (code2 === 88 || code2 === 120) {\n effects.enter(\"taskListCheckValueChecked\");\n effects.consume(code2);\n effects.exit(\"taskListCheckValueChecked\");\n return close;\n }\n return nok(code2);\n }\n function close(code2) {\n if (code2 === 93) {\n effects.enter(\"taskListCheckMarker\");\n effects.consume(code2);\n effects.exit(\"taskListCheckMarker\");\n effects.exit(\"taskListCheck\");\n return after;\n }\n return nok(code2);\n }\n function after(code2) {\n if (markdownLineEnding(code2)) {\n return ok(code2);\n }\n if (markdownSpace(code2)) {\n return effects.check(\n {\n tokenize: spaceThenNonSpace\n },\n ok,\n nok\n )(code2);\n }\n return nok(code2);\n }\n}\nfunction spaceThenNonSpace(effects, ok, nok) {\n return factorySpace(effects, after, \"whitespace\");\n function after(code2) {\n return code2 === null ? nok(code2) : ok(code2);\n }\n}\nfunction gfm(options) {\n return combineExtensions([\n gfmAutolinkLiteral,\n gfmFootnote(),\n gfmStrikethrough(options),\n gfmTable,\n gfmTaskListItem\n ]);\n}\nfunction gfmHtml(options) {\n return combineHtmlExtensions([\n gfmAutolinkLiteralHtml,\n gfmFootnoteHtml(options),\n gfmStrikethroughHtml,\n gfmTableHtml,\n gfmTagfilterHtml,\n gfmTaskListItemHtml\n ]);\n}\nconst codes = {\n carriageReturn: -5,\n lineFeed: -4,\n carriageReturnLineFeed: -3,\n horizontalTab: -2,\n virtualSpace: -1,\n eof: null,\n nul: 0,\n soh: 1,\n stx: 2,\n etx: 3,\n eot: 4,\n enq: 5,\n ack: 6,\n bel: 7,\n bs: 8,\n ht: 9,\n lf: 10,\n vt: 11,\n ff: 12,\n cr: 13,\n so: 14,\n si: 15,\n dle: 16,\n dc1: 17,\n dc2: 18,\n dc3: 19,\n dc4: 20,\n nak: 21,\n syn: 22,\n etb: 23,\n can: 24,\n em: 25,\n sub: 26,\n esc: 27,\n fs: 28,\n gs: 29,\n rs: 30,\n us: 31,\n space: 32,\n exclamationMark: 33,\n quotationMark: 34,\n numberSign: 35,\n dollarSign: 36,\n percentSign: 37,\n ampersand: 38,\n apostrophe: 39,\n leftParenthesis: 40,\n rightParenthesis: 41,\n asterisk: 42,\n plusSign: 43,\n comma: 44,\n dash: 45,\n dot: 46,\n slash: 47,\n digit0: 48,\n digit1: 49,\n digit2: 50,\n digit3: 51,\n digit4: 52,\n digit5: 53,\n digit6: 54,\n digit7: 55,\n digit8: 56,\n digit9: 57,\n colon: 58,\n semicolon: 59,\n lessThan: 60,\n equalsTo: 61,\n greaterThan: 62,\n questionMark: 63,\n atSign: 64,\n uppercaseA: 65,\n uppercaseB: 66,\n uppercaseC: 67,\n uppercaseD: 68,\n uppercaseE: 69,\n uppercaseF: 70,\n uppercaseG: 71,\n uppercaseH: 72,\n uppercaseI: 73,\n uppercaseJ: 74,\n uppercaseK: 75,\n uppercaseL: 76,\n uppercaseM: 77,\n uppercaseN: 78,\n uppercaseO: 79,\n uppercaseP: 80,\n uppercaseQ: 81,\n uppercaseR: 82,\n uppercaseS: 83,\n uppercaseT: 84,\n uppercaseU: 85,\n uppercaseV: 86,\n uppercaseW: 87,\n uppercaseX: 88,\n uppercaseY: 89,\n uppercaseZ: 90,\n leftSquareBracket: 91,\n backslash: 92,\n rightSquareBracket: 93,\n caret: 94,\n underscore: 95,\n graveAccent: 96,\n lowercaseA: 97,\n lowercaseB: 98,\n lowercaseC: 99,\n lowercaseD: 100,\n lowercaseE: 101,\n lowercaseF: 102,\n lowercaseG: 103,\n lowercaseH: 104,\n lowercaseI: 105,\n lowercaseJ: 106,\n lowercaseK: 107,\n lowercaseL: 108,\n lowercaseM: 109,\n lowercaseN: 110,\n lowercaseO: 111,\n lowercaseP: 112,\n lowercaseQ: 113,\n lowercaseR: 114,\n lowercaseS: 115,\n lowercaseT: 116,\n lowercaseU: 117,\n lowercaseV: 118,\n lowercaseW: 119,\n lowercaseX: 120,\n lowercaseY: 121,\n lowercaseZ: 122,\n leftCurlyBrace: 123,\n verticalBar: 124,\n rightCurlyBrace: 125,\n tilde: 126,\n del: 127,\n degree: 176,\n byteOrderMarker: 65279,\n replacementCharacter: 65533\n};\nconst underlineTokenize = (effects, ok, nok) => {\n const inside = (code2) => {\n if (code2 === codes.carriageReturn || code2 === codes.lineFeed || code2 === codes.carriageReturnLineFeed || code2 === codes.eof) {\n return nok(code2);\n }\n if (code2 === codes.backslash) {\n effects.consume(code2);\n return insideEscape;\n }\n if (code2 === codes.degree) {\n effects.exit(\"underlineContent\");\n effects.enter(\"underlineMarker\");\n effects.consume(code2);\n effects.exit(\"underlineMarker\");\n effects.exit(\"underline\");\n return ok;\n }\n effects.consume(code2);\n return inside;\n };\n const insideEscape = (code2) => {\n if (code2 === codes.backslash || code2 === codes.degree) {\n effects.consume(code2);\n return inside;\n }\n return inside(code2);\n };\n const begin = (code2) => code2 === codes.degree ? nok(code2) : inside(code2);\n return (code2) => {\n effects.enter(\"underline\");\n effects.enter(\"underlineMarker\");\n effects.consume(code2);\n effects.exit(\"underlineMarker\");\n effects.enter(\"underlineContent\", { contentType: \"string\" });\n return begin;\n };\n};\nconst underlineConstruct = { name: \"underline\", tokenize: underlineTokenize };\nconst underline = { text: { 176: underlineConstruct } };\nconst underlineHtml = {\n enter: {\n underline() {\n this.tag(\"<u>\");\n }\n },\n exit: {\n underline() {\n this.tag(\"</u>\");\n }\n }\n};\nconst usertagTokenize = (effects, ok, nok) => {\n const inside = (code2) => {\n if (code2 === codes.carriageReturn || code2 === codes.lineFeed || code2 === codes.carriageReturnLineFeed || code2 === codes.eof) {\n return nok(code2);\n }\n if (code2 === codes.backslash) {\n effects.consume(code2);\n return insideEscape;\n }\n if (code2 === codes.greaterThan) {\n effects.exit(\"usertagContent\");\n effects.enter(\"usertagMarker\");\n effects.consume(code2);\n effects.exit(\"usertagMarker\");\n effects.exit(\"usertag\");\n return ok;\n }\n effects.consume(code2);\n return inside;\n };\n const insideEscape = (code2) => {\n if (code2 === codes.backslash || code2 === codes.greaterThan) {\n effects.consume(code2);\n return inside;\n }\n return inside(code2);\n };\n const begin = (code2) => {\n if (code2 === codes.atSign) {\n effects.consume(code2);\n effects.exit(\"usertagMarker\");\n effects.enter(\"usertagContent\");\n return inside;\n }\n return nok(code2);\n };\n return (code2) => {\n effects.enter(\"usertag\");\n effects.enter(\"usertagMarker\");\n effects.consume(code2);\n return begin;\n };\n};\nconst usertagConstruct = { name: \"usertag\", tokenize: usertagTokenize };\nconst usertag = { text: { 60: usertagConstruct } };\nconst usertagHtml = (users) => ({\n exit: {\n usertagContent(token) {\n const userId = this.sliceSerialize(token);\n this.tag(`<span class=\"vac-text-tag\" data-user-id=\"${userId}\">`);\n const user = users.find((user2) => user2._id === userId);\n this.raw(`@${this.encode(user ? user.username : userId)}`);\n this.tag(\"</span>\");\n }\n }\n});\nvar markdown = (text2, { textFormatting }) => {\n if (textFormatting) {\n let gfmDisabled = [];\n if (!textFormatting.linkify) {\n gfmDisabled = [\"literalAutolink\", \"literalAutolinkEmail\"];\n }\n const markdown2 = micromark(\n text2.replaceAll(\"<usertag>\", \"<@\").replaceAll(\"</usertag>\", \">\"),\n {\n extensions: [\n {\n ...gfm(),\n disable: { null: gfmDisabled }\n },\n underline,\n usertag\n ],\n htmlExtensions: [\n gfmHtml(),\n underlineHtml,\n usertagHtml(textFormatting.users)\n ]\n }\n );\n if (textFormatting.singleLine) {\n const element2 = document.createElement(\"div\");\n element2.innerHTML = markdown2;\n return [\n {\n types: [],\n value: element2.innerText\n }\n ];\n }\n return [\n {\n types: [\"markdown\"],\n value: markdown2\n }\n ];\n }\n return [\n {\n types: [],\n value: text2\n }\n ];\n};\nconst IMAGE_TYPES = [\"png\", \"jpg\", \"jpeg\", \"webp\", \"svg\", \"gif\"];\nconst VIDEO_TYPES = [\"mp4\", \"video/ogg\", \"webm\", \"quicktime\"];\nconst AUDIO_TYPES = [\"mp3\", \"audio/ogg\", \"wav\", \"mpeg\"];\nconst _sfc_main$n = {\n name: \"FormatMessage\",\n components: { SvgIcon },\n props: {\n messageId: { type: String, default: \"\" },\n roomId: { type: String, default: \"\" },\n roomList: { type: Boolean, default: false },\n content: { type: [String, Number], required: true },\n deleted: { type: Boolean, default: false },\n users: { type: Array, default: () => [] },\n linkify: { type: Boolean, default: true },\n singleLine: { type: Boolean, default: false },\n reply: { type: Boolean, default: false },\n textFormatting: { type: Object, required: true },\n textMessages: { type: Object, default: () => {\n } },\n linkOptions: { type: Object, required: true }\n },\n emits: [\"open-user-tag\"],\n computed: {\n parsedMessage() {\n if (this.deleted) {\n return [{ value: this.textMessages.MESSAGE_DELETED }];\n }\n let options;\n if (!this.textFormatting.disabled) {\n options = {\n textFormatting: {\n linkify: this.linkify,\n linkOptions: this.linkOptions,\n singleLine: this.singleLine,\n reply: this.reply,\n users: this.users,\n ...this.textFormatting\n }\n };\n } else {\n options = {};\n }\n const message = markdown(this.content, options);\n message.forEach((m) => {\n m.markdown = this.checkType(m, \"markdown\");\n m.tag = this.checkType(m, \"tag\");\n m.image = this.checkImageType(m);\n });\n return message;\n }\n },\n methods: {\n checkType(message, type) {\n return message.types && message.types.indexOf(type) !== -1;\n },\n checkImageType(message) {\n let index = message.value.lastIndexOf(\".\");\n const slashIndex = message.value.lastIndexOf(\"/\");\n if (slashIndex > index)\n index = -1;\n const type = message.value.substring(index + 1, message.value.length);\n const isMedia = index > 0 && IMAGE_TYPES.some((t) => type.toLowerCase().includes(t));\n if (isMedia)\n this.setImageSize(message);\n return isMedia;\n },\n setImageSize(message) {\n const image = new Image();\n image.src = message.value;\n image.addEventListener(\"load\", onLoad);\n function onLoad(img) {\n const ratio = img.path[0].width / 150;\n message.height = Math.round(img.path[0].height / ratio) + \"px\";\n image.removeEventListener(\"load\", onLoad);\n }\n },\n openTag(event) {\n const userId = event.target.getAttribute(\"data-user-id\");\n if (!this.singleLine && userId) {\n const user = this.users.find((u) => String(u._id) === userId);\n this.$emit(\"open-user-tag\", user);\n }\n }\n }\n};\nconst _hoisted_1$n = [\"innerHTML\"];\nconst _hoisted_2$k = { class: \"vac-image-link-container\" };\nconst _hoisted_3$h = { class: \"vac-image-link-message\" };\nfunction _sfc_render$n(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"vac-format-message-wrapper\", { \"vac-text-ellipsis\": $props.singleLine }])\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.parsedMessage, (message, i) => {\n return openBlock(), createElementBlock(Fragment, { key: i }, [\n message.markdown ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: \"markdown\",\n onClick: _cache[0] || (_cache[0] = (...args) => $options.openTag && $options.openTag(...args)),\n innerHTML: message.value\n }, null, 8, _hoisted_1$n)) : (openBlock(), createElementBlock(\"div\", {\n key: 1,\n class: normalizeClass([\"vac-format-container\", { \"vac-text-ellipsis\": $props.singleLine }])\n }, [\n (openBlock(), createBlock(resolveDynamicComponent(message.url ? \"a\" : \"span\"), {\n class: normalizeClass({\n \"vac-text-ellipsis\": $props.singleLine,\n \"vac-text-tag\": !$props.singleLine && !$props.reply && message.tag\n }),\n href: message.href,\n target: message.href ? $props.linkOptions.target : null,\n rel: message.href ? $props.linkOptions.rel : null\n }, {\n default: withCtx(() => [\n $props.deleted ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n renderSlot(\n _ctx.$slots,\n $props.roomList ? \"deleted-icon-room_\" + $props.roomId : \"deleted-icon_\" + $props.messageId,\n {},\n () => [\n createVNode(_component_svg_icon, {\n name: \"deleted\",\n class: normalizeClass([\"vac-icon-deleted\", { \"vac-icon-deleted-room\": $props.roomList }])\n }, null, 8, [\"class\"])\n ]\n ),\n createTextVNode(\" \" + toDisplayString($props.textMessages.MESSAGE_DELETED), 1)\n ], 64)) : message.url && message.image ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [\n createBaseVNode(\"div\", _hoisted_2$k, [\n createBaseVNode(\"div\", {\n class: \"vac-image-link\",\n style: normalizeStyle({\n \"background-image\": `url('${message.value}')`,\n height: message.height\n })\n }, null, 4)\n ]),\n createBaseVNode(\"div\", _hoisted_3$h, toDisplayString(message.value), 1)\n ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 2 }, [\n createTextVNode(toDisplayString(message.value), 1)\n ], 64))\n ]),\n _: 2\n }, 1032, [\"class\", \"href\", \"target\", \"rel\"]))\n ], 2))\n ], 64);\n }), 128))\n ], 2);\n}\nvar FormatMessage = /* @__PURE__ */ _export_sfc(_sfc_main$n, [[\"render\", _sfc_render$n]]);\nconst HANDLERS_PROPERTY = \"__v-click-outside\";\nconst HAS_WINDOWS = typeof window !== \"undefined\";\nconst HAS_NAVIGATOR = typeof navigator !== \"undefined\";\nconst IS_TOUCH = HAS_WINDOWS && (\"ontouchstart\" in window || HAS_NAVIGATOR && navigator.msMaxTouchPoints > 0);\nconst EVENTS = IS_TOUCH ? [\"touchstart\"] : [\"click\"];\nconst processDirectiveArguments = (bindingValue) => {\n const isFunction2 = typeof bindingValue === \"function\";\n if (!isFunction2 && typeof bindingValue !== \"object\") {\n throw new Error(\n \"v-click-outside: Binding value must be a function or an object\"\n );\n }\n return {\n handler: isFunction2 ? bindingValue : bindingValue.handler,\n middleware: bindingValue.middleware || ((item) => item),\n events: bindingValue.events || EVENTS,\n isActive: !(bindingValue.isActive === false),\n detectIframe: !(bindingValue.detectIframe === false),\n capture: Boolean(bindingValue.capture)\n };\n};\nconst execHandler = ({ event, handler, middleware }) => {\n if (middleware(event)) {\n handler(event);\n }\n};\nconst onFauxIframeClick = ({ el, event, handler, middleware }) => {\n setTimeout(() => {\n const { activeElement } = document;\n if (activeElement && activeElement.tagName === \"IFRAME\" && !el.contains(activeElement)) {\n execHandler({ event, handler, middleware });\n }\n }, 0);\n};\nconst onEvent = ({ el, event, handler, middleware }) => {\n const path2 = event.path || event.composedPath && event.composedPath();\n const isClickOutside = path2 ? path2.indexOf(el) < 0 : !el.contains(event.target);\n if (!isClickOutside) {\n return;\n }\n execHandler({ event, handler, middleware });\n};\nconst beforeMount = (el, { value }) => {\n const {\n events,\n handler,\n middleware,\n isActive,\n detectIframe,\n capture\n } = processDirectiveArguments(value);\n if (!isActive) {\n return;\n }\n el[HANDLERS_PROPERTY] = events.map((eventName) => ({\n event: eventName,\n srcTarget: document.documentElement,\n handler: (event) => onEvent({ el, event, handler, middleware }),\n capture\n }));\n if (detectIframe) {\n const detectIframeEvent = {\n event: \"blur\",\n srcTarget: window,\n handler: (event) => onFauxIframeClick({ el, event, handler, middleware }),\n capture\n };\n el[HANDLERS_PROPERTY] = [...el[HANDLERS_PROPERTY], detectIframeEvent];\n }\n el[HANDLERS_PROPERTY].forEach(\n ({ event, srcTarget, handler: thisHandler }) => setTimeout(() => {\n if (!el[HANDLERS_PROPERTY]) {\n return;\n }\n srcTarget.addEventListener(event, thisHandler, capture);\n }, 0)\n );\n};\nconst unmounted = (el) => {\n const handlers = el[HANDLERS_PROPERTY] || [];\n handlers.forEach(\n ({ event, srcTarget, handler, capture }) => srcTarget.removeEventListener(event, handler, capture)\n );\n delete el[HANDLERS_PROPERTY];\n};\nconst updated = (el, { value, oldValue }) => {\n if (JSON.stringify(value) === JSON.stringify(oldValue)) {\n return;\n }\n unmounted(el);\n beforeMount(el, { value });\n};\nconst directive = {\n beforeMount,\n updated,\n unmounted\n};\nvar vClickOutside = HAS_WINDOWS ? directive : {};\nvar typingText = (room, currentUserId, textMessages) => {\n if (room.typingUsers && room.typingUsers.length) {\n const typingUsers = room.users.filter((user) => {\n if (user._id === currentUserId)\n return;\n if (room.typingUsers.indexOf(user._id) === -1)\n return;\n if (user.status && user.status.state === \"offline\")\n return;\n return true;\n });\n if (!typingUsers.length)\n return;\n if (room.users.length === 2) {\n return textMessages.IS_TYPING;\n } else {\n return typingUsers.map((user) => user.username).join(\", \") + \" \" + textMessages.IS_TYPING;\n }\n }\n};\nfunction checkMediaType(types, file) {\n if (!file || !file.type)\n return;\n return types.some((t) => file.type.toLowerCase().includes(t));\n}\nfunction isImageFile(file) {\n return checkMediaType(IMAGE_TYPES, file);\n}\nfunction isVideoFile(file) {\n return checkMediaType(VIDEO_TYPES, file);\n}\nfunction isImageVideoFile(file) {\n return checkMediaType(IMAGE_TYPES, file) || checkMediaType(VIDEO_TYPES, file);\n}\nfunction isAudioFile(file) {\n return checkMediaType(AUDIO_TYPES, file);\n}\nconst _sfc_main$m = {\n name: \"RoomsContent\",\n components: {\n SvgIcon,\n FormatMessage\n },\n directives: {\n clickOutside: vClickOutside\n },\n props: {\n currentUserId: { type: [String, Number], required: true },\n room: { type: Object, required: true },\n textFormatting: { type: Object, required: true },\n linkOptions: { type: Object, required: true },\n textMessages: { type: Object, required: true },\n roomActions: { type: Array, required: true }\n },\n emits: [\"room-action-handler\"],\n data() {\n return {\n roomMenuOpened: null\n };\n },\n computed: {\n getLastMessage() {\n const isTyping = this.typingUsers;\n if (isTyping)\n return isTyping;\n const content2 = this.room.lastMessage.content;\n if (this.room.users.length <= 2) {\n return content2;\n }\n const user = this.room.users.find(\n (user2) => user2._id === this.room.lastMessage.senderId\n );\n if (this.room.lastMessage.username) {\n return `${this.room.lastMessage.username} - ${content2}`;\n } else if (!user || user._id === this.currentUserId) {\n return content2;\n }\n return `${user.username} - ${content2}`;\n },\n userStatus() {\n if (!this.room.users || this.room.users.length !== 2)\n return;\n const user = this.room.users.find((u) => u._id !== this.currentUserId);\n if (user && user.status)\n return user.status.state;\n return null;\n },\n typingUsers() {\n return typingText(this.room, this.currentUserId, this.textMessages);\n },\n isMessageCheckmarkVisible() {\n return !this.typingUsers && this.room.lastMessage && !this.room.lastMessage.deleted && this.room.lastMessage.senderId === this.currentUserId && (this.room.lastMessage.saved || this.room.lastMessage.distributed || this.room.lastMessage.seen);\n },\n formattedDuration() {\n var _a, _b;\n const file = (_b = (_a = this.room.lastMessage) == null ? void 0 : _a.files) == null ? void 0 : _b[0];\n if (file) {\n if (!file.duration) {\n return `${file.name}.${file.extension}`;\n }\n let s = Math.floor(file.duration);\n return (s - (s %= 60)) / 60 + (s > 9 ? \":\" : \":0\") + s;\n }\n return \"\";\n },\n isAudio() {\n return this.room.lastMessage.files ? isAudioFile(this.room.lastMessage.files[0]) : false;\n }\n },\n methods: {\n roomActionHandler(action) {\n this.closeRoomMenu();\n this.$emit(\"room-action-handler\", { action, roomId: this.room.roomId });\n },\n closeRoomMenu() {\n this.roomMenuOpened = null;\n }\n }\n};\nconst _hoisted_1$m = { class: \"vac-room-container\" };\nconst _hoisted_2$j = { class: \"vac-name-container vac-text-ellipsis\" };\nconst _hoisted_3$g = { class: \"vac-title-container\" };\nconst _hoisted_4$f = { class: \"vac-room-name vac-text-ellipsis\" };\nconst _hoisted_5$a = {\n key: 1,\n class: \"vac-text-date\"\n};\nconst _hoisted_6$6 = { key: 0 };\nconst _hoisted_7$6 = {\n key: 1,\n class: \"vac-text-ellipsis\"\n};\nconst _hoisted_8$4 = {\n key: 3,\n class: \"vac-text-ellipsis\"\n};\nconst _hoisted_9$4 = { class: \"vac-room-options-container\" };\nconst _hoisted_10$4 = {\n key: 0,\n class: \"vac-badge-counter vac-room-badge\"\n};\nconst _hoisted_11$3 = {\n key: 0,\n class: \"vac-menu-options\"\n};\nconst _hoisted_12$3 = { class: \"vac-menu-list\" };\nconst _hoisted_13$1 = [\"onClick\"];\nfunction _sfc_render$m(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n const _component_format_message = resolveComponent(\"format-message\");\n const _directive_click_outside = resolveDirective(\"click-outside\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$m, [\n renderSlot(_ctx.$slots, \"room-list-item_\" + $props.room.roomId, {}, () => [\n renderSlot(_ctx.$slots, \"room-list-avatar_\" + $props.room.roomId, {}, () => [\n $props.room.avatar ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: \"vac-avatar\",\n style: normalizeStyle({ \"background-image\": `url('${$props.room.avatar}')` })\n }, null, 4)) : createCommentVNode(\"\", true)\n ]),\n createBaseVNode(\"div\", _hoisted_2$j, [\n createBaseVNode(\"div\", _hoisted_3$g, [\n $options.userStatus ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"vac-state-circle\", { \"vac-state-online\": $options.userStatus === \"online\" }])\n }, null, 2)) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"room-list-info_\" + $props.room.roomId, {}, () => [\n createBaseVNode(\"div\", _hoisted_4$f, toDisplayString($props.room.roomName), 1)\n ]),\n $props.room.lastMessage ? (openBlock(), createElementBlock(\"div\", _hoisted_5$a, toDisplayString($props.room.lastMessage.timestamp), 1)) : createCommentVNode(\"\", true)\n ]),\n createBaseVNode(\"div\", {\n class: normalizeClass([\"vac-text-last\", {\n \"vac-message-new\": $props.room.lastMessage && $props.room.lastMessage.new && !$options.typingUsers\n }])\n }, [\n $options.isMessageCheckmarkVisible ? (openBlock(), createElementBlock(\"span\", _hoisted_6$6, [\n renderSlot(_ctx.$slots, \"checkmark-icon_\" + $props.room.roomId, {}, () => [\n createVNode(_component_svg_icon, {\n name: $props.room.lastMessage.distributed ? \"double-checkmark\" : \"checkmark\",\n param: $props.room.lastMessage.seen ? \"seen\" : \"\",\n class: \"vac-icon-check\"\n }, null, 8, [\"name\", \"param\"])\n ])\n ])) : createCommentVNode(\"\", true),\n $props.room.lastMessage && !$props.room.lastMessage.deleted && $options.isAudio ? (openBlock(), createElementBlock(\"div\", _hoisted_7$6, [\n renderSlot(_ctx.$slots, \"microphone-icon_\" + $props.room.roomId, {}, () => [\n createVNode(_component_svg_icon, {\n name: \"microphone\",\n class: \"vac-icon-microphone\"\n })\n ]),\n createTextVNode(\" \" + toDisplayString($options.formattedDuration), 1)\n ])) : $props.room.lastMessage ? (openBlock(), createBlock(_component_format_message, {\n key: 2,\n \"message-id\": $props.room.lastMessage._id,\n \"room-id\": $props.room.roomId,\n \"room-list\": true,\n content: $options.getLastMessage,\n deleted: !!$props.room.lastMessage.deleted && !$options.typingUsers,\n users: $props.room.users,\n \"text-messages\": $props.textMessages,\n linkify: false,\n \"text-formatting\": $props.textFormatting,\n \"link-options\": $props.linkOptions,\n \"single-line\": true\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"message-id\", \"room-id\", \"content\", \"deleted\", \"users\", \"text-messages\", \"text-formatting\", \"link-options\"])) : createCommentVNode(\"\", true),\n !$props.room.lastMessage && $options.typingUsers ? (openBlock(), createElementBlock(\"div\", _hoisted_8$4, toDisplayString($options.typingUsers), 1)) : createCommentVNode(\"\", true),\n createBaseVNode(\"div\", _hoisted_9$4, [\n $props.room.unreadCount ? (openBlock(), createElementBlock(\"div\", _hoisted_10$4, toDisplayString($props.room.unreadCount), 1)) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"room-list-options_\" + $props.room.roomId, {}, () => [\n $props.roomActions.length ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: \"vac-svg-button vac-list-room-options\",\n onClick: _cache[0] || (_cache[0] = withModifiers(($event) => $data.roomMenuOpened = $props.room.roomId, [\"stop\"]))\n }, [\n renderSlot(_ctx.$slots, \"room-list-options-icon_\" + $props.room.roomId, {}, () => [\n createVNode(_component_svg_icon, {\n name: \"dropdown\",\n param: \"room\"\n })\n ])\n ])) : createCommentVNode(\"\", true),\n $props.roomActions.length ? (openBlock(), createBlock(Transition, {\n key: 1,\n name: \"vac-slide-left\"\n }, {\n default: withCtx(() => [\n $data.roomMenuOpened === $props.room.roomId ? withDirectives((openBlock(), createElementBlock(\"div\", _hoisted_11$3, [\n createBaseVNode(\"div\", _hoisted_12$3, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($props.roomActions, (action) => {\n return openBlock(), createElementBlock(\"div\", {\n key: action.name\n }, [\n createBaseVNode(\"div\", {\n class: \"vac-menu-item\",\n onClick: withModifiers(($event) => $options.roomActionHandler(action), [\"stop\"])\n }, toDisplayString(action.title), 9, _hoisted_13$1)\n ]);\n }), 128))\n ])\n ])), [\n [_directive_click_outside, $options.closeRoomMenu]\n ]) : createCommentVNode(\"\", true)\n ]),\n _: 1\n })) : createCommentVNode(\"\", true)\n ])\n ])\n ], 2)\n ])\n ])\n ]);\n}\nvar RoomContent = /* @__PURE__ */ _export_sfc(_sfc_main$m, [[\"render\", _sfc_render$m]]);\nvar filteredItems = (items, prop, val, startsWith = false) => {\n if (!val || val === \"\")\n return items;\n return items.filter((v) => {\n if (startsWith)\n return formatString(v[prop]).startsWith(formatString(val));\n return formatString(v[prop]).includes(formatString(val));\n });\n};\nfunction formatString(string2) {\n return string2.toLowerCase().normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\n}\nconst _sfc_main$l = {\n name: \"RoomsList\",\n components: {\n Loader,\n RoomsSearch,\n RoomContent\n },\n props: {\n currentUserId: { type: [String, Number], required: true },\n textMessages: { type: Object, required: true },\n showRoomsList: { type: Boolean, required: true },\n showSearch: { type: Boolean, required: true },\n showAddRoom: { type: Boolean, required: true },\n textFormatting: { type: Object, required: true },\n linkOptions: { type: Object, required: true },\n isMobile: { type: Boolean, required: true },\n rooms: { type: Array, required: true },\n loadingRooms: { type: Boolean, required: true },\n roomsLoaded: { type: Boolean, required: true },\n room: { type: Object, required: true },\n customSearchRoomEnabled: { type: [Boolean, String], default: false },\n roomActions: { type: Array, required: true },\n scrollDistance: { type: Number, required: true }\n },\n emits: [\n \"add-room\",\n \"search-room\",\n \"room-action-handler\",\n \"loading-more-rooms\",\n \"fetch-room\",\n \"fetch-more-rooms\"\n ],\n data() {\n return {\n filteredRooms: this.rooms || [],\n observer: null,\n showLoader: true,\n loadingMoreRooms: false,\n selectedRoomId: \"\"\n };\n },\n watch: {\n rooms: {\n deep: true,\n handler(newVal, oldVal) {\n this.filteredRooms = newVal;\n if (newVal.length !== oldVal.length || this.roomsLoaded) {\n this.loadingMoreRooms = false;\n }\n }\n },\n loadingRooms(val) {\n if (!val) {\n setTimeout(() => this.initIntersectionObserver());\n }\n },\n loadingMoreRooms(val) {\n this.$emit(\"loading-more-rooms\", val);\n },\n roomsLoaded: {\n immediate: true,\n handler(val) {\n if (val) {\n this.loadingMoreRooms = false;\n if (!this.loadingRooms) {\n this.showLoader = false;\n }\n }\n }\n },\n room: {\n immediate: true,\n handler(val) {\n if (val && !this.isMobile)\n this.selectedRoomId = val.roomId;\n }\n }\n },\n methods: {\n initIntersectionObserver() {\n if (this.observer) {\n this.showLoader = true;\n this.observer.disconnect();\n }\n const loader = this.$el.querySelector(\"#infinite-loader-rooms\");\n if (loader) {\n const options = {\n root: this.$el.querySelector(\"#rooms-list\"),\n rootMargin: `${this.scrollDistance}px`,\n threshold: 0\n };\n this.observer = new IntersectionObserver((entries) => {\n if (entries[0].isIntersecting) {\n this.loadMoreRooms();\n }\n }, options);\n this.observer.observe(loader);\n }\n },\n searchRoom(ev) {\n if (this.customSearchRoomEnabled) {\n this.$emit(\"search-room\", ev.target.value);\n } else {\n this.filteredRooms = filteredItems(\n this.rooms,\n \"roomName\",\n ev.target.value\n );\n }\n },\n openRoom(room) {\n if (room.roomId === this.room.roomId && !this.isMobile)\n return;\n if (!this.isMobile)\n this.selectedRoomId = room.roomId;\n this.$emit(\"fetch-room\", { room });\n },\n loadMoreRooms() {\n if (this.loadingMoreRooms)\n return;\n if (this.roomsLoaded) {\n this.loadingMoreRooms = false;\n this.showLoader = false;\n return;\n }\n this.$emit(\"fetch-more-rooms\");\n this.loadingMoreRooms = true;\n }\n }\n};\nconst _hoisted_1$l = {\n key: 0,\n class: \"vac-rooms-empty\"\n};\nconst _hoisted_2$i = {\n key: 1,\n id: \"rooms-list\",\n class: \"vac-room-list\"\n};\nconst _hoisted_3$f = [\"id\", \"onClick\"];\nconst _hoisted_4$e = {\n key: 0,\n id: \"infinite-loader-rooms\"\n};\nfunction _sfc_render$l(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_rooms_search = resolveComponent(\"rooms-search\");\n const _component_loader = resolveComponent(\"loader\");\n const _component_room_content = resolveComponent(\"room-content\");\n return withDirectives((openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"vac-rooms-container\", {\n \"vac-rooms-container-full\": $props.isMobile,\n \"vac-app-border-r\": !$props.isMobile\n }])\n }, [\n renderSlot(_ctx.$slots, \"rooms-header\"),\n renderSlot(_ctx.$slots, \"rooms-list-search\", {}, () => [\n createVNode(_component_rooms_search, {\n rooms: $props.rooms,\n \"loading-rooms\": $props.loadingRooms,\n \"text-messages\": $props.textMessages,\n \"show-search\": $props.showSearch,\n \"show-add-room\": $props.showAddRoom,\n onSearchRoom: $options.searchRoom,\n onAddRoom: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"add-room\"))\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"rooms\", \"loading-rooms\", \"text-messages\", \"show-search\", \"show-add-room\", \"onSearchRoom\"])\n ]),\n createVNode(_component_loader, {\n show: $props.loadingRooms,\n type: \"rooms\"\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"show\"]),\n !$props.loadingRooms && !$props.rooms.length ? (openBlock(), createElementBlock(\"div\", _hoisted_1$l, [\n renderSlot(_ctx.$slots, \"rooms-empty\", {}, () => [\n createTextVNode(toDisplayString($props.textMessages.ROOMS_EMPTY), 1)\n ])\n ])) : createCommentVNode(\"\", true),\n !$props.loadingRooms ? (openBlock(), createElementBlock(\"div\", _hoisted_2$i, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($data.filteredRooms, (fRoom) => {\n return openBlock(), createElementBlock(\"div\", {\n id: fRoom.roomId,\n key: fRoom.roomId,\n class: normalizeClass([\"vac-room-item\", { \"vac-room-selected\": $data.selectedRoomId === fRoom.roomId }]),\n onClick: ($event) => $options.openRoom(fRoom)\n }, [\n createVNode(_component_room_content, {\n \"current-user-id\": $props.currentUserId,\n room: fRoom,\n \"text-formatting\": $props.textFormatting,\n \"link-options\": $props.linkOptions,\n \"text-messages\": $props.textMessages,\n \"room-actions\": $props.roomActions,\n onRoomActionHandler: _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"room-action-handler\", $event))\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"current-user-id\", \"room\", \"text-formatting\", \"link-options\", \"text-messages\", \"room-actions\"])\n ], 10, _hoisted_3$f);\n }), 128)),\n createVNode(Transition, { name: \"vac-fade-message\" }, {\n default: withCtx(() => [\n $props.rooms.length && !$props.loadingRooms ? (openBlock(), createElementBlock(\"div\", _hoisted_4$e, [\n createVNode(_component_loader, {\n show: $data.showLoader,\n infinite: true,\n type: \"infinite-rooms\"\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"show\"])\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 3\n })\n ])) : createCommentVNode(\"\", true)\n ], 2)), [\n [vShow, $props.showRoomsList]\n ]);\n}\nvar RoomsList = /* @__PURE__ */ _export_sfc(_sfc_main$l, [[\"render\", _sfc_render$l]]);\nconst _sfc_main$k = {\n name: \"RoomHeader\",\n components: {\n SvgIcon\n },\n directives: {\n clickOutside: vClickOutside\n },\n props: {\n currentUserId: { type: [String, Number], required: true },\n textMessages: { type: Object, required: true },\n singleRoom: { type: Boolean, required: true },\n showRoomsList: { type: Boolean, required: true },\n isMobile: { type: Boolean, required: true },\n roomInfoEnabled: { type: Boolean, required: true },\n menuActions: { type: Array, required: true },\n room: { type: Object, required: true },\n messageSelectionEnabled: { type: Boolean, required: true },\n messageSelectionActions: { type: Array, required: true },\n selectedMessagesTotal: { type: Number, required: true }\n },\n emits: [\n \"toggle-rooms-list\",\n \"room-info\",\n \"menu-action-handler\",\n \"cancel-message-selection\",\n \"message-selection-action-handler\"\n ],\n data() {\n return {\n menuOpened: false,\n messageSelectionAnimationEnded: true\n };\n },\n computed: {\n typingUsers() {\n return typingText(this.room, this.currentUserId, this.textMessages);\n },\n userStatus() {\n if (!this.room.users || this.room.users.length !== 2)\n return;\n const user = this.room.users.find((u) => u._id !== this.currentUserId);\n if (!(user == null ? void 0 : user.status))\n return;\n let text2 = \"\";\n if (user.status.state === \"online\") {\n text2 = this.textMessages.IS_ONLINE;\n } else if (user.status.lastChanged) {\n text2 = this.textMessages.LAST_SEEN + user.status.lastChanged;\n }\n return text2;\n }\n },\n watch: {\n messageSelectionEnabled(val) {\n if (val) {\n this.messageSelectionAnimationEnded = false;\n } else {\n setTimeout(() => {\n this.messageSelectionAnimationEnded = true;\n }, 300);\n }\n }\n },\n methods: {\n menuActionHandler(action) {\n this.closeMenu();\n this.$emit(\"menu-action-handler\", action);\n },\n closeMenu() {\n this.menuOpened = false;\n },\n messageSelectionActionHandler(action) {\n this.$emit(\"message-selection-action-handler\", action);\n }\n }\n};\nconst _hoisted_1$k = { class: \"vac-room-header vac-app-border-b\" };\nconst _hoisted_2$h = { class: \"vac-room-wrapper\" };\nconst _hoisted_3$e = {\n key: 0,\n class: \"vac-room-selection\"\n};\nconst _hoisted_4$d = [\"id\"];\nconst _hoisted_5$9 = [\"onClick\"];\nconst _hoisted_6$5 = { class: \"vac-selection-button-count\" };\nconst _hoisted_7$5 = { class: \"vac-text-ellipsis\" };\nconst _hoisted_8$3 = { class: \"vac-room-name vac-text-ellipsis\" };\nconst _hoisted_9$3 = {\n key: 0,\n class: \"vac-room-info vac-text-ellipsis\"\n};\nconst _hoisted_10$3 = {\n key: 1,\n class: \"vac-room-info vac-text-ellipsis\"\n};\nconst _hoisted_11$2 = {\n key: 0,\n class: \"vac-menu-options\"\n};\nconst _hoisted_12$2 = { class: \"vac-menu-list\" };\nconst _hoisted_13 = [\"onClick\"];\nfunction _sfc_render$k(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n const _directive_click_outside = resolveDirective(\"click-outside\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$k, [\n renderSlot(_ctx.$slots, \"room-header\", {}, () => [\n createBaseVNode(\"div\", _hoisted_2$h, [\n createVNode(Transition, { name: \"vac-slide-up\" }, {\n default: withCtx(() => [\n $props.messageSelectionEnabled ? (openBlock(), createElementBlock(\"div\", _hoisted_3$e, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($props.messageSelectionActions, (action) => {\n return openBlock(), createElementBlock(\"div\", {\n id: action.name,\n key: action.name\n }, [\n createBaseVNode(\"div\", {\n class: \"vac-selection-button\",\n onClick: ($event) => $options.messageSelectionActionHandler(action)\n }, [\n createTextVNode(toDisplayString(action.title) + \" \", 1),\n createBaseVNode(\"span\", _hoisted_6$5, toDisplayString($props.selectedMessagesTotal), 1)\n ], 8, _hoisted_5$9)\n ], 8, _hoisted_4$d);\n }), 128)),\n createBaseVNode(\"div\", {\n class: \"vac-selection-cancel vac-item-clickable\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"cancel-message-selection\"))\n }, toDisplayString($props.textMessages.CANCEL_SELECT_MESSAGE), 1)\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n !$props.messageSelectionEnabled && $data.messageSelectionAnimationEnded ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n !$props.singleRoom ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"vac-svg-button vac-toggle-button\", {\n \"vac-rotate-icon-init\": !$props.isMobile,\n \"vac-rotate-icon\": !$props.showRoomsList && !$props.isMobile\n }]),\n onClick: _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"toggle-rooms-list\"))\n }, [\n renderSlot(_ctx.$slots, \"toggle-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"toggle\" })\n ])\n ], 2)) : createCommentVNode(\"\", true),\n createBaseVNode(\"div\", {\n class: normalizeClass([\"vac-info-wrapper\", { \"vac-item-clickable\": $props.roomInfoEnabled }]),\n onClick: _cache[2] || (_cache[2] = ($event) => _ctx.$emit(\"room-info\"))\n }, [\n renderSlot(_ctx.$slots, \"room-header-avatar\", {}, () => [\n $props.room.avatar ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: \"vac-avatar\",\n style: normalizeStyle({ \"background-image\": `url('${$props.room.avatar}')` })\n }, null, 4)) : createCommentVNode(\"\", true)\n ]),\n renderSlot(_ctx.$slots, \"room-header-info\", {}, () => [\n createBaseVNode(\"div\", _hoisted_7$5, [\n createBaseVNode(\"div\", _hoisted_8$3, toDisplayString($props.room.roomName), 1),\n $options.typingUsers ? (openBlock(), createElementBlock(\"div\", _hoisted_9$3, toDisplayString($options.typingUsers), 1)) : (openBlock(), createElementBlock(\"div\", _hoisted_10$3, toDisplayString($options.userStatus), 1))\n ])\n ])\n ], 2),\n $props.room.roomId ? renderSlot(_ctx.$slots, \"room-options\", { key: 1 }, () => [\n $props.menuActions.length ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: \"vac-svg-button vac-room-options\",\n onClick: _cache[3] || (_cache[3] = ($event) => $data.menuOpened = !$data.menuOpened)\n }, [\n renderSlot(_ctx.$slots, \"menu-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"menu\" })\n ])\n ])) : createCommentVNode(\"\", true),\n $props.menuActions.length ? (openBlock(), createBlock(Transition, {\n key: 1,\n name: \"vac-slide-left\"\n }, {\n default: withCtx(() => [\n $data.menuOpened ? withDirectives((openBlock(), createElementBlock(\"div\", _hoisted_11$2, [\n createBaseVNode(\"div\", _hoisted_12$2, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($props.menuActions, (action) => {\n return openBlock(), createElementBlock(\"div\", {\n key: action.name\n }, [\n createBaseVNode(\"div\", {\n class: \"vac-menu-item\",\n onClick: ($event) => $options.menuActionHandler(action)\n }, toDisplayString(action.title), 9, _hoisted_13)\n ]);\n }), 128))\n ])\n ])), [\n [_directive_click_outside, $options.closeMenu]\n ]) : createCommentVNode(\"\", true)\n ]),\n _: 1\n })) : createCommentVNode(\"\", true)\n ]) : createCommentVNode(\"\", true)\n ], 64)) : createCommentVNode(\"\", true)\n ])\n ])\n ]);\n}\nvar RoomHeader = /* @__PURE__ */ _export_sfc(_sfc_main$k, [[\"render\", _sfc_render$k]]);\nfunction assertNonEmptyString(str) {\n if (typeof str !== \"string\" || !str) {\n throw new Error(\"expected a non-empty string, got: \" + str);\n }\n}\nfunction assertNumber(number) {\n if (typeof number !== \"number\") {\n throw new Error(\"expected a number, got: \" + number);\n }\n}\nconst DB_VERSION_CURRENT = 1;\nconst DB_VERSION_INITIAL = 1;\nconst STORE_EMOJI = \"emoji\";\nconst STORE_KEYVALUE = \"keyvalue\";\nconst STORE_FAVORITES = \"favorites\";\nconst FIELD_TOKENS = \"tokens\";\nconst INDEX_TOKENS = \"tokens\";\nconst FIELD_UNICODE = \"unicode\";\nconst INDEX_COUNT = \"count\";\nconst FIELD_GROUP = \"group\";\nconst FIELD_ORDER = \"order\";\nconst INDEX_GROUP_AND_ORDER = \"group-order\";\nconst KEY_ETAG = \"eTag\";\nconst KEY_URL = \"url\";\nconst KEY_PREFERRED_SKINTONE = \"skinTone\";\nconst MODE_READONLY = \"readonly\";\nconst MODE_READWRITE = \"readwrite\";\nconst INDEX_SKIN_UNICODE = \"skinUnicodes\";\nconst FIELD_SKIN_UNICODE = \"skinUnicodes\";\nconst DEFAULT_DATA_SOURCE$1 = \"https://cdn.jsdelivr.net/npm/emoji-picker-element-data@^1/en/emojibase/data.json\";\nconst DEFAULT_LOCALE$1 = \"en\";\nfunction uniqBy$1(arr, func) {\n const set2 = /* @__PURE__ */ new Set();\n const res = [];\n for (const item of arr) {\n const key = func(item);\n if (!set2.has(key)) {\n set2.add(key);\n res.push(item);\n }\n }\n return res;\n}\nfunction uniqEmoji(emojis) {\n return uniqBy$1(emojis, (_) => _.unicode);\n}\nfunction initialMigration(db) {\n function createObjectStore(name, keyPath, indexes) {\n const store = keyPath ? db.createObjectStore(name, { keyPath }) : db.createObjectStore(name);\n if (indexes) {\n for (const [indexName, [keyPath2, multiEntry]] of Object.entries(indexes)) {\n store.createIndex(indexName, keyPath2, { multiEntry });\n }\n }\n return store;\n }\n createObjectStore(STORE_KEYVALUE);\n createObjectStore(STORE_EMOJI, FIELD_UNICODE, {\n [INDEX_TOKENS]: [FIELD_TOKENS, true],\n [INDEX_GROUP_AND_ORDER]: [[FIELD_GROUP, FIELD_ORDER]],\n [INDEX_SKIN_UNICODE]: [FIELD_SKIN_UNICODE, true]\n });\n createObjectStore(STORE_FAVORITES, void 0, {\n [INDEX_COUNT]: [\"\"]\n });\n}\nconst openReqs = {};\nconst databaseCache = {};\nconst onCloseListeners = {};\nfunction handleOpenOrDeleteReq(resolve2, reject, req) {\n req.onerror = () => reject(req.error);\n req.onblocked = () => reject(new Error(\"IDB blocked\"));\n req.onsuccess = () => resolve2(req.result);\n}\nasync function createDatabase(dbName) {\n const db = await new Promise((resolve2, reject) => {\n const req = indexedDB.open(dbName, DB_VERSION_CURRENT);\n openReqs[dbName] = req;\n req.onupgradeneeded = (e) => {\n if (e.oldVersion < DB_VERSION_INITIAL) {\n initialMigration(req.result);\n }\n };\n handleOpenOrDeleteReq(resolve2, reject, req);\n });\n db.onclose = () => closeDatabase(dbName);\n return db;\n}\nfunction openDatabase(dbName) {\n if (!databaseCache[dbName]) {\n databaseCache[dbName] = createDatabase(dbName);\n }\n return databaseCache[dbName];\n}\nfunction dbPromise(db, storeName, readOnlyOrReadWrite, cb) {\n return new Promise((resolve2, reject) => {\n const txn = db.transaction(storeName, readOnlyOrReadWrite, { durability: \"relaxed\" });\n const store = typeof storeName === \"string\" ? txn.objectStore(storeName) : storeName.map((name) => txn.objectStore(name));\n let res;\n cb(store, txn, (result) => {\n res = result;\n });\n txn.oncomplete = () => resolve2(res);\n txn.onerror = () => reject(txn.error);\n });\n}\nfunction closeDatabase(dbName) {\n const req = openReqs[dbName];\n const db = req && req.result;\n if (db) {\n db.close();\n const listeners = onCloseListeners[dbName];\n if (listeners) {\n for (const listener of listeners) {\n listener();\n }\n }\n }\n delete openReqs[dbName];\n delete databaseCache[dbName];\n delete onCloseListeners[dbName];\n}\nfunction deleteDatabase(dbName) {\n return new Promise((resolve2, reject) => {\n closeDatabase(dbName);\n const req = indexedDB.deleteDatabase(dbName);\n handleOpenOrDeleteReq(resolve2, reject, req);\n });\n}\nfunction addOnCloseListener(dbName, listener) {\n let listeners = onCloseListeners[dbName];\n if (!listeners) {\n listeners = onCloseListeners[dbName] = [];\n }\n listeners.push(listener);\n}\nconst irregularEmoticons = /* @__PURE__ */ new Set([\n \":D\",\n \"XD\",\n \":'D\",\n \"O:)\",\n \":X\",\n \":P\",\n \";P\",\n \"XP\",\n \":L\",\n \":Z\",\n \":j\",\n \"8D\",\n \"XO\",\n \"8)\",\n \":B\",\n \":O\",\n \":S\",\n \":'o\",\n \"Dx\",\n \"X(\",\n \"D:\",\n \":C\",\n \">0)\",\n \":3\",\n \"</3\",\n \"<3\",\n \"\\\\M/\",\n \":E\",\n \"8#\"\n]);\nfunction extractTokens(str) {\n return str.split(/[\\s_]+/).map((word) => {\n if (!word.match(/\\w/) || irregularEmoticons.has(word)) {\n return word.toLowerCase();\n }\n return word.replace(/[)(:,]/g, \"\").replace(/’/g, \"'\").toLowerCase();\n }).filter(Boolean);\n}\nconst MIN_SEARCH_TEXT_LENGTH$1 = 2;\nfunction normalizeTokens(str) {\n return str.filter(Boolean).map((_) => _.toLowerCase()).filter((_) => _.length >= MIN_SEARCH_TEXT_LENGTH$1);\n}\nfunction transformEmojiData(emojiData) {\n const res = emojiData.map(({ annotation, emoticon, group, order, shortcodes, skins, tags, emoji, version: version2 }) => {\n const tokens = [...new Set(\n normalizeTokens([\n ...(shortcodes || []).map(extractTokens).flat(),\n ...tags.map(extractTokens).flat(),\n ...extractTokens(annotation),\n emoticon\n ])\n )].sort();\n const res2 = {\n annotation,\n group,\n order,\n tags,\n tokens,\n unicode: emoji,\n version: version2\n };\n if (emoticon) {\n res2.emoticon = emoticon;\n }\n if (shortcodes) {\n res2.shortcodes = shortcodes;\n }\n if (skins) {\n res2.skinTones = [];\n res2.skinUnicodes = [];\n res2.skinVersions = [];\n for (const { tone, emoji: emoji2, version: version3 } of skins) {\n res2.skinTones.push(tone);\n res2.skinUnicodes.push(emoji2);\n res2.skinVersions.push(version3);\n }\n }\n return res2;\n });\n return res;\n}\nfunction callStore(store, method, key, cb) {\n store[method](key).onsuccess = (e) => cb && cb(e.target.result);\n}\nfunction getIDB(store, key, cb) {\n callStore(store, \"get\", key, cb);\n}\nfunction getAllIDB(store, key, cb) {\n callStore(store, \"getAll\", key, cb);\n}\nfunction commit(txn) {\n if (txn.commit) {\n txn.commit();\n }\n}\nfunction minBy(array, func) {\n let minItem = array[0];\n for (let i = 1; i < array.length; i++) {\n const item = array[i];\n if (func(minItem) > func(item)) {\n minItem = item;\n }\n }\n return minItem;\n}\nfunction findCommonMembers(arrays, uniqByFunc) {\n const shortestArray = minBy(arrays, (_) => _.length);\n const results = [];\n for (const item of shortestArray) {\n if (!arrays.some((array) => array.findIndex((_) => uniqByFunc(_) === uniqByFunc(item)) === -1)) {\n results.push(item);\n }\n }\n return results;\n}\nasync function isEmpty(db) {\n return !await get(db, STORE_KEYVALUE, KEY_URL);\n}\nasync function hasData(db, url, eTag) {\n const [oldETag, oldUrl] = await Promise.all([KEY_ETAG, KEY_URL].map((key) => get(db, STORE_KEYVALUE, key)));\n return oldETag === eTag && oldUrl === url;\n}\nasync function doFullDatabaseScanForSingleResult(db, predicate) {\n const BATCH_SIZE = 50;\n return dbPromise(db, STORE_EMOJI, MODE_READONLY, (emojiStore, txn, cb) => {\n let lastKey;\n const processNextBatch = () => {\n emojiStore.getAll(lastKey && IDBKeyRange.lowerBound(lastKey, true), BATCH_SIZE).onsuccess = (e) => {\n const results = e.target.result;\n for (const result of results) {\n lastKey = result.unicode;\n if (predicate(result)) {\n return cb(result);\n }\n }\n if (results.length < BATCH_SIZE) {\n return cb();\n }\n processNextBatch();\n };\n };\n processNextBatch();\n });\n}\nasync function loadData(db, emojiData, url, eTag) {\n try {\n const transformedData = transformEmojiData(emojiData);\n await dbPromise(db, [STORE_EMOJI, STORE_KEYVALUE], MODE_READWRITE, ([emojiStore, metaStore], txn) => {\n let oldETag;\n let oldUrl;\n let todo = 0;\n function checkFetched() {\n if (++todo === 2) {\n onFetched();\n }\n }\n function onFetched() {\n if (oldETag === eTag && oldUrl === url) {\n return;\n }\n emojiStore.clear();\n for (const data of transformedData) {\n emojiStore.put(data);\n }\n metaStore.put(eTag, KEY_ETAG);\n metaStore.put(url, KEY_URL);\n commit(txn);\n }\n getIDB(metaStore, KEY_ETAG, (result) => {\n oldETag = result;\n checkFetched();\n });\n getIDB(metaStore, KEY_URL, (result) => {\n oldUrl = result;\n checkFetched();\n });\n });\n } finally {\n }\n}\nasync function getEmojiByGroup(db, group) {\n return dbPromise(db, STORE_EMOJI, MODE_READONLY, (emojiStore, txn, cb) => {\n const range = IDBKeyRange.bound([group, 0], [group + 1, 0], false, true);\n getAllIDB(emojiStore.index(INDEX_GROUP_AND_ORDER), range, cb);\n });\n}\nasync function getEmojiBySearchQuery(db, query) {\n const tokens = normalizeTokens(extractTokens(query));\n if (!tokens.length) {\n return [];\n }\n return dbPromise(db, STORE_EMOJI, MODE_READONLY, (emojiStore, txn, cb) => {\n const intermediateResults = [];\n const checkDone = () => {\n if (intermediateResults.length === tokens.length) {\n onDone();\n }\n };\n const onDone = () => {\n const results = findCommonMembers(intermediateResults, (_) => _.unicode);\n cb(results.sort((a, b) => a.order < b.order ? -1 : 1));\n };\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n const range = i === tokens.length - 1 ? IDBKeyRange.bound(token, token + \"\\uFFFF\", false, true) : IDBKeyRange.only(token);\n getAllIDB(emojiStore.index(INDEX_TOKENS), range, (result) => {\n intermediateResults.push(result);\n checkDone();\n });\n }\n });\n}\nasync function getEmojiByShortcode(db, shortcode) {\n const emojis = await getEmojiBySearchQuery(db, shortcode);\n if (!emojis.length) {\n const predicate = (_) => (_.shortcodes || []).includes(shortcode.toLowerCase());\n return await doFullDatabaseScanForSingleResult(db, predicate) || null;\n }\n return emojis.filter((_) => {\n const lowerShortcodes = (_.shortcodes || []).map((_2) => _2.toLowerCase());\n return lowerShortcodes.includes(shortcode.toLowerCase());\n })[0] || null;\n}\nasync function getEmojiByUnicode(db, unicode) {\n return dbPromise(db, STORE_EMOJI, MODE_READONLY, (emojiStore, txn, cb) => getIDB(emojiStore, unicode, (result) => {\n if (result) {\n return cb(result);\n }\n getIDB(emojiStore.index(INDEX_SKIN_UNICODE), unicode, (result2) => cb(result2 || null));\n }));\n}\nfunction get(db, storeName, key) {\n return dbPromise(db, storeName, MODE_READONLY, (store, txn, cb) => getIDB(store, key, cb));\n}\nfunction set(db, storeName, key, value) {\n return dbPromise(db, storeName, MODE_READWRITE, (store, txn) => {\n store.put(value, key);\n commit(txn);\n });\n}\nfunction incrementFavoriteEmojiCount(db, unicode) {\n return dbPromise(db, STORE_FAVORITES, MODE_READWRITE, (store, txn) => getIDB(store, unicode, (result) => {\n store.put((result || 0) + 1, unicode);\n commit(txn);\n }));\n}\nfunction getTopFavoriteEmoji(db, customEmojiIndex2, limit) {\n if (limit === 0) {\n return [];\n }\n return dbPromise(db, [STORE_FAVORITES, STORE_EMOJI], MODE_READONLY, ([favoritesStore, emojiStore], txn, cb) => {\n const results = [];\n favoritesStore.index(INDEX_COUNT).openCursor(void 0, \"prev\").onsuccess = (e) => {\n const cursor = e.target.result;\n if (!cursor) {\n return cb(results);\n }\n function addResult(result) {\n results.push(result);\n if (results.length === limit) {\n return cb(results);\n }\n cursor.continue();\n }\n const unicodeOrName = cursor.primaryKey;\n const custom = customEmojiIndex2.byName(unicodeOrName);\n if (custom) {\n return addResult(custom);\n }\n getIDB(emojiStore, unicodeOrName, (emoji) => {\n if (emoji) {\n return addResult(emoji);\n }\n cursor.continue();\n });\n };\n });\n}\nconst CODA_MARKER = \"\";\nfunction trie(arr, itemToTokens) {\n const map = /* @__PURE__ */ new Map();\n for (const item of arr) {\n const tokens = itemToTokens(item);\n for (const token of tokens) {\n let currentMap = map;\n for (let i = 0; i < token.length; i++) {\n const char = token.charAt(i);\n let nextMap = currentMap.get(char);\n if (!nextMap) {\n nextMap = /* @__PURE__ */ new Map();\n currentMap.set(char, nextMap);\n }\n currentMap = nextMap;\n }\n let valuesAtCoda = currentMap.get(CODA_MARKER);\n if (!valuesAtCoda) {\n valuesAtCoda = [];\n currentMap.set(CODA_MARKER, valuesAtCoda);\n }\n valuesAtCoda.push(item);\n }\n }\n const search2 = (query, exact) => {\n let currentMap = map;\n for (let i = 0; i < query.length; i++) {\n const char = query.charAt(i);\n const nextMap = currentMap.get(char);\n if (nextMap) {\n currentMap = nextMap;\n } else {\n return [];\n }\n }\n if (exact) {\n const results2 = currentMap.get(CODA_MARKER);\n return results2 || [];\n }\n const results = [];\n const queue2 = [currentMap];\n while (queue2.length) {\n const currentMap2 = queue2.shift();\n const entriesSortedByKey = [...currentMap2.entries()].sort((a, b) => a[0] < b[0] ? -1 : 1);\n for (const [key, value] of entriesSortedByKey) {\n if (key === CODA_MARKER) {\n results.push(...value);\n } else {\n queue2.push(value);\n }\n }\n }\n return results;\n };\n return search2;\n}\nconst requiredKeys$1 = [\n \"name\",\n \"url\"\n];\nfunction assertCustomEmojis(customEmojis) {\n const isArray2 = customEmojis && Array.isArray(customEmojis);\n const firstItemIsFaulty = isArray2 && customEmojis.length && (!customEmojis[0] || requiredKeys$1.some((key) => !(key in customEmojis[0])));\n if (!isArray2 || firstItemIsFaulty) {\n throw new Error(\"Custom emojis are in the wrong format\");\n }\n}\nfunction customEmojiIndex(customEmojis) {\n assertCustomEmojis(customEmojis);\n const sortByName = (a, b) => a.name.toLowerCase() < b.name.toLowerCase() ? -1 : 1;\n const all = customEmojis.sort(sortByName);\n const emojiToTokens = (emoji) => [...new Set((emoji.shortcodes || []).map((shortcode) => extractTokens(shortcode)).flat())];\n const searchTrie = trie(customEmojis, emojiToTokens);\n const searchByExactMatch = (_) => searchTrie(_, true);\n const searchByPrefix = (_) => searchTrie(_, false);\n const search2 = (query) => {\n const tokens = extractTokens(query);\n const intermediateResults = tokens.map((token, i) => (i < tokens.length - 1 ? searchByExactMatch : searchByPrefix)(token));\n return findCommonMembers(intermediateResults, (_) => _.name).sort(sortByName);\n };\n const shortcodeToEmoji = /* @__PURE__ */ new Map();\n const nameToEmoji = /* @__PURE__ */ new Map();\n for (const customEmoji of customEmojis) {\n nameToEmoji.set(customEmoji.name.toLowerCase(), customEmoji);\n for (const shortcode of customEmoji.shortcodes || []) {\n shortcodeToEmoji.set(shortcode.toLowerCase(), customEmoji);\n }\n }\n const byShortcode = (shortcode) => shortcodeToEmoji.get(shortcode.toLowerCase());\n const byName = (name) => nameToEmoji.get(name.toLowerCase());\n return {\n all,\n search: search2,\n byShortcode,\n byName\n };\n}\nfunction cleanEmoji(emoji) {\n if (!emoji) {\n return emoji;\n }\n delete emoji.tokens;\n if (emoji.skinTones) {\n const len = emoji.skinTones.length;\n emoji.skins = Array(len);\n for (let i = 0; i < len; i++) {\n emoji.skins[i] = {\n tone: emoji.skinTones[i],\n unicode: emoji.skinUnicodes[i],\n version: emoji.skinVersions[i]\n };\n }\n delete emoji.skinTones;\n delete emoji.skinUnicodes;\n delete emoji.skinVersions;\n }\n return emoji;\n}\nfunction warnETag(eTag) {\n if (!eTag) {\n console.warn(\"emoji-picker-element is more efficient if the dataSource server exposes an ETag header.\");\n }\n}\nconst requiredKeys = [\n \"annotation\",\n \"emoji\",\n \"group\",\n \"order\",\n \"tags\",\n \"version\"\n];\nfunction assertEmojiData(emojiData) {\n if (!emojiData || !Array.isArray(emojiData) || !emojiData[0] || typeof emojiData[0] !== \"object\" || requiredKeys.some((key) => !(key in emojiData[0]))) {\n throw new Error(\"Emoji data is in the wrong format\");\n }\n}\nfunction assertStatus(response, dataSource) {\n if (Math.floor(response.status / 100) !== 2) {\n throw new Error(\"Failed to fetch: \" + dataSource + \": \" + response.status);\n }\n}\nasync function getETag(dataSource) {\n const response = await fetch(dataSource, { method: \"HEAD\" });\n assertStatus(response, dataSource);\n const eTag = response.headers.get(\"etag\");\n warnETag(eTag);\n return eTag;\n}\nasync function getETagAndData(dataSource) {\n const response = await fetch(dataSource);\n assertStatus(response, dataSource);\n const eTag = response.headers.get(\"etag\");\n warnETag(eTag);\n const emojiData = await response.json();\n assertEmojiData(emojiData);\n return [eTag, emojiData];\n}\nfunction arrayBufferToBinaryString(buffer) {\n var binary = \"\";\n var bytes = new Uint8Array(buffer);\n var length = bytes.byteLength;\n var i = -1;\n while (++i < length) {\n binary += String.fromCharCode(bytes[i]);\n }\n return binary;\n}\nfunction binaryStringToArrayBuffer(binary) {\n var length = binary.length;\n var buf = new ArrayBuffer(length);\n var arr = new Uint8Array(buf);\n var i = -1;\n while (++i < length) {\n arr[i] = binary.charCodeAt(i);\n }\n return buf;\n}\nasync function jsonChecksum(object) {\n const inString = JSON.stringify(object);\n const inBuffer = binaryStringToArrayBuffer(inString);\n const outBuffer = await crypto.subtle.digest(\"SHA-1\", inBuffer);\n const outBinString = arrayBufferToBinaryString(outBuffer);\n const res = btoa(outBinString);\n return res;\n}\nasync function checkForUpdates(db, dataSource) {\n let emojiData;\n let eTag = await getETag(dataSource);\n if (!eTag) {\n const eTagAndData = await getETagAndData(dataSource);\n eTag = eTagAndData[0];\n emojiData = eTagAndData[1];\n if (!eTag) {\n eTag = await jsonChecksum(emojiData);\n }\n }\n if (await hasData(db, dataSource, eTag))\n ;\n else {\n if (!emojiData) {\n const eTagAndData = await getETagAndData(dataSource);\n emojiData = eTagAndData[1];\n }\n await loadData(db, emojiData, dataSource, eTag);\n }\n}\nasync function loadDataForFirstTime(db, dataSource) {\n let [eTag, emojiData] = await getETagAndData(dataSource);\n if (!eTag) {\n eTag = await jsonChecksum(emojiData);\n }\n await loadData(db, emojiData, dataSource, eTag);\n}\nclass Database {\n constructor({ dataSource = DEFAULT_DATA_SOURCE$1, locale = DEFAULT_LOCALE$1, customEmoji = [] } = {}) {\n this.dataSource = dataSource;\n this.locale = locale;\n this._dbName = `emoji-picker-element-${this.locale}`;\n this._db = void 0;\n this._lazyUpdate = void 0;\n this._custom = customEmojiIndex(customEmoji);\n this._clear = this._clear.bind(this);\n this._ready = this._init();\n }\n async _init() {\n const db = this._db = await openDatabase(this._dbName);\n addOnCloseListener(this._dbName, this._clear);\n const dataSource = this.dataSource;\n const empty = await isEmpty(db);\n if (empty) {\n await loadDataForFirstTime(db, dataSource);\n } else {\n this._lazyUpdate = checkForUpdates(db, dataSource);\n }\n }\n async ready() {\n const checkReady = async () => {\n if (!this._ready) {\n this._ready = this._init();\n }\n return this._ready;\n };\n await checkReady();\n if (!this._db) {\n await checkReady();\n }\n }\n async getEmojiByGroup(group) {\n assertNumber(group);\n await this.ready();\n return uniqEmoji(await getEmojiByGroup(this._db, group)).map(cleanEmoji);\n }\n async getEmojiBySearchQuery(query) {\n assertNonEmptyString(query);\n await this.ready();\n const customs = this._custom.search(query);\n const natives = uniqEmoji(await getEmojiBySearchQuery(this._db, query)).map(cleanEmoji);\n return [\n ...customs,\n ...natives\n ];\n }\n async getEmojiByShortcode(shortcode) {\n assertNonEmptyString(shortcode);\n await this.ready();\n const custom = this._custom.byShortcode(shortcode);\n if (custom) {\n return custom;\n }\n return cleanEmoji(await getEmojiByShortcode(this._db, shortcode));\n }\n async getEmojiByUnicodeOrName(unicodeOrName) {\n assertNonEmptyString(unicodeOrName);\n await this.ready();\n const custom = this._custom.byName(unicodeOrName);\n if (custom) {\n return custom;\n }\n return cleanEmoji(await getEmojiByUnicode(this._db, unicodeOrName));\n }\n async getPreferredSkinTone() {\n await this.ready();\n return await get(this._db, STORE_KEYVALUE, KEY_PREFERRED_SKINTONE) || 0;\n }\n async setPreferredSkinTone(skinTone) {\n assertNumber(skinTone);\n await this.ready();\n return set(this._db, STORE_KEYVALUE, KEY_PREFERRED_SKINTONE, skinTone);\n }\n async incrementFavoriteEmojiCount(unicodeOrName) {\n assertNonEmptyString(unicodeOrName);\n await this.ready();\n return incrementFavoriteEmojiCount(this._db, unicodeOrName);\n }\n async getTopFavoriteEmoji(limit) {\n assertNumber(limit);\n await this.ready();\n return (await getTopFavoriteEmoji(this._db, this._custom, limit)).map(cleanEmoji);\n }\n set customEmoji(customEmojis) {\n this._custom = customEmojiIndex(customEmojis);\n }\n get customEmoji() {\n return this._custom.all;\n }\n async _shutdown() {\n await this.ready();\n try {\n await this._lazyUpdate;\n } catch (err) {\n }\n }\n _clear() {\n this._db = this._ready = this._lazyUpdate = void 0;\n }\n async close() {\n await this._shutdown();\n await closeDatabase(this._dbName);\n }\n async delete() {\n await this._shutdown();\n await deleteDatabase(this._dbName);\n }\n}\nfunction noop() {\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return /* @__PURE__ */ Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === \"function\";\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || (a && typeof a === \"object\" || typeof a === \"function\");\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement(\"a\");\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction detach(node) {\n node.parentNode.removeChild(node);\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_data(text2, data) {\n data = \"\" + data;\n if (text2.wholeText !== data)\n text2.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? \"\" : value;\n}\nfunction set_style(node, key, value, important) {\n if (value === null) {\n node.style.removeProperty(key);\n } else {\n node.style.setProperty(key, value, important ? \"important\" : \"\");\n }\n}\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nconst dirty_components = [];\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nconst seen_callbacks = /* @__PURE__ */ new Set();\nlet flushidx = 0;\nfunction flush() {\n const saved_component = current_component;\n do {\n while (flushidx < dirty_components.length) {\n const component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n seen_callbacks.clear();\n set_current_component(saved_component);\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\nconst outroing = /* @__PURE__ */ new Set();\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nconst globals = typeof window !== \"undefined\" ? window : typeof globalThis !== \"undefined\" ? globalThis : global;\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list2, lookup, node, destroy, create_each_block2, next, get_context) {\n let o = old_blocks.length;\n let n = list2.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = /* @__PURE__ */ new Map();\n const deltas = /* @__PURE__ */ new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list2, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block2(key, child_ctx);\n block.c();\n } else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = /* @__PURE__ */ new Set();\n const did_move = /* @__PURE__ */ new Set();\n function insert2(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n next = new_block.first;\n o--;\n n--;\n } else if (!new_lookup.has(old_key)) {\n destroy(old_block, lookup);\n o--;\n } else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert2(new_block);\n } else if (did_move.has(old_key)) {\n o--;\n } else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert2(new_block);\n } else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert2(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, on_mount, on_destroy, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n add_render_callback(() => {\n const new_on_destroy = on_mount.map(run).filter(is_function);\n if (on_destroy) {\n on_destroy.push(...new_on_destroy);\n } else {\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[i / 31 | 0] |= 1 << i % 31;\n}\nfunction init(component, options, instance2, create_fragment2, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: null,\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(parent_component ? parent_component.$$.context : []),\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance2 ? instance2(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n }) : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n $$.fragment = create_fragment2 ? create_fragment2($$.ctx) : false;\n if (options.target) {\n {\n $$.fragment && $$.fragment.c();\n }\n mount_component(component, options.target, void 0, void 0);\n flush();\n }\n set_current_component(parent_component);\n}\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = this.$$.callbacks[type] || (this.$$.callbacks[type] = []);\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\nconst allGroups = [\n [-1, \"\\u2728\", \"custom\"],\n [0, \"\\u{1F600}\", \"smileys-emotion\"],\n [1, \"\\u{1F44B}\", \"people-body\"],\n [3, \"\\u{1F431}\", \"animals-nature\"],\n [4, \"\\u{1F34E}\", \"food-drink\"],\n [5, \"\\u{1F3E0}\\uFE0F\", \"travel-places\"],\n [6, \"\\u26BD\", \"activities\"],\n [7, \"\\u{1F4DD}\", \"objects\"],\n [8, \"\\u26D4\\uFE0F\", \"symbols\"],\n [9, \"\\u{1F3C1}\", \"flags\"]\n].map(([id, emoji, name]) => ({ id, emoji, name }));\nconst groups = allGroups.slice(1);\nconst customGroup = allGroups[0];\nconst MIN_SEARCH_TEXT_LENGTH = 2;\nconst NUM_SKIN_TONES = 6;\nconst rIC = typeof requestIdleCallback === \"function\" ? requestIdleCallback : setTimeout;\nfunction hasZwj(emoji) {\n return emoji.unicode.includes(\"\\u200D\");\n}\nconst versionsAndTestEmoji = {\n \"\\u{1FAE0}\": 14,\n \"\\u{1F972}\": 13.1,\n \"\\u{1F97B}\": 12.1,\n \"\\u{1F970}\": 11,\n \"\\u{1F929}\": 5,\n \"\\u{1F471}\\u200D\\u2640\\uFE0F\": 4,\n \"\\u{1F923}\": 3,\n \"\\u{1F441}\\uFE0F\\u200D\\u{1F5E8}\\uFE0F\": 2,\n \"\\u{1F600}\": 1,\n \"\\u{1F610}\\uFE0F\": 0.7,\n \"\\u{1F603}\": 0.6\n};\nconst TIMEOUT_BEFORE_LOADING_MESSAGE = 1e3;\nconst DEFAULT_SKIN_TONE_EMOJI = \"\\u{1F590}\\uFE0F\";\nconst DEFAULT_NUM_COLUMNS = 8;\nconst MOST_COMMONLY_USED_EMOJI = [\n \"\\u{1F60A}\",\n \"\\u{1F612}\",\n \"\\u2665\\uFE0F\",\n \"\\u{1F44D}\\uFE0F\",\n \"\\u{1F60D}\",\n \"\\u{1F602}\",\n \"\\u{1F62D}\",\n \"\\u263A\\uFE0F\",\n \"\\u{1F614}\",\n \"\\u{1F629}\",\n \"\\u{1F60F}\",\n \"\\u{1F495}\",\n \"\\u{1F64C}\",\n \"\\u{1F618}\"\n];\nconst FONT_FAMILY = '\"Twemoji Mozilla\",\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\",\"EmojiOne Color\",\"Android Emoji\",sans-serif';\nconst DEFAULT_CATEGORY_SORTING = (a, b) => a < b ? -1 : a > b ? 1 : 0;\nconst getTextFeature = (text2, color) => {\n const canvas = document.createElement(\"canvas\");\n canvas.width = canvas.height = 1;\n const ctx = canvas.getContext(\"2d\");\n ctx.textBaseline = \"top\";\n ctx.font = `100px ${FONT_FAMILY}`;\n ctx.fillStyle = color;\n ctx.scale(0.01, 0.01);\n ctx.fillText(text2, 0, 0);\n return ctx.getImageData(0, 0, 1, 1).data;\n};\nconst compareFeatures = (feature1, feature2) => {\n const feature1Str = [...feature1].join(\",\");\n const feature2Str = [...feature2].join(\",\");\n return feature1Str === feature2Str && !feature1Str.startsWith(\"0,0,0,\");\n};\nfunction testColorEmojiSupported(text2) {\n const feature1 = getTextFeature(text2, \"#000\");\n const feature2 = getTextFeature(text2, \"#fff\");\n return feature1 && feature2 && compareFeatures(feature1, feature2);\n}\nfunction determineEmojiSupportLevel() {\n const entries = Object.entries(versionsAndTestEmoji);\n try {\n for (const [emoji, version2] of entries) {\n if (testColorEmojiSupported(emoji)) {\n return version2;\n }\n }\n } catch (e) {\n } finally {\n }\n return entries[0][1];\n}\nconst emojiSupportLevelPromise = new Promise((resolve2) => rIC(() => resolve2(determineEmojiSupportLevel())));\nconst supportedZwjEmojis = /* @__PURE__ */ new Map();\nconst VARIATION_SELECTOR = \"\\uFE0F\";\nconst SKINTONE_MODIFIER = \"\\uD83C\";\nconst ZWJ = \"\\u200D\";\nconst LIGHT_SKIN_TONE = 127995;\nconst LIGHT_SKIN_TONE_MODIFIER = 57339;\nfunction applySkinTone(str, skinTone) {\n if (skinTone === 0) {\n return str;\n }\n const zwjIndex = str.indexOf(ZWJ);\n if (zwjIndex !== -1) {\n return str.substring(0, zwjIndex) + String.fromCodePoint(LIGHT_SKIN_TONE + skinTone - 1) + str.substring(zwjIndex);\n }\n if (str.endsWith(VARIATION_SELECTOR)) {\n str = str.substring(0, str.length - 1);\n }\n return str + SKINTONE_MODIFIER + String.fromCodePoint(LIGHT_SKIN_TONE_MODIFIER + skinTone - 1);\n}\nfunction halt(event) {\n event.preventDefault();\n event.stopPropagation();\n}\nfunction incrementOrDecrement(decrement, val, arr) {\n val += decrement ? -1 : 1;\n if (val < 0) {\n val = arr.length - 1;\n } else if (val >= arr.length) {\n val = 0;\n }\n return val;\n}\nfunction uniqBy(arr, func) {\n const set2 = /* @__PURE__ */ new Set();\n const res = [];\n for (const item of arr) {\n const key = func(item);\n if (!set2.has(key)) {\n set2.add(key);\n res.push(item);\n }\n }\n return res;\n}\nfunction summarizeEmojisForUI(emojis, emojiSupportLevel) {\n const toSimpleSkinsMap = (skins) => {\n const res = {};\n for (const skin of skins) {\n if (typeof skin.tone === \"number\" && skin.version <= emojiSupportLevel) {\n res[skin.tone] = skin.unicode;\n }\n }\n return res;\n };\n return emojis.map(({ unicode, skins, shortcodes, url, name, category }) => ({\n unicode,\n name,\n shortcodes,\n url,\n category,\n id: unicode || name,\n skins: skins && toSimpleSkinsMap(skins),\n title: (shortcodes || []).join(\", \")\n }));\n}\nconst rAF = requestAnimationFrame;\nlet resizeObserverSupported = typeof ResizeObserver === \"function\";\nfunction calculateWidth(node, onUpdate) {\n let resizeObserver;\n if (resizeObserverSupported) {\n resizeObserver = new ResizeObserver((entries) => onUpdate(entries[0].contentRect.width));\n resizeObserver.observe(node);\n } else {\n rAF(() => onUpdate(node.getBoundingClientRect().width));\n }\n return {\n destroy() {\n if (resizeObserver) {\n resizeObserver.disconnect();\n }\n }\n };\n}\nfunction calculateTextWidth(node) {\n {\n const range = document.createRange();\n range.selectNode(node.firstChild);\n return range.getBoundingClientRect().width;\n }\n}\nlet baselineEmojiWidth;\nfunction checkZwjSupport(zwjEmojisToCheck, baselineEmoji, emojiToDomNode) {\n for (const emoji of zwjEmojisToCheck) {\n const domNode = emojiToDomNode(emoji);\n const emojiWidth = calculateTextWidth(domNode);\n if (typeof baselineEmojiWidth === \"undefined\") {\n baselineEmojiWidth = calculateTextWidth(baselineEmoji);\n }\n const supported = emojiWidth / 1.8 < baselineEmojiWidth;\n supportedZwjEmojis.set(emoji.unicode, supported);\n }\n}\nfunction uniq(arr) {\n return uniqBy(arr, (_) => _);\n}\nconst { Map: Map_1 } = globals;\nfunction get_each_context(ctx, list2, i) {\n const child_ctx = ctx.slice();\n child_ctx[63] = list2[i];\n child_ctx[65] = i;\n return child_ctx;\n}\nfunction get_each_context_1(ctx, list2, i) {\n const child_ctx = ctx.slice();\n child_ctx[66] = list2[i];\n child_ctx[65] = i;\n return child_ctx;\n}\nfunction get_each_context_2(ctx, list2, i) {\n const child_ctx = ctx.slice();\n child_ctx[63] = list2[i];\n child_ctx[65] = i;\n return child_ctx;\n}\nfunction get_each_context_3(ctx, list2, i) {\n const child_ctx = ctx.slice();\n child_ctx[69] = list2[i];\n return child_ctx;\n}\nfunction get_each_context_4(ctx, list2, i) {\n const child_ctx = ctx.slice();\n child_ctx[72] = list2[i];\n child_ctx[65] = i;\n return child_ctx;\n}\nfunction create_each_block_4(key_1, ctx) {\n let div;\n let t_value = ctx[72] + \"\";\n let t;\n let div_id_value;\n let div_class_value;\n let div_aria_selected_value;\n let div_title_value;\n let div_aria_label_value;\n return {\n key: key_1,\n first: null,\n c() {\n div = element(\"div\");\n t = text(t_value);\n attr(div, \"id\", div_id_value = \"skintone-\" + ctx[65]);\n attr(div, \"class\", div_class_value = \"emoji hide-focus \" + (ctx[65] === ctx[20] ? \"active\" : \"\"));\n attr(div, \"aria-selected\", div_aria_selected_value = ctx[65] === ctx[20]);\n attr(div, \"role\", \"option\");\n attr(div, \"title\", div_title_value = ctx[0].skinTones[ctx[65]]);\n attr(div, \"tabindex\", \"-1\");\n attr(div, \"aria-label\", div_aria_label_value = ctx[0].skinTones[ctx[65]]);\n this.first = div;\n },\n m(target, anchor) {\n insert(target, div, anchor);\n append(div, t);\n },\n p(new_ctx, dirty) {\n ctx = new_ctx;\n if (dirty[0] & 512 && t_value !== (t_value = ctx[72] + \"\"))\n set_data(t, t_value);\n if (dirty[0] & 512 && div_id_value !== (div_id_value = \"skintone-\" + ctx[65])) {\n attr(div, \"id\", div_id_value);\n }\n if (dirty[0] & 1049088 && div_class_value !== (div_class_value = \"emoji hide-focus \" + (ctx[65] === ctx[20] ? \"active\" : \"\"))) {\n attr(div, \"class\", div_class_value);\n }\n if (dirty[0] & 1049088 && div_aria_selected_value !== (div_aria_selected_value = ctx[65] === ctx[20])) {\n attr(div, \"aria-selected\", div_aria_selected_value);\n }\n if (dirty[0] & 513 && div_title_value !== (div_title_value = ctx[0].skinTones[ctx[65]])) {\n attr(div, \"title\", div_title_value);\n }\n if (dirty[0] & 513 && div_aria_label_value !== (div_aria_label_value = ctx[0].skinTones[ctx[65]])) {\n attr(div, \"aria-label\", div_aria_label_value);\n }\n },\n d(detaching) {\n if (detaching)\n detach(div);\n }\n };\n}\nfunction create_each_block_3(key_1, ctx) {\n let button;\n let div;\n let t_value = ctx[69].emoji + \"\";\n let t;\n let button_aria_controls_value;\n let button_aria_label_value;\n let button_aria_selected_value;\n let button_title_value;\n let mounted;\n let dispose;\n function click_handler() {\n return ctx[49](ctx[69]);\n }\n return {\n key: key_1,\n first: null,\n c() {\n button = element(\"button\");\n div = element(\"div\");\n t = text(t_value);\n attr(div, \"class\", \"nav-emoji emoji\");\n attr(button, \"role\", \"tab\");\n attr(button, \"class\", \"nav-button\");\n attr(button, \"aria-controls\", button_aria_controls_value = \"tab-\" + ctx[69].id);\n attr(button, \"aria-label\", button_aria_label_value = ctx[0].categories[ctx[69].name]);\n attr(button, \"aria-selected\", button_aria_selected_value = !ctx[4] && ctx[13].id === ctx[69].id);\n attr(button, \"title\", button_title_value = ctx[0].categories[ctx[69].name]);\n this.first = button;\n },\n m(target, anchor) {\n insert(target, button, anchor);\n append(button, div);\n append(div, t);\n if (!mounted) {\n dispose = listen(button, \"click\", click_handler);\n mounted = true;\n }\n },\n p(new_ctx, dirty) {\n ctx = new_ctx;\n if (dirty[0] & 4096 && t_value !== (t_value = ctx[69].emoji + \"\"))\n set_data(t, t_value);\n if (dirty[0] & 4096 && button_aria_controls_value !== (button_aria_controls_value = \"tab-\" + ctx[69].id)) {\n attr(button, \"aria-controls\", button_aria_controls_value);\n }\n if (dirty[0] & 4097 && button_aria_label_value !== (button_aria_label_value = ctx[0].categories[ctx[69].name])) {\n attr(button, \"aria-label\", button_aria_label_value);\n }\n if (dirty[0] & 12304 && button_aria_selected_value !== (button_aria_selected_value = !ctx[4] && ctx[13].id === ctx[69].id)) {\n attr(button, \"aria-selected\", button_aria_selected_value);\n }\n if (dirty[0] & 4097 && button_title_value !== (button_title_value = ctx[0].categories[ctx[69].name])) {\n attr(button, \"title\", button_title_value);\n }\n },\n d(detaching) {\n if (detaching)\n detach(button);\n mounted = false;\n dispose();\n }\n };\n}\nfunction create_else_block_1(ctx) {\n let img;\n let img_src_value;\n return {\n c() {\n img = element(\"img\");\n attr(img, \"class\", \"custom-emoji\");\n if (!src_url_equal(img.src, img_src_value = ctx[63].url))\n attr(img, \"src\", img_src_value);\n attr(img, \"alt\", \"\");\n attr(img, \"loading\", \"lazy\");\n },\n m(target, anchor) {\n insert(target, img, anchor);\n },\n p(ctx2, dirty) {\n if (dirty[0] & 32768 && !src_url_equal(img.src, img_src_value = ctx2[63].url)) {\n attr(img, \"src\", img_src_value);\n }\n },\n d(detaching) {\n if (detaching)\n detach(img);\n }\n };\n}\nfunction create_if_block_1(ctx) {\n let t_value = ctx[27](ctx[63], ctx[8]) + \"\";\n let t;\n return {\n c() {\n t = text(t_value);\n },\n m(target, anchor) {\n insert(target, t, anchor);\n },\n p(ctx2, dirty) {\n if (dirty[0] & 33024 && t_value !== (t_value = ctx2[27](ctx2[63], ctx2[8]) + \"\"))\n set_data(t, t_value);\n },\n d(detaching) {\n if (detaching)\n detach(t);\n }\n };\n}\nfunction create_each_block_2(key_1, ctx) {\n let button;\n let button_role_value;\n let button_aria_selected_value;\n let button_aria_label_value;\n let button_title_value;\n let button_class_value;\n let button_id_value;\n function select_block_type(ctx2, dirty) {\n if (ctx2[63].unicode)\n return create_if_block_1;\n return create_else_block_1;\n }\n let current_block_type = select_block_type(ctx);\n let if_block = current_block_type(ctx);\n return {\n key: key_1,\n first: null,\n c() {\n button = element(\"button\");\n if_block.c();\n attr(button, \"role\", button_role_value = ctx[4] ? \"option\" : \"menuitem\");\n attr(button, \"aria-selected\", button_aria_selected_value = ctx[4] ? ctx[65] == ctx[5] : \"\");\n attr(button, \"aria-label\", button_aria_label_value = ctx[28](ctx[63], ctx[8]));\n attr(button, \"title\", button_title_value = ctx[63].title);\n attr(button, \"class\", button_class_value = \"emoji \" + (ctx[4] && ctx[65] === ctx[5] ? \"active\" : \"\"));\n attr(button, \"id\", button_id_value = \"emo-\" + ctx[63].id);\n this.first = button;\n },\n m(target, anchor) {\n insert(target, button, anchor);\n if_block.m(button, null);\n },\n p(new_ctx, dirty) {\n ctx = new_ctx;\n if (current_block_type === (current_block_type = select_block_type(ctx)) && if_block) {\n if_block.p(ctx, dirty);\n } else {\n if_block.d(1);\n if_block = current_block_type(ctx);\n if (if_block) {\n if_block.c();\n if_block.m(button, null);\n }\n }\n if (dirty[0] & 16 && button_role_value !== (button_role_value = ctx[4] ? \"option\" : \"menuitem\")) {\n attr(button, \"role\", button_role_value);\n }\n if (dirty[0] & 32816 && button_aria_selected_value !== (button_aria_selected_value = ctx[4] ? ctx[65] == ctx[5] : \"\")) {\n attr(button, \"aria-selected\", button_aria_selected_value);\n }\n if (dirty[0] & 33024 && button_aria_label_value !== (button_aria_label_value = ctx[28](ctx[63], ctx[8]))) {\n attr(button, \"aria-label\", button_aria_label_value);\n }\n if (dirty[0] & 32768 && button_title_value !== (button_title_value = ctx[63].title)) {\n attr(button, \"title\", button_title_value);\n }\n if (dirty[0] & 32816 && button_class_value !== (button_class_value = \"emoji \" + (ctx[4] && ctx[65] === ctx[5] ? \"active\" : \"\"))) {\n attr(button, \"class\", button_class_value);\n }\n if (dirty[0] & 32768 && button_id_value !== (button_id_value = \"emo-\" + ctx[63].id)) {\n attr(button, \"id\", button_id_value);\n }\n },\n d(detaching) {\n if (detaching)\n detach(button);\n if_block.d();\n }\n };\n}\nfunction create_each_block_1(key_1, ctx) {\n let div0;\n let t_value = (ctx[4] ? ctx[0].searchResultsLabel : ctx[66].category ? ctx[66].category : ctx[15].length > 1 ? ctx[0].categories.custom : ctx[0].categories[ctx[13].name]) + \"\";\n let t;\n let div0_id_value;\n let div0_class_value;\n let div1;\n let each_blocks = [];\n let each_1_lookup = new Map_1();\n let div1_role_value;\n let div1_aria_labelledby_value;\n let div1_id_value;\n let each_value_2 = ctx[66].emojis;\n const get_key = (ctx2) => ctx2[63].id;\n for (let i = 0; i < each_value_2.length; i += 1) {\n let child_ctx = get_each_context_2(ctx, each_value_2, i);\n let key = get_key(child_ctx);\n each_1_lookup.set(key, each_blocks[i] = create_each_block_2(key, child_ctx));\n }\n return {\n key: key_1,\n first: null,\n c() {\n div0 = element(\"div\");\n t = text(t_value);\n div1 = element(\"div\");\n for (let i = 0; i < each_blocks.length; i += 1) {\n each_blocks[i].c();\n }\n attr(div0, \"id\", div0_id_value = \"menu-label-\" + ctx[65]);\n attr(div0, \"class\", div0_class_value = \"category \" + (ctx[15].length === 1 && ctx[15][0].category === \"\" ? \"gone\" : \"\"));\n attr(div0, \"aria-hidden\", \"true\");\n attr(div1, \"class\", \"emoji-menu\");\n attr(div1, \"role\", div1_role_value = ctx[4] ? \"listbox\" : \"menu\");\n attr(div1, \"aria-labelledby\", div1_aria_labelledby_value = \"menu-label-\" + ctx[65]);\n attr(div1, \"id\", div1_id_value = ctx[4] ? \"search-results\" : \"\");\n this.first = div0;\n },\n m(target, anchor) {\n insert(target, div0, anchor);\n append(div0, t);\n insert(target, div1, anchor);\n for (let i = 0; i < each_blocks.length; i += 1) {\n each_blocks[i].m(div1, null);\n }\n },\n p(new_ctx, dirty) {\n ctx = new_ctx;\n if (dirty[0] & 40977 && t_value !== (t_value = (ctx[4] ? ctx[0].searchResultsLabel : ctx[66].category ? ctx[66].category : ctx[15].length > 1 ? ctx[0].categories.custom : ctx[0].categories[ctx[13].name]) + \"\"))\n set_data(t, t_value);\n if (dirty[0] & 32768 && div0_id_value !== (div0_id_value = \"menu-label-\" + ctx[65])) {\n attr(div0, \"id\", div0_id_value);\n }\n if (dirty[0] & 32768 && div0_class_value !== (div0_class_value = \"category \" + (ctx[15].length === 1 && ctx[15][0].category === \"\" ? \"gone\" : \"\"))) {\n attr(div0, \"class\", div0_class_value);\n }\n if (dirty[0] & 402686256) {\n each_value_2 = ctx[66].emojis;\n each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx, each_value_2, each_1_lookup, div1, destroy_block, create_each_block_2, null, get_each_context_2);\n }\n if (dirty[0] & 16 && div1_role_value !== (div1_role_value = ctx[4] ? \"listbox\" : \"menu\")) {\n attr(div1, \"role\", div1_role_value);\n }\n if (dirty[0] & 32768 && div1_aria_labelledby_value !== (div1_aria_labelledby_value = \"menu-label-\" + ctx[65])) {\n attr(div1, \"aria-labelledby\", div1_aria_labelledby_value);\n }\n if (dirty[0] & 16 && div1_id_value !== (div1_id_value = ctx[4] ? \"search-results\" : \"\")) {\n attr(div1, \"id\", div1_id_value);\n }\n },\n d(detaching) {\n if (detaching)\n detach(div0);\n if (detaching)\n detach(div1);\n for (let i = 0; i < each_blocks.length; i += 1) {\n each_blocks[i].d();\n }\n }\n };\n}\nfunction create_else_block(ctx) {\n let img;\n let img_src_value;\n return {\n c() {\n img = element(\"img\");\n attr(img, \"class\", \"custom-emoji\");\n if (!src_url_equal(img.src, img_src_value = ctx[63].url))\n attr(img, \"src\", img_src_value);\n attr(img, \"alt\", \"\");\n attr(img, \"loading\", \"lazy\");\n },\n m(target, anchor) {\n insert(target, img, anchor);\n },\n p(ctx2, dirty) {\n if (dirty[0] & 1024 && !src_url_equal(img.src, img_src_value = ctx2[63].url)) {\n attr(img, \"src\", img_src_value);\n }\n },\n d(detaching) {\n if (detaching)\n detach(img);\n }\n };\n}\nfunction create_if_block(ctx) {\n let t_value = ctx[27](ctx[63], ctx[8]) + \"\";\n let t;\n return {\n c() {\n t = text(t_value);\n },\n m(target, anchor) {\n insert(target, t, anchor);\n },\n p(ctx2, dirty) {\n if (dirty[0] & 1280 && t_value !== (t_value = ctx2[27](ctx2[63], ctx2[8]) + \"\"))\n set_data(t, t_value);\n },\n d(detaching) {\n if (detaching)\n detach(t);\n }\n };\n}\nfunction create_each_block(key_1, ctx) {\n let button;\n let button_aria_label_value;\n let button_title_value;\n let button_id_value;\n function select_block_type_1(ctx2, dirty) {\n if (ctx2[63].unicode)\n return create_if_block;\n return create_else_block;\n }\n let current_block_type = select_block_type_1(ctx);\n let if_block = current_block_type(ctx);\n return {\n key: key_1,\n first: null,\n c() {\n button = element(\"button\");\n if_block.c();\n attr(button, \"role\", \"menuitem\");\n attr(button, \"aria-label\", button_aria_label_value = ctx[28](ctx[63], ctx[8]));\n attr(button, \"title\", button_title_value = ctx[63].title);\n attr(button, \"class\", \"emoji\");\n attr(button, \"id\", button_id_value = \"fav-\" + ctx[63].id);\n this.first = button;\n },\n m(target, anchor) {\n insert(target, button, anchor);\n if_block.m(button, null);\n },\n p(new_ctx, dirty) {\n ctx = new_ctx;\n if (current_block_type === (current_block_type = select_block_type_1(ctx)) && if_block) {\n if_block.p(ctx, dirty);\n } else {\n if_block.d(1);\n if_block = current_block_type(ctx);\n if (if_block) {\n if_block.c();\n if_block.m(button, null);\n }\n }\n if (dirty[0] & 1280 && button_aria_label_value !== (button_aria_label_value = ctx[28](ctx[63], ctx[8]))) {\n attr(button, \"aria-label\", button_aria_label_value);\n }\n if (dirty[0] & 1024 && button_title_value !== (button_title_value = ctx[63].title)) {\n attr(button, \"title\", button_title_value);\n }\n if (dirty[0] & 1024 && button_id_value !== (button_id_value = \"fav-\" + ctx[63].id)) {\n attr(button, \"id\", button_id_value);\n }\n },\n d(detaching) {\n if (detaching)\n detach(button);\n if_block.d();\n }\n };\n}\nfunction create_fragment(ctx) {\n let section;\n let div0;\n let div4;\n let div1;\n let input;\n let input_placeholder_value;\n let input_aria_expanded_value;\n let input_aria_activedescendant_value;\n let label;\n let t0_value = ctx[0].searchLabel + \"\";\n let t0;\n let span0;\n let t1_value = ctx[0].searchDescription + \"\";\n let t1;\n let div2;\n let button0;\n let t2;\n let button0_class_value;\n let div2_class_value;\n let span1;\n let t3_value = ctx[0].skinToneDescription + \"\";\n let t3;\n let div3;\n let each_blocks_3 = [];\n let each0_lookup = new Map_1();\n let div3_class_value;\n let div3_aria_label_value;\n let div3_aria_activedescendant_value;\n let div3_aria_hidden_value;\n let div5;\n let each_blocks_2 = [];\n let each1_lookup = new Map_1();\n let div5_aria_label_value;\n let div7;\n let div6;\n let div8;\n let t4;\n let div8_class_value;\n let div10;\n let div9;\n let each_blocks_1 = [];\n let each2_lookup = new Map_1();\n let div10_class_value;\n let div10_role_value;\n let div10_aria_label_value;\n let div10_id_value;\n let div11;\n let each_blocks = [];\n let each3_lookup = new Map_1();\n let div11_class_value;\n let div11_aria_label_value;\n let button1;\n let section_aria_label_value;\n let mounted;\n let dispose;\n let each_value_4 = ctx[9];\n const get_key = (ctx2) => ctx2[72];\n for (let i = 0; i < each_value_4.length; i += 1) {\n let child_ctx = get_each_context_4(ctx, each_value_4, i);\n let key = get_key(child_ctx);\n each0_lookup.set(key, each_blocks_3[i] = create_each_block_4(key, child_ctx));\n }\n let each_value_3 = ctx[12];\n const get_key_1 = (ctx2) => ctx2[69].id;\n for (let i = 0; i < each_value_3.length; i += 1) {\n let child_ctx = get_each_context_3(ctx, each_value_3, i);\n let key = get_key_1(child_ctx);\n each1_lookup.set(key, each_blocks_2[i] = create_each_block_3(key, child_ctx));\n }\n let each_value_1 = ctx[15];\n const get_key_2 = (ctx2) => ctx2[66].category;\n for (let i = 0; i < each_value_1.length; i += 1) {\n let child_ctx = get_each_context_1(ctx, each_value_1, i);\n let key = get_key_2(child_ctx);\n each2_lookup.set(key, each_blocks_1[i] = create_each_block_1(key, child_ctx));\n }\n let each_value = ctx[10];\n const get_key_3 = (ctx2) => ctx2[63].id;\n for (let i = 0; i < each_value.length; i += 1) {\n let child_ctx = get_each_context(ctx, each_value, i);\n let key = get_key_3(child_ctx);\n each3_lookup.set(key, each_blocks[i] = create_each_block(key, child_ctx));\n }\n return {\n c() {\n section = element(\"section\");\n div0 = element(\"div\");\n div4 = element(\"div\");\n div1 = element(\"div\");\n input = element(\"input\");\n label = element(\"label\");\n t0 = text(t0_value);\n span0 = element(\"span\");\n t1 = text(t1_value);\n div2 = element(\"div\");\n button0 = element(\"button\");\n t2 = text(ctx[21]);\n span1 = element(\"span\");\n t3 = text(t3_value);\n div3 = element(\"div\");\n for (let i = 0; i < each_blocks_3.length; i += 1) {\n each_blocks_3[i].c();\n }\n div5 = element(\"div\");\n for (let i = 0; i < each_blocks_2.length; i += 1) {\n each_blocks_2[i].c();\n }\n div7 = element(\"div\");\n div6 = element(\"div\");\n div8 = element(\"div\");\n t4 = text(ctx[18]);\n div10 = element(\"div\");\n div9 = element(\"div\");\n for (let i = 0; i < each_blocks_1.length; i += 1) {\n each_blocks_1[i].c();\n }\n div11 = element(\"div\");\n for (let i = 0; i < each_blocks.length; i += 1) {\n each_blocks[i].c();\n }\n button1 = element(\"button\");\n button1.textContent = \"\\u{1F600}\";\n attr(div0, \"class\", \"pad-top\");\n attr(input, \"id\", \"search\");\n attr(input, \"class\", \"search\");\n attr(input, \"type\", \"search\");\n attr(input, \"role\", \"combobox\");\n attr(input, \"enterkeyhint\", \"search\");\n attr(input, \"placeholder\", input_placeholder_value = ctx[0].searchLabel);\n attr(input, \"autocapitalize\", \"none\");\n attr(input, \"autocomplete\", \"off\");\n attr(input, \"spellcheck\", \"true\");\n attr(input, \"aria-expanded\", input_aria_expanded_value = !!(ctx[4] && ctx[1].length));\n attr(input, \"aria-controls\", \"search-results\");\n attr(input, \"aria-describedby\", \"search-description\");\n attr(input, \"aria-autocomplete\", \"list\");\n attr(input, \"aria-activedescendant\", input_aria_activedescendant_value = ctx[26] ? `emo-${ctx[26]}` : \"\");\n attr(label, \"class\", \"sr-only\");\n attr(label, \"for\", \"search\");\n attr(span0, \"id\", \"search-description\");\n attr(span0, \"class\", \"sr-only\");\n attr(div1, \"class\", \"search-wrapper\");\n attr(button0, \"id\", \"skintone-button\");\n attr(button0, \"class\", button0_class_value = \"emoji \" + (ctx[6] ? \"hide-focus\" : \"\"));\n attr(button0, \"aria-label\", ctx[23]);\n attr(button0, \"title\", ctx[23]);\n attr(button0, \"aria-describedby\", \"skintone-description\");\n attr(button0, \"aria-haspopup\", \"listbox\");\n attr(button0, \"aria-expanded\", ctx[6]);\n attr(button0, \"aria-controls\", \"skintone-list\");\n attr(div2, \"class\", div2_class_value = \"skintone-button-wrapper \" + (ctx[19] ? \"expanded\" : \"\"));\n attr(span1, \"id\", \"skintone-description\");\n attr(span1, \"class\", \"sr-only\");\n attr(div3, \"id\", \"skintone-list\");\n attr(div3, \"class\", div3_class_value = \"skintone-list \" + (ctx[6] ? \"\" : \"hidden no-animate\"));\n set_style(div3, \"transform\", \"translateY(\" + (ctx[6] ? 0 : \"calc(-1 * var(--num-skintones) * var(--total-emoji-size))\") + \")\");\n attr(div3, \"role\", \"listbox\");\n attr(div3, \"aria-label\", div3_aria_label_value = ctx[0].skinTonesLabel);\n attr(div3, \"aria-activedescendant\", div3_aria_activedescendant_value = \"skintone-\" + ctx[20]);\n attr(div3, \"aria-hidden\", div3_aria_hidden_value = !ctx[6]);\n attr(div4, \"class\", \"search-row\");\n attr(div5, \"class\", \"nav\");\n attr(div5, \"role\", \"tablist\");\n set_style(div5, \"grid-template-columns\", \"repeat(\" + ctx[12].length + \", 1fr)\");\n attr(div5, \"aria-label\", div5_aria_label_value = ctx[0].categoriesLabel);\n attr(div6, \"class\", \"indicator\");\n set_style(div6, \"transform\", \"translateX(\" + (ctx[24] ? -1 : 1) * ctx[11] * 100 + \"%)\");\n attr(div7, \"class\", \"indicator-wrapper\");\n attr(div8, \"class\", div8_class_value = \"message \" + (ctx[18] ? \"\" : \"gone\"));\n attr(div8, \"role\", \"alert\");\n attr(div8, \"aria-live\", \"polite\");\n attr(div10, \"class\", div10_class_value = \"tabpanel \" + (!ctx[14] || ctx[18] ? \"gone\" : \"\"));\n attr(div10, \"role\", div10_role_value = ctx[4] ? \"region\" : \"tabpanel\");\n attr(div10, \"aria-label\", div10_aria_label_value = ctx[4] ? ctx[0].searchResultsLabel : ctx[0].categories[ctx[13].name]);\n attr(div10, \"id\", div10_id_value = ctx[4] ? \"\" : `tab-${ctx[13].id}`);\n attr(div10, \"tabindex\", \"0\");\n attr(div11, \"class\", div11_class_value = \"favorites emoji-menu \" + (ctx[18] ? \"gone\" : \"\"));\n attr(div11, \"role\", \"menu\");\n attr(div11, \"aria-label\", div11_aria_label_value = ctx[0].favoritesLabel);\n set_style(div11, \"padding-inline-end\", ctx[25] + \"px\");\n attr(button1, \"aria-hidden\", \"true\");\n attr(button1, \"tabindex\", \"-1\");\n attr(button1, \"class\", \"abs-pos hidden emoji\");\n attr(section, \"class\", \"picker\");\n attr(section, \"aria-label\", section_aria_label_value = ctx[0].regionLabel);\n attr(section, \"style\", ctx[22]);\n },\n m(target, anchor) {\n insert(target, section, anchor);\n append(section, div0);\n append(section, div4);\n append(div4, div1);\n append(div1, input);\n set_input_value(input, ctx[2]);\n append(div1, label);\n append(label, t0);\n append(div1, span0);\n append(span0, t1);\n append(div4, div2);\n append(div2, button0);\n append(button0, t2);\n append(div4, span1);\n append(span1, t3);\n append(div4, div3);\n for (let i = 0; i < each_blocks_3.length; i += 1) {\n each_blocks_3[i].m(div3, null);\n }\n ctx[48](div3);\n append(section, div5);\n for (let i = 0; i < each_blocks_2.length; i += 1) {\n each_blocks_2[i].m(div5, null);\n }\n append(section, div7);\n append(div7, div6);\n append(section, div8);\n append(div8, t4);\n append(section, div10);\n append(div10, div9);\n for (let i = 0; i < each_blocks_1.length; i += 1) {\n each_blocks_1[i].m(div9, null);\n }\n ctx[50](div10);\n append(section, div11);\n for (let i = 0; i < each_blocks.length; i += 1) {\n each_blocks[i].m(div11, null);\n }\n append(section, button1);\n ctx[51](button1);\n ctx[52](section);\n if (!mounted) {\n dispose = [\n listen(input, \"input\", ctx[47]),\n listen(input, \"keydown\", ctx[30]),\n listen(button0, \"click\", ctx[35]),\n listen(div3, \"focusout\", ctx[38]),\n listen(div3, \"click\", ctx[34]),\n listen(div3, \"keydown\", ctx[36]),\n listen(div3, \"keyup\", ctx[37]),\n listen(div5, \"keydown\", ctx[32]),\n action_destroyer(ctx[29].call(null, div9)),\n listen(div10, \"click\", ctx[33]),\n listen(div11, \"click\", ctx[33])\n ];\n mounted = true;\n }\n },\n p(ctx2, dirty) {\n if (dirty[0] & 1 && input_placeholder_value !== (input_placeholder_value = ctx2[0].searchLabel)) {\n attr(input, \"placeholder\", input_placeholder_value);\n }\n if (dirty[0] & 18 && input_aria_expanded_value !== (input_aria_expanded_value = !!(ctx2[4] && ctx2[1].length))) {\n attr(input, \"aria-expanded\", input_aria_expanded_value);\n }\n if (dirty[0] & 67108864 && input_aria_activedescendant_value !== (input_aria_activedescendant_value = ctx2[26] ? `emo-${ctx2[26]}` : \"\")) {\n attr(input, \"aria-activedescendant\", input_aria_activedescendant_value);\n }\n if (dirty[0] & 4) {\n set_input_value(input, ctx2[2]);\n }\n if (dirty[0] & 1 && t0_value !== (t0_value = ctx2[0].searchLabel + \"\"))\n set_data(t0, t0_value);\n if (dirty[0] & 1 && t1_value !== (t1_value = ctx2[0].searchDescription + \"\"))\n set_data(t1, t1_value);\n if (dirty[0] & 2097152)\n set_data(t2, ctx2[21]);\n if (dirty[0] & 64 && button0_class_value !== (button0_class_value = \"emoji \" + (ctx2[6] ? \"hide-focus\" : \"\"))) {\n attr(button0, \"class\", button0_class_value);\n }\n if (dirty[0] & 8388608) {\n attr(button0, \"aria-label\", ctx2[23]);\n }\n if (dirty[0] & 8388608) {\n attr(button0, \"title\", ctx2[23]);\n }\n if (dirty[0] & 64) {\n attr(button0, \"aria-expanded\", ctx2[6]);\n }\n if (dirty[0] & 524288 && div2_class_value !== (div2_class_value = \"skintone-button-wrapper \" + (ctx2[19] ? \"expanded\" : \"\"))) {\n attr(div2, \"class\", div2_class_value);\n }\n if (dirty[0] & 1 && t3_value !== (t3_value = ctx2[0].skinToneDescription + \"\"))\n set_data(t3, t3_value);\n if (dirty[0] & 1049089) {\n each_value_4 = ctx2[9];\n each_blocks_3 = update_keyed_each(each_blocks_3, dirty, get_key, 1, ctx2, each_value_4, each0_lookup, div3, destroy_block, create_each_block_4, null, get_each_context_4);\n }\n if (dirty[0] & 64 && div3_class_value !== (div3_class_value = \"skintone-list \" + (ctx2[6] ? \"\" : \"hidden no-animate\"))) {\n attr(div3, \"class\", div3_class_value);\n }\n if (dirty[0] & 64) {\n set_style(div3, \"transform\", \"translateY(\" + (ctx2[6] ? 0 : \"calc(-1 * var(--num-skintones) * var(--total-emoji-size))\") + \")\");\n }\n if (dirty[0] & 1 && div3_aria_label_value !== (div3_aria_label_value = ctx2[0].skinTonesLabel)) {\n attr(div3, \"aria-label\", div3_aria_label_value);\n }\n if (dirty[0] & 1048576 && div3_aria_activedescendant_value !== (div3_aria_activedescendant_value = \"skintone-\" + ctx2[20])) {\n attr(div3, \"aria-activedescendant\", div3_aria_activedescendant_value);\n }\n if (dirty[0] & 64 && div3_aria_hidden_value !== (div3_aria_hidden_value = !ctx2[6])) {\n attr(div3, \"aria-hidden\", div3_aria_hidden_value);\n }\n if (dirty[0] & 12305 | dirty[1] & 1) {\n each_value_3 = ctx2[12];\n each_blocks_2 = update_keyed_each(each_blocks_2, dirty, get_key_1, 1, ctx2, each_value_3, each1_lookup, div5, destroy_block, create_each_block_3, null, get_each_context_3);\n }\n if (dirty[0] & 4096) {\n set_style(div5, \"grid-template-columns\", \"repeat(\" + ctx2[12].length + \", 1fr)\");\n }\n if (dirty[0] & 1 && div5_aria_label_value !== (div5_aria_label_value = ctx2[0].categoriesLabel)) {\n attr(div5, \"aria-label\", div5_aria_label_value);\n }\n if (dirty[0] & 16779264) {\n set_style(div6, \"transform\", \"translateX(\" + (ctx2[24] ? -1 : 1) * ctx2[11] * 100 + \"%)\");\n }\n if (dirty[0] & 262144)\n set_data(t4, ctx2[18]);\n if (dirty[0] & 262144 && div8_class_value !== (div8_class_value = \"message \" + (ctx2[18] ? \"\" : \"gone\"))) {\n attr(div8, \"class\", div8_class_value);\n }\n if (dirty[0] & 402694449) {\n each_value_1 = ctx2[15];\n each_blocks_1 = update_keyed_each(each_blocks_1, dirty, get_key_2, 1, ctx2, each_value_1, each2_lookup, div9, destroy_block, create_each_block_1, null, get_each_context_1);\n }\n if (dirty[0] & 278528 && div10_class_value !== (div10_class_value = \"tabpanel \" + (!ctx2[14] || ctx2[18] ? \"gone\" : \"\"))) {\n attr(div10, \"class\", div10_class_value);\n }\n if (dirty[0] & 16 && div10_role_value !== (div10_role_value = ctx2[4] ? \"region\" : \"tabpanel\")) {\n attr(div10, \"role\", div10_role_value);\n }\n if (dirty[0] & 8209 && div10_aria_label_value !== (div10_aria_label_value = ctx2[4] ? ctx2[0].searchResultsLabel : ctx2[0].categories[ctx2[13].name])) {\n attr(div10, \"aria-label\", div10_aria_label_value);\n }\n if (dirty[0] & 8208 && div10_id_value !== (div10_id_value = ctx2[4] ? \"\" : `tab-${ctx2[13].id}`)) {\n attr(div10, \"id\", div10_id_value);\n }\n if (dirty[0] & 402654464) {\n each_value = ctx2[10];\n each_blocks = update_keyed_each(each_blocks, dirty, get_key_3, 1, ctx2, each_value, each3_lookup, div11, destroy_block, create_each_block, null, get_each_context);\n }\n if (dirty[0] & 262144 && div11_class_value !== (div11_class_value = \"favorites emoji-menu \" + (ctx2[18] ? \"gone\" : \"\"))) {\n attr(div11, \"class\", div11_class_value);\n }\n if (dirty[0] & 1 && div11_aria_label_value !== (div11_aria_label_value = ctx2[0].favoritesLabel)) {\n attr(div11, \"aria-label\", div11_aria_label_value);\n }\n if (dirty[0] & 33554432) {\n set_style(div11, \"padding-inline-end\", ctx2[25] + \"px\");\n }\n if (dirty[0] & 1 && section_aria_label_value !== (section_aria_label_value = ctx2[0].regionLabel)) {\n attr(section, \"aria-label\", section_aria_label_value);\n }\n if (dirty[0] & 4194304) {\n attr(section, \"style\", ctx2[22]);\n }\n },\n i: noop,\n o: noop,\n d(detaching) {\n if (detaching)\n detach(section);\n for (let i = 0; i < each_blocks_3.length; i += 1) {\n each_blocks_3[i].d();\n }\n ctx[48](null);\n for (let i = 0; i < each_blocks_2.length; i += 1) {\n each_blocks_2[i].d();\n }\n for (let i = 0; i < each_blocks_1.length; i += 1) {\n each_blocks_1[i].d();\n }\n ctx[50](null);\n for (let i = 0; i < each_blocks.length; i += 1) {\n each_blocks[i].d();\n }\n ctx[51](null);\n ctx[52](null);\n mounted = false;\n run_all(dispose);\n }\n };\n}\nfunction instance($$self, $$props, $$invalidate) {\n let { skinToneEmoji } = $$props;\n let { i18n } = $$props;\n let { database } = $$props;\n let { customEmoji } = $$props;\n let { customCategorySorting } = $$props;\n let initialLoad = true;\n let currentEmojis = [];\n let currentEmojisWithCategories = [];\n let rawSearchText = \"\";\n let searchText = \"\";\n let rootElement;\n let baselineEmoji;\n let tabpanelElement;\n let searchMode = false;\n let activeSearchItem = -1;\n let message;\n let skinTonePickerExpanded = false;\n let skinTonePickerExpandedAfterAnimation = false;\n let skinToneDropdown;\n let currentSkinTone = 0;\n let activeSkinTone = 0;\n let skinToneButtonText;\n let pickerStyle;\n let skinToneButtonLabel = \"\";\n let skinTones = [];\n let currentFavorites = [];\n let defaultFavoriteEmojis;\n let numColumns = DEFAULT_NUM_COLUMNS;\n let isRtl = false;\n let scrollbarWidth = 0;\n let currentGroupIndex = 0;\n let groups$1 = groups;\n let currentGroup;\n let databaseLoaded = false;\n let activeSearchItemId;\n const focus = (id) => {\n rootElement.getRootNode().getElementById(id).focus();\n };\n const fireEvent = (name, detail) => {\n rootElement.dispatchEvent(new CustomEvent(name, { detail, bubbles: true, composed: true }));\n };\n const unicodeWithSkin = (emoji, currentSkinTone2) => currentSkinTone2 && emoji.skins && emoji.skins[currentSkinTone2] || emoji.unicode;\n const labelWithSkin = (emoji, currentSkinTone2) => uniq([\n emoji.name || unicodeWithSkin(emoji, currentSkinTone2),\n ...emoji.shortcodes || []\n ]).join(\", \");\n const isSkinToneOption = (element2) => /^skintone-/.test(element2.id);\n emojiSupportLevelPromise.then((level) => {\n if (!level) {\n $$invalidate(18, message = i18n.emojiUnsupportedMessage);\n }\n });\n function calculateEmojiGridStyle(node) {\n return calculateWidth(node, (width) => {\n {\n const style = getComputedStyle(rootElement);\n const newNumColumns = parseInt(style.getPropertyValue(\"--num-columns\"), 10);\n const newIsRtl = style.getPropertyValue(\"direction\") === \"rtl\";\n const parentWidth = node.parentElement.getBoundingClientRect().width;\n const newScrollbarWidth = parentWidth - width;\n $$invalidate(46, numColumns = newNumColumns);\n $$invalidate(25, scrollbarWidth = newScrollbarWidth);\n $$invalidate(24, isRtl = newIsRtl);\n }\n });\n }\n function checkZwjSupportAndUpdate(zwjEmojisToCheck) {\n const rootNode = rootElement.getRootNode();\n const emojiToDomNode = (emoji) => rootNode.getElementById(`emo-${emoji.id}`);\n checkZwjSupport(zwjEmojisToCheck, baselineEmoji, emojiToDomNode);\n $$invalidate(1, currentEmojis = currentEmojis);\n }\n function isZwjSupported(emoji) {\n return !emoji.unicode || !hasZwj(emoji) || supportedZwjEmojis.get(emoji.unicode);\n }\n async function filterEmojisByVersion(emojis) {\n const emojiSupportLevel = await emojiSupportLevelPromise;\n return emojis.filter(({ version: version2 }) => !version2 || version2 <= emojiSupportLevel);\n }\n async function summarizeEmojis(emojis) {\n return summarizeEmojisForUI(emojis, await emojiSupportLevelPromise);\n }\n async function getEmojisByGroup(group) {\n if (typeof group === \"undefined\") {\n return [];\n }\n const emoji = group === -1 ? customEmoji : await database.getEmojiByGroup(group);\n return summarizeEmojis(await filterEmojisByVersion(emoji));\n }\n async function getEmojisBySearchQuery(query) {\n return summarizeEmojis(await filterEmojisByVersion(await database.getEmojiBySearchQuery(query)));\n }\n function onSearchKeydown(event) {\n if (!searchMode || !currentEmojis.length) {\n return;\n }\n const goToNextOrPrevious = (previous2) => {\n halt(event);\n $$invalidate(5, activeSearchItem = incrementOrDecrement(previous2, activeSearchItem, currentEmojis));\n };\n switch (event.key) {\n case \"ArrowDown\":\n return goToNextOrPrevious(false);\n case \"ArrowUp\":\n return goToNextOrPrevious(true);\n case \"Enter\":\n if (activeSearchItem !== -1) {\n halt(event);\n return clickEmoji(currentEmojis[activeSearchItem].id);\n } else if (currentEmojis.length) {\n $$invalidate(5, activeSearchItem = 0);\n }\n }\n }\n function onNavClick(group) {\n $$invalidate(2, rawSearchText = \"\");\n $$invalidate(44, searchText = \"\");\n $$invalidate(5, activeSearchItem = -1);\n $$invalidate(11, currentGroupIndex = groups$1.findIndex((_) => _.id === group.id));\n }\n function onNavKeydown(event) {\n const { target, key } = event;\n const doFocus = (el) => {\n if (el) {\n halt(event);\n el.focus();\n }\n };\n switch (key) {\n case \"ArrowLeft\":\n return doFocus(target.previousSibling);\n case \"ArrowRight\":\n return doFocus(target.nextSibling);\n case \"Home\":\n return doFocus(target.parentElement.firstChild);\n case \"End\":\n return doFocus(target.parentElement.lastChild);\n }\n }\n async function clickEmoji(unicodeOrName) {\n const emoji = await database.getEmojiByUnicodeOrName(unicodeOrName);\n const emojiSummary = [...currentEmojis, ...currentFavorites].find((_) => _.id === unicodeOrName);\n const skinTonedUnicode = emojiSummary.unicode && unicodeWithSkin(emojiSummary, currentSkinTone);\n await database.incrementFavoriteEmojiCount(unicodeOrName);\n fireEvent(\"emoji-click\", {\n emoji,\n skinTone: currentSkinTone,\n ...skinTonedUnicode && { unicode: skinTonedUnicode },\n ...emojiSummary.name && { name: emojiSummary.name }\n });\n }\n async function onEmojiClick(event) {\n const { target } = event;\n if (!target.classList.contains(\"emoji\")) {\n return;\n }\n halt(event);\n const id = target.id.substring(4);\n clickEmoji(id);\n }\n async function onSkinToneOptionsClick(event) {\n const { target } = event;\n if (!isSkinToneOption(target)) {\n return;\n }\n halt(event);\n const skinTone = parseInt(target.id.slice(9), 10);\n $$invalidate(8, currentSkinTone = skinTone);\n $$invalidate(6, skinTonePickerExpanded = false);\n focus(\"skintone-button\");\n fireEvent(\"skin-tone-change\", { skinTone });\n database.setPreferredSkinTone(skinTone);\n }\n async function onClickSkinToneButton(event) {\n $$invalidate(6, skinTonePickerExpanded = !skinTonePickerExpanded);\n $$invalidate(20, activeSkinTone = currentSkinTone);\n if (skinTonePickerExpanded) {\n halt(event);\n rAF(() => focus(`skintone-${activeSkinTone}`));\n }\n }\n function onSkinToneOptionsKeydown(event) {\n if (!skinTonePickerExpanded) {\n return;\n }\n const changeActiveSkinTone = async (nextSkinTone) => {\n halt(event);\n $$invalidate(20, activeSkinTone = nextSkinTone);\n await tick();\n focus(`skintone-${activeSkinTone}`);\n };\n switch (event.key) {\n case \"ArrowUp\":\n return changeActiveSkinTone(incrementOrDecrement(true, activeSkinTone, skinTones));\n case \"ArrowDown\":\n return changeActiveSkinTone(incrementOrDecrement(false, activeSkinTone, skinTones));\n case \"Home\":\n return changeActiveSkinTone(0);\n case \"End\":\n return changeActiveSkinTone(skinTones.length - 1);\n case \"Enter\":\n return onSkinToneOptionsClick(event);\n case \"Escape\":\n halt(event);\n $$invalidate(6, skinTonePickerExpanded = false);\n return focus(\"skintone-button\");\n }\n }\n function onSkinToneOptionsKeyup(event) {\n if (!skinTonePickerExpanded) {\n return;\n }\n switch (event.key) {\n case \" \":\n return onSkinToneOptionsClick(event);\n }\n }\n async function onSkinToneOptionsFocusOut(event) {\n const { relatedTarget } = event;\n if (!relatedTarget || !isSkinToneOption(relatedTarget)) {\n $$invalidate(6, skinTonePickerExpanded = false);\n }\n }\n function input_input_handler() {\n rawSearchText = this.value;\n $$invalidate(2, rawSearchText);\n }\n function div3_binding($$value) {\n binding_callbacks[$$value ? \"unshift\" : \"push\"](() => {\n skinToneDropdown = $$value;\n $$invalidate(7, skinToneDropdown);\n });\n }\n const click_handler = (group) => onNavClick(group);\n function div10_binding($$value) {\n binding_callbacks[$$value ? \"unshift\" : \"push\"](() => {\n tabpanelElement = $$value;\n $$invalidate(3, tabpanelElement);\n });\n }\n function button1_binding($$value) {\n binding_callbacks[$$value ? \"unshift\" : \"push\"](() => {\n baselineEmoji = $$value;\n $$invalidate(17, baselineEmoji);\n });\n }\n function section_binding($$value) {\n binding_callbacks[$$value ? \"unshift\" : \"push\"](() => {\n rootElement = $$value;\n $$invalidate(16, rootElement);\n });\n }\n $$self.$$set = ($$props2) => {\n if (\"skinToneEmoji\" in $$props2)\n $$invalidate(40, skinToneEmoji = $$props2.skinToneEmoji);\n if (\"i18n\" in $$props2)\n $$invalidate(0, i18n = $$props2.i18n);\n if (\"database\" in $$props2)\n $$invalidate(39, database = $$props2.database);\n if (\"customEmoji\" in $$props2)\n $$invalidate(41, customEmoji = $$props2.customEmoji);\n if (\"customCategorySorting\" in $$props2)\n $$invalidate(42, customCategorySorting = $$props2.customCategorySorting);\n };\n $$self.$$.update = () => {\n if ($$self.$$.dirty[1] & 1280) {\n {\n if (customEmoji && database) {\n $$invalidate(39, database.customEmoji = customEmoji, database);\n }\n }\n }\n if ($$self.$$.dirty[0] & 1 | $$self.$$.dirty[1] & 256) {\n {\n async function handleDatabaseLoading() {\n let showingLoadingMessage = false;\n const timeoutHandle = setTimeout(\n () => {\n showingLoadingMessage = true;\n $$invalidate(18, message = i18n.loadingMessage);\n },\n TIMEOUT_BEFORE_LOADING_MESSAGE\n );\n try {\n await database.ready();\n $$invalidate(14, databaseLoaded = true);\n } catch (err) {\n console.error(err);\n $$invalidate(18, message = i18n.networkErrorMessage);\n } finally {\n clearTimeout(timeoutHandle);\n if (showingLoadingMessage) {\n showingLoadingMessage = false;\n $$invalidate(18, message = \"\");\n }\n }\n }\n if (database) {\n handleDatabaseLoading();\n }\n }\n }\n if ($$self.$$.dirty[0] & 6144 | $$self.$$.dirty[1] & 1024) {\n {\n if (customEmoji && customEmoji.length) {\n $$invalidate(12, groups$1 = [customGroup, ...groups]);\n } else if (groups$1 !== groups) {\n if (currentGroupIndex) {\n $$invalidate(11, currentGroupIndex--, currentGroupIndex);\n }\n $$invalidate(12, groups$1 = groups);\n }\n }\n }\n if ($$self.$$.dirty[0] & 4) {\n {\n rIC(() => {\n $$invalidate(44, searchText = (rawSearchText || \"\").trim());\n $$invalidate(5, activeSearchItem = -1);\n });\n }\n }\n if ($$self.$$.dirty[0] & 6144) {\n $$invalidate(13, currentGroup = groups$1[currentGroupIndex]);\n }\n if ($$self.$$.dirty[0] & 24576 | $$self.$$.dirty[1] & 8192) {\n {\n async function updateEmojis() {\n if (!databaseLoaded) {\n $$invalidate(1, currentEmojis = []);\n $$invalidate(4, searchMode = false);\n } else if (searchText.length >= MIN_SEARCH_TEXT_LENGTH) {\n const currentSearchText = searchText;\n const newEmojis = await getEmojisBySearchQuery(currentSearchText);\n if (currentSearchText === searchText) {\n $$invalidate(1, currentEmojis = newEmojis);\n $$invalidate(4, searchMode = true);\n }\n } else if (currentGroup) {\n const currentGroupId = currentGroup.id;\n const newEmojis = await getEmojisByGroup(currentGroupId);\n if (currentGroupId === currentGroup.id) {\n $$invalidate(1, currentEmojis = newEmojis);\n $$invalidate(4, searchMode = false);\n }\n }\n }\n updateEmojis();\n }\n }\n if ($$self.$$.dirty[0] & 4112) {\n $$invalidate(22, pickerStyle = `\n --font-family: ${FONT_FAMILY};\n --num-groups: ${groups$1.length}; \n --indicator-opacity: ${searchMode ? 0 : 1}; \n --num-skintones: ${NUM_SKIN_TONES};`);\n }\n if ($$self.$$.dirty[0] & 16384 | $$self.$$.dirty[1] & 256) {\n {\n async function updatePreferredSkinTone() {\n if (databaseLoaded) {\n $$invalidate(8, currentSkinTone = await database.getPreferredSkinTone());\n }\n }\n updatePreferredSkinTone();\n }\n }\n if ($$self.$$.dirty[1] & 512) {\n $$invalidate(9, skinTones = Array(NUM_SKIN_TONES).fill().map((_, i) => applySkinTone(skinToneEmoji, i)));\n }\n if ($$self.$$.dirty[0] & 768) {\n $$invalidate(21, skinToneButtonText = skinTones[currentSkinTone]);\n }\n if ($$self.$$.dirty[0] & 257) {\n $$invalidate(23, skinToneButtonLabel = i18n.skinToneLabel.replace(\"{skinTone}\", i18n.skinTones[currentSkinTone]));\n }\n if ($$self.$$.dirty[0] & 16384 | $$self.$$.dirty[1] & 256) {\n {\n async function updateDefaultFavoriteEmojis() {\n $$invalidate(45, defaultFavoriteEmojis = (await Promise.all(MOST_COMMONLY_USED_EMOJI.map((unicode) => database.getEmojiByUnicodeOrName(unicode)))).filter(Boolean));\n }\n if (databaseLoaded) {\n updateDefaultFavoriteEmojis();\n }\n }\n }\n if ($$self.$$.dirty[0] & 16384 | $$self.$$.dirty[1] & 49408) {\n {\n async function updateFavorites() {\n const dbFavorites = await database.getTopFavoriteEmoji(numColumns);\n const favorites = await summarizeEmojis(uniqBy([...dbFavorites, ...defaultFavoriteEmojis], (_) => _.unicode || _.name).slice(0, numColumns));\n $$invalidate(10, currentFavorites = favorites);\n }\n if (databaseLoaded && defaultFavoriteEmojis) {\n updateFavorites();\n }\n }\n }\n if ($$self.$$.dirty[0] & 10) {\n {\n const zwjEmojisToCheck = currentEmojis.filter((emoji) => emoji.unicode).filter((emoji) => hasZwj(emoji) && !supportedZwjEmojis.has(emoji.unicode));\n if (zwjEmojisToCheck.length) {\n rAF(() => checkZwjSupportAndUpdate(zwjEmojisToCheck));\n } else {\n $$invalidate(1, currentEmojis = currentEmojis.filter(isZwjSupported));\n rAF(() => {\n (tabpanelElement || {}).scrollTop = 0;\n });\n }\n }\n }\n if ($$self.$$.dirty[0] & 1026 | $$self.$$.dirty[1] & 4096)\n ;\n if ($$self.$$.dirty[0] & 18 | $$self.$$.dirty[1] & 2048) {\n {\n let calculateCurrentEmojisWithCategories = function() {\n if (searchMode) {\n return [{ category: \"\", emojis: currentEmojis }];\n }\n const categoriesToEmoji = /* @__PURE__ */ new Map();\n for (const emoji of currentEmojis) {\n const category = emoji.category || \"\";\n let emojis = categoriesToEmoji.get(category);\n if (!emojis) {\n emojis = [];\n categoriesToEmoji.set(category, emojis);\n }\n emojis.push(emoji);\n }\n return [...categoriesToEmoji.entries()].map(([category, emojis]) => ({ category, emojis })).sort((a, b) => customCategorySorting(a.category, b.category));\n };\n $$invalidate(15, currentEmojisWithCategories = calculateCurrentEmojisWithCategories());\n }\n }\n if ($$self.$$.dirty[0] & 34) {\n $$invalidate(26, activeSearchItemId = activeSearchItem !== -1 && currentEmojis[activeSearchItem].id);\n }\n if ($$self.$$.dirty[0] & 192) {\n {\n if (skinTonePickerExpanded) {\n skinToneDropdown.addEventListener(\n \"transitionend\",\n () => {\n $$invalidate(19, skinTonePickerExpandedAfterAnimation = true);\n },\n { once: true }\n );\n } else {\n $$invalidate(19, skinTonePickerExpandedAfterAnimation = false);\n }\n }\n }\n };\n return [\n i18n,\n currentEmojis,\n rawSearchText,\n tabpanelElement,\n searchMode,\n activeSearchItem,\n skinTonePickerExpanded,\n skinToneDropdown,\n currentSkinTone,\n skinTones,\n currentFavorites,\n currentGroupIndex,\n groups$1,\n currentGroup,\n databaseLoaded,\n currentEmojisWithCategories,\n rootElement,\n baselineEmoji,\n message,\n skinTonePickerExpandedAfterAnimation,\n activeSkinTone,\n skinToneButtonText,\n pickerStyle,\n skinToneButtonLabel,\n isRtl,\n scrollbarWidth,\n activeSearchItemId,\n unicodeWithSkin,\n labelWithSkin,\n calculateEmojiGridStyle,\n onSearchKeydown,\n onNavClick,\n onNavKeydown,\n onEmojiClick,\n onSkinToneOptionsClick,\n onClickSkinToneButton,\n onSkinToneOptionsKeydown,\n onSkinToneOptionsKeyup,\n onSkinToneOptionsFocusOut,\n database,\n skinToneEmoji,\n customEmoji,\n customCategorySorting,\n initialLoad,\n searchText,\n defaultFavoriteEmojis,\n numColumns,\n input_input_handler,\n div3_binding,\n click_handler,\n div10_binding,\n button1_binding,\n section_binding\n ];\n}\nclass Picker extends SvelteComponent {\n constructor(options) {\n super();\n init(\n this,\n options,\n instance,\n create_fragment,\n safe_not_equal,\n {\n skinToneEmoji: 40,\n i18n: 0,\n database: 39,\n customEmoji: 41,\n customCategorySorting: 42\n },\n null,\n [-1, -1, -1]\n );\n }\n}\nconst DEFAULT_DATA_SOURCE = \"https://cdn.jsdelivr.net/npm/emoji-picker-element-data@^1/en/emojibase/data.json\";\nconst DEFAULT_LOCALE = \"en\";\nvar enI18n = {\n categoriesLabel: \"Categories\",\n emojiUnsupportedMessage: \"Your browser does not support color emoji.\",\n favoritesLabel: \"Favorites\",\n loadingMessage: \"Loading\\u2026\",\n networkErrorMessage: \"Could not load emoji.\",\n regionLabel: \"Emoji picker\",\n searchDescription: \"When search results are available, press up or down to select and enter to choose.\",\n searchLabel: \"Search\",\n searchResultsLabel: \"Search results\",\n skinToneDescription: \"When expanded, press up or down to select and enter to choose.\",\n skinToneLabel: \"Choose a skin tone (currently {skinTone})\",\n skinTonesLabel: \"Skin tones\",\n skinTones: [\n \"Default\",\n \"Light\",\n \"Medium-Light\",\n \"Medium\",\n \"Medium-Dark\",\n \"Dark\"\n ],\n categories: {\n custom: \"Custom\",\n \"smileys-emotion\": \"Smileys and emoticons\",\n \"people-body\": \"People and body\",\n \"animals-nature\": \"Animals and nature\",\n \"food-drink\": \"Food and drink\",\n \"travel-places\": \"Travel and places\",\n activities: \"Activities\",\n objects: \"Objects\",\n symbols: \"Symbols\",\n flags: \"Flags\"\n }\n};\nconst PROPS = [\n \"customEmoji\",\n \"customCategorySorting\",\n \"database\",\n \"dataSource\",\n \"i18n\",\n \"locale\",\n \"skinToneEmoji\"\n];\nclass PickerElement extends HTMLElement {\n constructor(props) {\n super();\n this.attachShadow({ mode: \"open\" });\n const style = document.createElement(\"style\");\n style.textContent = \":host{--emoji-size:1.375rem;--emoji-padding:0.5rem;--category-emoji-size:var(--emoji-size);--category-emoji-padding:var(--emoji-padding);--indicator-height:3px;--input-border-radius:0.5rem;--input-border-size:1px;--input-font-size:1rem;--input-line-height:1.5;--input-padding:0.25rem;--num-columns:8;--outline-size:2px;--border-size:1px;--skintone-border-radius:1rem;--category-font-size:1rem;display:flex;width:min-content;height:400px}:host,:host(.light){--background:#fff;--border-color:#e0e0e0;--indicator-color:#385ac1;--input-border-color:#999;--input-font-color:#111;--input-placeholder-color:#999;--outline-color:#999;--category-font-color:#111;--button-active-background:#e6e6e6;--button-hover-background:#d9d9d9}:host(.dark){--background:#222;--border-color:#444;--indicator-color:#5373ec;--input-border-color:#ccc;--input-font-color:#efefef;--input-placeholder-color:#ccc;--outline-color:#fff;--category-font-color:#efefef;--button-active-background:#555555;--button-hover-background:#484848}@media (prefers-color-scheme:dark){:host{--background:#222;--border-color:#444;--indicator-color:#5373ec;--input-border-color:#ccc;--input-font-color:#efefef;--input-placeholder-color:#ccc;--outline-color:#fff;--category-font-color:#efefef;--button-active-background:#555555;--button-hover-background:#484848}}:host([hidden]){display:none}button{margin:0;padding:0;border:0;background:0 0;box-shadow:none;-webkit-tap-highlight-color:transparent}button::-moz-focus-inner{border:0}input{padding:0;margin:0;line-height:1.15;font-family:inherit}input[type=search]{-webkit-appearance:none}:focus{outline:var(--outline-color) solid var(--outline-size);outline-offset:calc(-1*var(--outline-size))}:host([data-js-focus-visible]) :focus:not([data-focus-visible-added]){outline:0}:focus:not(:focus-visible){outline:0}.hide-focus{outline:0}*{box-sizing:border-box}.picker{contain:content;display:flex;flex-direction:column;background:var(--background);border:var(--border-size) solid var(--border-color);width:100%;height:100%;overflow:hidden;--total-emoji-size:calc(var(--emoji-size) + (2 * var(--emoji-padding)));--total-category-emoji-size:calc(var(--category-emoji-size) + (2 * var(--category-emoji-padding)))}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.hidden{opacity:0;pointer-events:none}.abs-pos{position:absolute;left:0;top:0}.gone{display:none!important}.skintone-button-wrapper,.skintone-list{background:var(--background);z-index:3}.skintone-button-wrapper.expanded{z-index:1}.skintone-list{position:absolute;inset-inline-end:0;top:0;z-index:2;overflow:visible;border-bottom:var(--border-size) solid var(--border-color);border-radius:0 0 var(--skintone-border-radius) var(--skintone-border-radius);will-change:transform;transition:transform .2s ease-in-out;transform-origin:center 0}@media (prefers-reduced-motion:reduce){.skintone-list{transition-duration:.001s}}@supports not (inset-inline-end:0){.skintone-list{right:0}}.skintone-list.no-animate{transition:none}.tabpanel{overflow-y:auto;-webkit-overflow-scrolling:touch;will-change:transform;min-height:0;flex:1;contain:content}.emoji-menu{display:grid;grid-template-columns:repeat(var(--num-columns),var(--total-emoji-size));justify-content:space-around;align-items:flex-start;width:100%}.category{padding:var(--emoji-padding);font-size:var(--category-font-size);color:var(--category-font-color)}.custom-emoji,.emoji,button.emoji{height:var(--total-emoji-size);width:var(--total-emoji-size)}.emoji,button.emoji{font-size:var(--emoji-size);display:flex;align-items:center;justify-content:center;border-radius:100%;line-height:1;overflow:hidden;font-family:var(--font-family);cursor:pointer}@media (hover:hover) and (pointer:fine){.emoji:hover,button.emoji:hover{background:var(--button-hover-background)}}.emoji.active,.emoji:active,button.emoji.active,button.emoji:active{background:var(--button-active-background)}.custom-emoji{padding:var(--emoji-padding);object-fit:contain;pointer-events:none;background-repeat:no-repeat;background-position:center center;background-size:var(--emoji-size) var(--emoji-size)}.nav,.nav-button{align-items:center}.nav{display:grid;justify-content:space-between;contain:content}.nav-button{display:flex;justify-content:center}.nav-emoji{font-size:var(--category-emoji-size);width:var(--total-category-emoji-size);height:var(--total-category-emoji-size)}.indicator-wrapper{display:flex;border-bottom:1px solid var(--border-color)}.indicator{width:calc(100%/var(--num-groups));height:var(--indicator-height);opacity:var(--indicator-opacity);background-color:var(--indicator-color);will-change:transform,opacity;transition:opacity .1s linear,transform .25s ease-in-out}@media (prefers-reduced-motion:reduce){.indicator{will-change:opacity;transition:opacity .1s linear}}.pad-top,input.search{background:var(--background);width:100%}.pad-top{height:var(--emoji-padding);z-index:3}.search-row{display:flex;align-items:center;position:relative;padding-inline-start:var(--emoji-padding);padding-bottom:var(--emoji-padding)}.search-wrapper{flex:1;min-width:0}input.search{padding:var(--input-padding);border-radius:var(--input-border-radius);border:var(--input-border-size) solid var(--input-border-color);color:var(--input-font-color);font-size:var(--input-font-size);line-height:var(--input-line-height)}input.search::placeholder{color:var(--input-placeholder-color)}.favorites{display:flex;flex-direction:row;border-top:var(--border-size) solid var(--border-color);contain:content}.message{padding:var(--emoji-padding)}\";\n this.shadowRoot.appendChild(style);\n this._ctx = {\n locale: DEFAULT_LOCALE,\n dataSource: DEFAULT_DATA_SOURCE,\n skinToneEmoji: DEFAULT_SKIN_TONE_EMOJI,\n customCategorySorting: DEFAULT_CATEGORY_SORTING,\n customEmoji: null,\n i18n: enI18n,\n ...props\n };\n for (const prop of PROPS) {\n if (prop !== \"database\" && Object.prototype.hasOwnProperty.call(this, prop)) {\n this._ctx[prop] = this[prop];\n delete this[prop];\n }\n }\n this._dbFlush();\n }\n connectedCallback() {\n this._cmp = new Picker({\n target: this.shadowRoot,\n props: this._ctx\n });\n }\n disconnectedCallback() {\n this._cmp.$destroy();\n this._cmp = void 0;\n const { database } = this._ctx;\n if (database) {\n database.close().catch((err) => console.error(err));\n }\n }\n static get observedAttributes() {\n return [\"locale\", \"data-source\", \"skin-tone-emoji\"];\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n this._set(\n attrName.replace(/-([a-z])/g, (_, up) => up.toUpperCase()),\n newValue\n );\n }\n _set(prop, newValue) {\n this._ctx[prop] = newValue;\n if (this._cmp) {\n this._cmp.$set({ [prop]: newValue });\n }\n if ([\"locale\", \"dataSource\"].includes(prop)) {\n this._dbFlush();\n }\n }\n _dbCreate() {\n const { locale, dataSource, database } = this._ctx;\n if (!database || database.locale !== locale || database.dataSource !== dataSource) {\n this._set(\"database\", new Database({ locale, dataSource }));\n }\n }\n _dbFlush() {\n Promise.resolve().then(() => this._dbCreate());\n }\n}\nconst definitions = {};\nfor (const prop of PROPS) {\n definitions[prop] = {\n get() {\n if (prop === \"database\") {\n this._dbCreate();\n }\n return this._ctx[prop];\n },\n set(val) {\n if (prop === \"database\") {\n throw new Error(\"database is read-only\");\n }\n this._set(prop, val);\n }\n };\n}\nObject.defineProperties(PickerElement.prototype, definitions);\nif (!customElements.get(\"emoji-picker\")) {\n customElements.define(\"emoji-picker\", PickerElement);\n}\nfunction findParentBySelector(node, selector) {\n while (node && !node.querySelector(selector)) {\n node = node.parentNode;\n const element2 = node.querySelector(selector);\n if (element2)\n return element2;\n }\n return null;\n}\nconst _sfc_main$j = {\n name: \"EmojiPickerContainer\",\n components: {\n SvgIcon\n },\n props: {\n emojiOpened: { type: Boolean, default: false },\n emojiReaction: { type: Boolean, default: false },\n positionTop: { type: Boolean, default: false },\n positionRight: { type: Boolean, default: false },\n messageId: { type: String, default: \"\" },\n emojiDataSource: { type: String, default: void 0 }\n },\n emits: [\"add-emoji\", \"open-emoji\"],\n data() {\n return {\n emojiPickerHeight: 320,\n emojiPickerTop: 0,\n emojiPickerRight: \"\"\n };\n },\n watch: {\n emojiOpened(val) {\n if (val) {\n setTimeout(() => {\n this.addCustomStyling();\n this.$refs.emojiPicker.shadowRoot.addEventListener(\n \"emoji-click\",\n ({ detail }) => {\n this.$emit(\"add-emoji\", {\n unicode: detail.unicode\n });\n }\n );\n }, 0);\n }\n }\n },\n methods: {\n addCustomStyling() {\n const picker = `.picker {\n\t\t\t\tborder: none;\n\t\t\t}`;\n const nav = `.nav {\n\t\t\t\toverflow-x: auto;\n\t\t\t}`;\n const searchBox = `.search-wrapper {\n\t\t\t\tpadding-right: 2px;\n\t\t\t\tpadding-left: 2px;\n\t\t\t}`;\n const search2 = `input.search {\n\t\t\t\theight: 32px;\n\t\t\t\tfont-size: 14px;\n\t\t\t\tborder-radius: 10rem;\n\t\t\t\tborder: var(--chat-border-style);\n\t\t\t\tpadding: 5px 10px;\n\t\t\t\toutline: none;\n\t\t\t\tbackground: var(--chat-bg-color-input);\n\t\t\t\tcolor: var(--chat-color);\n\t\t\t}`;\n const style = document.createElement(\"style\");\n style.textContent = picker + nav + searchBox + search2;\n this.$refs.emojiPicker.shadowRoot.appendChild(style);\n },\n openEmoji(ev) {\n this.$emit(\"open-emoji\", !this.emojiOpened);\n this.setEmojiPickerPosition(\n ev.clientY,\n ev.view.innerWidth,\n ev.view.innerHeight\n );\n },\n setEmojiPickerPosition(clientY, innerWidth, innerHeight) {\n const mobileSize = innerWidth < 500 || innerHeight < 700;\n const roomFooterRef = findParentBySelector(this.$el, \"#room-footer\");\n if (!roomFooterRef) {\n if (mobileSize)\n this.emojiPickerRight = \"-50px\";\n return;\n }\n if (mobileSize) {\n this.emojiPickerRight = innerWidth / 2 - (this.positionTop ? 200 : 150) + \"px\";\n this.emojiPickerTop = 100;\n this.emojiPickerHeight = innerHeight - 200;\n } else {\n const roomFooterTop = roomFooterRef.getBoundingClientRect().top;\n const pickerTopPosition = roomFooterTop - clientY > this.emojiPickerHeight - 50;\n if (pickerTopPosition)\n this.emojiPickerTop = clientY + 10;\n else\n this.emojiPickerTop = clientY - this.emojiPickerHeight - 10;\n this.emojiPickerRight = this.positionTop ? \"0px\" : this.positionRight ? \"60px\" : \"\";\n }\n }\n }\n};\nconst _hoisted_1$j = { class: \"vac-emoji-wrapper\" };\nfunction _sfc_render$j(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n const _component_emoji_picker = resolveComponent(\"emoji-picker\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$j, [\n createBaseVNode(\"div\", {\n class: normalizeClass([\"vac-svg-button\", { \"vac-emoji-reaction\": $props.emojiReaction }]),\n onClick: _cache[0] || (_cache[0] = (...args) => $options.openEmoji && $options.openEmoji(...args))\n }, [\n renderSlot(\n _ctx.$slots,\n $props.messageId ? \"emoji-picker-reaction-icon_\" + $props.messageId : \"emoji-picker-icon\",\n {},\n () => [\n createVNode(_component_svg_icon, {\n name: \"emoji\",\n param: $props.emojiReaction ? \"reaction\" : \"\"\n }, null, 8, [\"param\"])\n ]\n )\n ], 2),\n $props.emojiOpened ? (openBlock(), createBlock(Transition, {\n key: 0,\n name: \"vac-slide-up\",\n appear: \"\"\n }, {\n default: withCtx(() => [\n createBaseVNode(\"div\", {\n class: normalizeClass([\"vac-emoji-picker\", { \"vac-picker-reaction\": $props.emojiReaction }]),\n style: normalizeStyle({\n height: `${$data.emojiPickerHeight}px`,\n top: $props.positionTop ? $data.emojiPickerHeight : `${$data.emojiPickerTop}px`,\n right: $data.emojiPickerRight,\n display: $data.emojiPickerTop || !$props.emojiReaction ? \"initial\" : \"none\"\n })\n }, [\n $props.emojiOpened ? (openBlock(), createBlock(_component_emoji_picker, {\n key: 0,\n ref: \"emojiPicker\",\n \"data-source\": $props.emojiDataSource\n }, null, 8, [\"data-source\"])) : createCommentVNode(\"\", true)\n ], 6)\n ]),\n _: 1\n })) : createCommentVNode(\"\", true)\n ]);\n}\nvar EmojiPickerContainer = /* @__PURE__ */ _export_sfc(_sfc_main$j, [[\"render\", _sfc_render$j]]);\nconst _sfc_main$i = {\n name: \"RoomFiles\",\n components: {\n Loader,\n SvgIcon\n },\n props: {\n file: { type: Object, required: true },\n index: { type: Number, required: true }\n },\n emits: [\"remove-file\"],\n computed: {\n isImage() {\n return isImageFile(this.file);\n },\n isVideo() {\n return isVideoFile(this.file);\n }\n }\n};\nconst _hoisted_1$i = { class: \"vac-room-file-container\" };\nconst _hoisted_2$g = [\"src\"];\nconst _hoisted_3$d = { class: \"vac-text-ellipsis\" };\nconst _hoisted_4$c = {\n key: 0,\n class: \"vac-text-ellipsis vac-text-extension\"\n};\nfunction _sfc_render$i(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_loader = resolveComponent(\"loader\");\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$i, [\n createVNode(_component_loader, {\n show: $props.file.loading,\n type: \"room-file\"\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"show\"]),\n createBaseVNode(\"div\", {\n class: \"vac-svg-button vac-icon-remove\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"remove-file\", $props.index))\n }, [\n renderSlot(_ctx.$slots, \"image-close-icon\", {}, () => [\n createVNode(_component_svg_icon, {\n name: \"close\",\n param: \"image\"\n })\n ])\n ]),\n $options.isImage ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"vac-message-image\", { \"vac-blur-loading\": $props.file.loading }]),\n style: normalizeStyle({\n \"background-image\": `url('${$props.file.localUrl || $props.file.url}')`\n })\n }, null, 6)) : $options.isVideo ? (openBlock(), createElementBlock(\"video\", {\n key: 1,\n controls: \"\",\n class: normalizeClass({ \"vac-blur-loading\": $props.file.loading })\n }, [\n createBaseVNode(\"source\", {\n src: $props.file.localUrl || $props.file.url\n }, null, 8, _hoisted_2$g)\n ], 2)) : (openBlock(), createElementBlock(\"div\", {\n key: 2,\n class: normalizeClass([\"vac-file-container\", { \"vac-blur-loading\": $props.file.loading }])\n }, [\n createBaseVNode(\"div\", null, [\n renderSlot(_ctx.$slots, \"file-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"file\" })\n ])\n ]),\n createBaseVNode(\"div\", _hoisted_3$d, toDisplayString($props.file.name), 1),\n $props.file.extension ? (openBlock(), createElementBlock(\"div\", _hoisted_4$c, toDisplayString($props.file.extension), 1)) : createCommentVNode(\"\", true)\n ], 2))\n ]);\n}\nvar RoomFile = /* @__PURE__ */ _export_sfc(_sfc_main$i, [[\"render\", _sfc_render$i]]);\nconst _sfc_main$h = {\n name: \"RoomFiles\",\n components: {\n SvgIcon,\n RoomFile\n },\n props: {\n files: { type: Array, required: true }\n },\n emits: [\"remove-file\", \"reset-message\"],\n computed: {}\n};\nconst _hoisted_1$h = {\n key: 0,\n class: \"vac-room-files-container\"\n};\nconst _hoisted_2$f = { class: \"vac-files-box\" };\nconst _hoisted_3$c = { class: \"vac-icon-close\" };\nfunction _sfc_render$h(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_room_file = resolveComponent(\"room-file\");\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n return openBlock(), createBlock(Transition, { name: \"vac-slide-up\" }, {\n default: withCtx(() => [\n $props.files.length ? (openBlock(), createElementBlock(\"div\", _hoisted_1$h, [\n createBaseVNode(\"div\", _hoisted_2$f, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($props.files, (file, i) => {\n return openBlock(), createElementBlock(\"div\", { key: i }, [\n createVNode(_component_room_file, {\n file,\n index: i,\n onRemoveFile: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"remove-file\", $event))\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"file\", \"index\"])\n ]);\n }), 128))\n ]),\n createBaseVNode(\"div\", _hoisted_3$c, [\n createBaseVNode(\"div\", {\n class: \"vac-svg-button\",\n onClick: _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"reset-message\"))\n }, [\n renderSlot(_ctx.$slots, \"files-close-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"close-outline\" })\n ])\n ])\n ])\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 3\n });\n}\nvar RoomFiles = /* @__PURE__ */ _export_sfc(_sfc_main$h, [[\"render\", _sfc_render$h]]);\nconst _sfc_main$g = {\n props: {\n percentage: { type: Number, default: 0 },\n messageSelectionEnabled: { type: Boolean, required: true }\n },\n emits: [\"hover-audio-progress\", \"change-linehead\"],\n data() {\n return {\n isMouseDown: false\n };\n },\n methods: {\n onMouseDown(ev) {\n if (this.messageSelectionEnabled)\n return;\n this.isMouseDown = true;\n const seekPos = this.calculateLineHeadPosition(ev, this.$refs.progress);\n this.$emit(\"change-linehead\", seekPos);\n document.addEventListener(\"mousemove\", this.onMouseMove);\n document.addEventListener(\"mouseup\", this.onMouseUp);\n },\n onMouseUp(ev) {\n if (this.messageSelectionEnabled)\n return;\n this.isMouseDown = false;\n document.removeEventListener(\"mouseup\", this.onMouseUp);\n document.removeEventListener(\"mousemove\", this.onMouseMove);\n const seekPos = this.calculateLineHeadPosition(ev, this.$refs.progress);\n this.$emit(\"change-linehead\", seekPos);\n },\n onMouseMove(ev) {\n if (this.messageSelectionEnabled)\n return;\n const seekPos = this.calculateLineHeadPosition(ev, this.$refs.progress);\n this.$emit(\"change-linehead\", seekPos);\n },\n calculateLineHeadPosition(ev, element2) {\n const progressWidth = element2.getBoundingClientRect().width;\n const leftPosition = element2.getBoundingClientRect().left;\n let pos = (ev.clientX - leftPosition) / progressWidth;\n pos = pos < 0 ? 0 : pos;\n pos = pos > 1 ? 1 : pos;\n return pos;\n }\n }\n};\nconst _hoisted_1$g = { class: \"vac-player-progress\" };\nconst _hoisted_2$e = { class: \"vac-line-container\" };\nfunction _sfc_render$g(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", {\n ref: \"progress\",\n class: \"vac-player-bar\",\n onMousedown: _cache[0] || (_cache[0] = (...args) => $options.onMouseDown && $options.onMouseDown(...args)),\n onMouseover: _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"hover-audio-progress\", true)),\n onMouseout: _cache[2] || (_cache[2] = ($event) => _ctx.$emit(\"hover-audio-progress\", false))\n }, [\n createBaseVNode(\"div\", _hoisted_1$g, [\n createBaseVNode(\"div\", _hoisted_2$e, [\n createBaseVNode(\"div\", {\n class: \"vac-line-progress\",\n style: normalizeStyle({ width: `${$props.percentage}%` })\n }, null, 4),\n createBaseVNode(\"div\", {\n class: normalizeClass([\"vac-line-dot\", { \"vac-line-dot__active\": $data.isMouseDown }]),\n style: normalizeStyle({ left: `${$props.percentage}%` })\n }, null, 6)\n ])\n ])\n ], 544);\n}\nvar AudioControl = /* @__PURE__ */ _export_sfc(_sfc_main$g, [[\"render\", _sfc_render$g]]);\nconst _sfc_main$f = {\n name: \"AudioPlayer\",\n components: {\n SvgIcon,\n AudioControl\n },\n props: {\n messageId: { type: [String, Number], default: null },\n src: { type: String, default: null },\n messageSelectionEnabled: { type: Boolean, required: true }\n },\n emits: [\"hover-audio-progress\", \"update-progress-time\"],\n data() {\n return {\n isPlaying: false,\n duration: this.convertTimeMMSS(0),\n playedTime: this.convertTimeMMSS(0),\n progress: 0\n };\n },\n computed: {\n playerUniqId() {\n return `audio-player${this.messageId}`;\n },\n audioSource() {\n if (this.src)\n return this.src;\n this.resetProgress();\n return null;\n }\n },\n mounted() {\n this.player = this.$el.querySelector(\"#\" + this.playerUniqId);\n this.player.addEventListener(\"ended\", () => {\n this.isPlaying = false;\n });\n this.player.addEventListener(\"loadeddata\", () => {\n this.resetProgress();\n this.duration = this.convertTimeMMSS(this.player.duration);\n this.updateProgressTime();\n });\n this.player.addEventListener(\"timeupdate\", this.onTimeUpdate);\n },\n methods: {\n convertTimeMMSS(seconds) {\n return new Date(seconds * 1e3).toISOString().substr(14, 5);\n },\n playback() {\n if (this.messageSelectionEnabled || !this.audioSource)\n return;\n if (this.isPlaying)\n this.player.pause();\n else\n setTimeout(() => this.player.play());\n this.isPlaying = !this.isPlaying;\n },\n resetProgress() {\n if (this.isPlaying)\n this.player.pause();\n this.duration = this.convertTimeMMSS(0);\n this.playedTime = this.convertTimeMMSS(0);\n this.progress = 0;\n this.isPlaying = false;\n this.updateProgressTime();\n },\n onTimeUpdate() {\n this.playedTime = this.convertTimeMMSS(this.player.currentTime);\n this.progress = this.player.currentTime / this.player.duration * 100;\n this.updateProgressTime();\n },\n onUpdateProgress(pos) {\n if (pos)\n this.player.currentTime = pos * this.player.duration;\n },\n updateProgressTime() {\n this.$emit(\n \"update-progress-time\",\n this.progress > 1 ? this.playedTime : this.duration\n );\n }\n }\n};\nconst _hoisted_1$f = { class: \"vac-audio-player\" };\nconst _hoisted_2$d = [\"id\", \"src\"];\nfunction _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n const _component_audio_control = resolveComponent(\"audio-control\");\n return openBlock(), createElementBlock(\"div\", null, [\n createBaseVNode(\"div\", _hoisted_1$f, [\n createBaseVNode(\"div\", {\n class: \"vac-svg-button\",\n onClick: _cache[0] || (_cache[0] = (...args) => $options.playback && $options.playback(...args))\n }, [\n $data.isPlaying ? renderSlot(_ctx.$slots, \"audio-pause-icon_\" + $props.messageId, { key: 0 }, () => [\n createVNode(_component_svg_icon, { name: \"audio-pause\" })\n ]) : renderSlot(_ctx.$slots, \"audio-play-icon_\" + $props.messageId, { key: 1 }, () => [\n createVNode(_component_svg_icon, { name: \"audio-play\" })\n ])\n ]),\n createVNode(_component_audio_control, {\n percentage: $data.progress,\n \"message-selection-enabled\": $props.messageSelectionEnabled,\n onChangeLinehead: $options.onUpdateProgress,\n onHoverAudioProgress: _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"hover-audio-progress\", $event))\n }, null, 8, [\"percentage\", \"message-selection-enabled\", \"onChangeLinehead\"]),\n createBaseVNode(\"audio\", {\n id: $options.playerUniqId,\n src: $options.audioSource\n }, null, 8, _hoisted_2$d)\n ])\n ]);\n}\nvar AudioPlayer = /* @__PURE__ */ _export_sfc(_sfc_main$f, [[\"render\", _sfc_render$f]]);\nconst _sfc_main$e = {\n name: \"RoomMessageReply\",\n components: {\n SvgIcon,\n FormatMessage,\n AudioPlayer\n },\n props: {\n room: { type: Object, required: true },\n messageReply: { type: Object, default: null },\n textFormatting: { type: Object, required: true },\n linkOptions: { type: Object, required: true }\n },\n emits: [\"reset-message\"],\n computed: {\n firstFile() {\n var _a, _b;\n return ((_b = (_a = this.messageReply) == null ? void 0 : _a.files) == null ? void 0 : _b.length) ? this.messageReply.files[0] : {};\n },\n isImage() {\n return isImageFile(this.firstFile);\n },\n isVideo() {\n return isVideoFile(this.firstFile);\n },\n isAudio() {\n return isAudioFile(this.firstFile);\n },\n isOtherFile() {\n var _a, _b;\n return ((_b = (_a = this.messageReply) == null ? void 0 : _a.files) == null ? void 0 : _b.length) && !this.isAudio && !this.isVideo && !this.isImage;\n }\n }\n};\nconst _hoisted_1$e = {\n key: 0,\n class: \"vac-reply-container\"\n};\nconst _hoisted_2$c = { class: \"vac-reply-box\" };\nconst _hoisted_3$b = { class: \"vac-reply-info\" };\nconst _hoisted_4$b = { class: \"vac-reply-username\" };\nconst _hoisted_5$8 = { class: \"vac-reply-content\" };\nconst _hoisted_6$4 = [\"src\"];\nconst _hoisted_7$4 = {\n key: 1,\n controls: \"\",\n class: \"vac-image-reply\"\n};\nconst _hoisted_8$2 = [\"src\"];\nconst _hoisted_9$2 = {\n key: 3,\n class: \"vac-image-reply vac-file-container\"\n};\nconst _hoisted_10$2 = { class: \"vac-text-ellipsis\" };\nconst _hoisted_11$1 = {\n key: 0,\n class: \"vac-text-ellipsis vac-text-extension\"\n};\nconst _hoisted_12$1 = { class: \"vac-icon-reply\" };\nfunction _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_format_message = resolveComponent(\"format-message\");\n const _component_audio_player = resolveComponent(\"audio-player\");\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n return openBlock(), createBlock(Transition, { name: \"vac-slide-up\" }, {\n default: withCtx(() => [\n $props.messageReply ? (openBlock(), createElementBlock(\"div\", _hoisted_1$e, [\n createBaseVNode(\"div\", _hoisted_2$c, [\n createBaseVNode(\"div\", _hoisted_3$b, [\n createBaseVNode(\"div\", _hoisted_4$b, toDisplayString($props.messageReply.username), 1),\n createBaseVNode(\"div\", _hoisted_5$8, [\n createVNode(_component_format_message, {\n \"message-id\": $props.messageReply._id,\n content: $props.messageReply.content,\n users: $props.room.users,\n \"text-formatting\": $props.textFormatting,\n \"link-options\": $props.linkOptions,\n reply: true\n }, null, 8, [\"message-id\", \"content\", \"users\", \"text-formatting\", \"link-options\"])\n ])\n ]),\n $options.isImage ? (openBlock(), createElementBlock(\"img\", {\n key: 0,\n src: $options.firstFile.url,\n class: \"vac-image-reply\"\n }, null, 8, _hoisted_6$4)) : $options.isVideo ? (openBlock(), createElementBlock(\"video\", _hoisted_7$4, [\n createBaseVNode(\"source\", {\n src: $options.firstFile.url\n }, null, 8, _hoisted_8$2)\n ])) : $options.isAudio ? (openBlock(), createBlock(_component_audio_player, {\n key: 2,\n src: $options.firstFile.url,\n \"message-selection-enabled\": false,\n class: \"vac-audio-reply\"\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"src\"])) : $options.isOtherFile ? (openBlock(), createElementBlock(\"div\", _hoisted_9$2, [\n createBaseVNode(\"div\", null, [\n renderSlot(_ctx.$slots, \"file-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"file\" })\n ])\n ]),\n createBaseVNode(\"div\", _hoisted_10$2, toDisplayString($options.firstFile.name), 1),\n $options.firstFile.extension ? (openBlock(), createElementBlock(\"div\", _hoisted_11$1, toDisplayString($options.firstFile.extension), 1)) : createCommentVNode(\"\", true)\n ])) : createCommentVNode(\"\", true)\n ]),\n createBaseVNode(\"div\", _hoisted_12$1, [\n createBaseVNode(\"div\", {\n class: \"vac-svg-button\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"reset-message\"))\n }, [\n renderSlot(_ctx.$slots, \"reply-close-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"close-outline\" })\n ])\n ])\n ])\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 3\n });\n}\nvar RoomMessageReply = /* @__PURE__ */ _export_sfc(_sfc_main$e, [[\"render\", _sfc_render$e]]);\nconst _sfc_main$d = {\n name: \"RoomUsersTag\",\n props: {\n filteredUsersTag: { type: Array, required: true },\n selectItem: { type: Boolean, default: null },\n activeUpOrDown: { type: Number, default: null }\n },\n emits: [\"select-user-tag\", \"activate-item\"],\n data() {\n return {\n activeItem: null\n };\n },\n watch: {\n filteredUsersTag(val, oldVal) {\n if (!oldVal.length || val.length !== oldVal.length) {\n this.activeItem = 0;\n }\n },\n selectItem(val) {\n if (val) {\n this.$emit(\"select-user-tag\", this.filteredUsersTag[this.activeItem]);\n }\n },\n activeUpOrDown() {\n if (this.activeUpOrDown > 0 && this.activeItem < this.filteredUsersTag.length - 1) {\n this.activeItem++;\n } else if (this.activeUpOrDown < 0 && this.activeItem > 0) {\n this.activeItem--;\n }\n this.$emit(\"activate-item\");\n }\n }\n};\nconst _hoisted_1$d = {\n key: 0,\n class: \"vac-tags-container\"\n};\nconst _hoisted_2$b = [\"onMouseover\", \"onClick\"];\nconst _hoisted_3$a = { class: \"vac-tags-info\" };\nconst _hoisted_4$a = { class: \"vac-tags-username\" };\nfunction _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createBlock(Transition, { name: \"vac-slide-up\" }, {\n default: withCtx(() => [\n $props.filteredUsersTag.length ? (openBlock(), createElementBlock(\"div\", _hoisted_1$d, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($props.filteredUsersTag, (user, index) => {\n return openBlock(), createElementBlock(\"div\", {\n key: user._id,\n class: normalizeClass([\"vac-tags-box\", { \"vac-tags-box-active\": index === $data.activeItem }]),\n onMouseover: ($event) => $data.activeItem = index,\n onClick: ($event) => _ctx.$emit(\"select-user-tag\", user)\n }, [\n createBaseVNode(\"div\", _hoisted_3$a, [\n user.avatar ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: \"vac-avatar vac-tags-avatar\",\n style: normalizeStyle({ \"background-image\": `url('${user.avatar}')` })\n }, null, 4)) : createCommentVNode(\"\", true),\n createBaseVNode(\"div\", _hoisted_4$a, toDisplayString(user.username), 1)\n ])\n ], 42, _hoisted_2$b);\n }), 128))\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 1\n });\n}\nvar RoomUsersTag = /* @__PURE__ */ _export_sfc(_sfc_main$d, [[\"render\", _sfc_render$d]]);\nconst _sfc_main$c = {\n name: \"RoomEmojis\",\n props: {\n filteredEmojis: { type: Array, required: true },\n selectItem: { type: Boolean, default: null },\n activeUpOrDown: { type: Number, default: null }\n },\n emits: [\"select-emoji\", \"activate-item\"],\n data() {\n return {\n activeItem: null\n };\n },\n watch: {\n filteredEmojis(val, oldVal) {\n if (!oldVal.length || val.length !== oldVal.length) {\n this.activeItem = 0;\n }\n },\n selectItem(val) {\n if (val) {\n this.$emit(\"select-emoji\", this.filteredEmojis[this.activeItem]);\n }\n },\n activeUpOrDown() {\n if (this.activeUpOrDown > 0 && this.activeItem < this.filteredEmojis.length - 1) {\n this.activeItem++;\n } else if (this.activeUpOrDown < 0 && this.activeItem > 0) {\n this.activeItem--;\n }\n this.$emit(\"activate-item\");\n }\n }\n};\nconst _hoisted_1$c = {\n key: 0,\n class: \"vac-emojis-container\"\n};\nconst _hoisted_2$a = [\"onMouseover\", \"onClick\"];\nfunction _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createBlock(Transition, { name: \"vac-slide-up\" }, {\n default: withCtx(() => [\n $props.filteredEmojis.length ? (openBlock(), createElementBlock(\"div\", _hoisted_1$c, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($props.filteredEmojis, (emoji, index) => {\n return openBlock(), createElementBlock(\"div\", {\n key: emoji,\n class: normalizeClass([\"vac-emoji-element\", { \"vac-emoji-element-active\": index === $data.activeItem }]),\n onMouseover: ($event) => $data.activeItem = index,\n onClick: ($event) => _ctx.$emit(\"select-emoji\", emoji)\n }, toDisplayString(emoji), 43, _hoisted_2$a);\n }), 128))\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 1\n });\n}\nvar RoomEmojis = /* @__PURE__ */ _export_sfc(_sfc_main$c, [[\"render\", _sfc_render$c]]);\nconst _sfc_main$b = {\n name: \"RoomTemplatesText\",\n props: {\n filteredTemplatesText: { type: Array, required: true },\n selectItem: { type: Boolean, default: null },\n activeUpOrDown: { type: Number, default: null }\n },\n emits: [\"select-template-text\", \"activate-item\"],\n data() {\n return {\n activeItem: null\n };\n },\n watch: {\n filteredTemplatesText(val, oldVal) {\n if (!oldVal.length || val.length !== oldVal.length) {\n this.activeItem = 0;\n }\n },\n selectItem(val) {\n if (val) {\n this.$emit(\n \"select-template-text\",\n this.filteredTemplatesText[this.activeItem]\n );\n }\n },\n activeUpOrDown() {\n if (this.activeUpOrDown > 0 && this.activeItem < this.filteredTemplatesText.length - 1) {\n this.activeItem++;\n } else if (this.activeUpOrDown < 0 && this.activeItem > 0) {\n this.activeItem--;\n }\n this.$emit(\"activate-item\");\n }\n }\n};\nconst _hoisted_1$b = {\n key: 0,\n class: \"vac-template-container vac-app-box-shadow\"\n};\nconst _hoisted_2$9 = [\"onMouseover\", \"onClick\"];\nconst _hoisted_3$9 = { class: \"vac-template-info\" };\nconst _hoisted_4$9 = { class: \"vac-template-tag\" };\nconst _hoisted_5$7 = { class: \"vac-template-text\" };\nfunction _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createBlock(Transition, { name: \"vac-slide-up\" }, {\n default: withCtx(() => [\n $props.filteredTemplatesText.length ? (openBlock(), createElementBlock(\"div\", _hoisted_1$b, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($props.filteredTemplatesText, (template, index) => {\n return openBlock(), createElementBlock(\"div\", {\n key: index,\n class: normalizeClass([\"vac-template-box\", { \"vac-template-active\": index === $data.activeItem }]),\n onMouseover: ($event) => $data.activeItem = index,\n onClick: ($event) => _ctx.$emit(\"select-template-text\", template)\n }, [\n createBaseVNode(\"div\", _hoisted_3$9, [\n createBaseVNode(\"div\", _hoisted_4$9, \" /\" + toDisplayString(template.tag), 1),\n createBaseVNode(\"div\", _hoisted_5$7, toDisplayString(template.text), 1)\n ])\n ], 42, _hoisted_2$9);\n }), 128))\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 1\n });\n}\nvar RoomTemplatesText = /* @__PURE__ */ _export_sfc(_sfc_main$b, [[\"render\", _sfc_render$b]]);\nfunction new_byte$4(count) {\n return new Int8Array(count);\n}\nfunction new_short(count) {\n return new Int16Array(count);\n}\nfunction new_int$d(count) {\n return new Int32Array(count);\n}\nfunction new_float$f(count) {\n return new Float32Array(count);\n}\nfunction new_double$1(count) {\n return new Float64Array(count);\n}\nfunction new_float_n$6(args) {\n if (args.length == 1) {\n return new_float$f(args[0]);\n }\n var sz = args[0];\n args = args.slice(1);\n var A = [];\n for (var i = 0; i < sz; i++) {\n A.push(new_float_n$6(args));\n }\n return A;\n}\nfunction new_int_n$2(args) {\n if (args.length == 1) {\n return new_int$d(args[0]);\n }\n var sz = args[0];\n args = args.slice(1);\n var A = [];\n for (var i = 0; i < sz; i++) {\n A.push(new_int_n$2(args));\n }\n return A;\n}\nfunction new_short_n$1(args) {\n if (args.length == 1) {\n return new_short(args[0]);\n }\n var sz = args[0];\n args = args.slice(1);\n var A = [];\n for (var i = 0; i < sz; i++) {\n A.push(new_short_n$1(args));\n }\n return A;\n}\nfunction new_array_n$1(args) {\n if (args.length == 1) {\n return new Array(args[0]);\n }\n var sz = args[0];\n args = args.slice(1);\n var A = [];\n for (var i = 0; i < sz; i++) {\n A.push(new_array_n$1(args));\n }\n return A;\n}\nvar Arrays$7 = {};\nArrays$7.fill = function(a, fromIndex, toIndex, val) {\n if (arguments.length == 2) {\n for (var i = 0; i < a.length; i++) {\n a[i] = arguments[1];\n }\n } else {\n for (var i = fromIndex; i < toIndex; i++) {\n a[i] = val;\n }\n }\n};\nvar System$a = {};\nSystem$a.arraycopy = function(src, srcPos, dest, destPos, length) {\n var srcEnd = srcPos + length;\n while (srcPos < srcEnd)\n dest[destPos++] = src[srcPos++];\n};\nSystem$a.out = {};\nSystem$a.out.println = function(message) {\n console.log(message);\n};\nSystem$a.out.printf = function() {\n console.log.apply(console, arguments);\n};\nvar Util$5 = {};\nUtil$5.SQRT2 = 1.4142135623730951;\nUtil$5.FAST_LOG10 = function(x) {\n return Math.log10(x);\n};\nUtil$5.FAST_LOG10_X = function(x, y) {\n return Math.log10(x) * y;\n};\nfunction ShortBlock$3(ordinal) {\n this.ordinal = ordinal;\n}\nShortBlock$3.short_block_allowed = new ShortBlock$3(0);\nShortBlock$3.short_block_coupled = new ShortBlock$3(1);\nShortBlock$3.short_block_dispensed = new ShortBlock$3(2);\nShortBlock$3.short_block_forced = new ShortBlock$3(3);\nvar Float$2 = {};\nFloat$2.MAX_VALUE = 34028235e31;\nfunction VbrMode$7(ordinal) {\n this.ordinal = ordinal;\n}\nVbrMode$7.vbr_off = new VbrMode$7(0);\nVbrMode$7.vbr_mt = new VbrMode$7(1);\nVbrMode$7.vbr_rh = new VbrMode$7(2);\nVbrMode$7.vbr_abr = new VbrMode$7(3);\nVbrMode$7.vbr_mtrh = new VbrMode$7(4);\nVbrMode$7.vbr_default = VbrMode$7.vbr_mtrh;\nvar assert$b = function(x) {\n};\nvar common = {\n System: System$a,\n VbrMode: VbrMode$7,\n Float: Float$2,\n ShortBlock: ShortBlock$3,\n Util: Util$5,\n Arrays: Arrays$7,\n new_array_n: new_array_n$1,\n new_byte: new_byte$4,\n new_double: new_double$1,\n new_float: new_float$f,\n new_float_n: new_float_n$6,\n new_int: new_int$d,\n new_int_n: new_int_n$2,\n new_short,\n new_short_n: new_short_n$1,\n assert: assert$b\n};\nvar System$9 = common.System;\nvar Util$4 = common.Util;\nvar Arrays$6 = common.Arrays;\nvar new_float$e = common.new_float;\nfunction NewMDCT() {\n var enwindow = [\n -477e-9 * 0.740951125354959 / 2384e-9,\n 103951e-9 * 0.740951125354959 / 2384e-9,\n 953674e-9 * 0.740951125354959 / 2384e-9,\n 2841473e-9 * 0.740951125354959 / 2384e-9,\n 0.035758972 * 0.740951125354959 / 2384e-9,\n 3401756e-9 * 0.740951125354959 / 2384e-9,\n 983715e-9 * 0.740951125354959 / 2384e-9,\n 99182e-9 * 0.740951125354959 / 2384e-9,\n 12398e-9 * 0.740951125354959 / 2384e-9,\n 191212e-9 * 0.740951125354959 / 2384e-9,\n 2283096e-9 * 0.740951125354959 / 2384e-9,\n 0.016994476 * 0.740951125354959 / 2384e-9,\n -0.018756866 * 0.740951125354959 / 2384e-9,\n -2630711e-9 * 0.740951125354959 / 2384e-9,\n -247478e-9 * 0.740951125354959 / 2384e-9,\n -14782e-9 * 0.740951125354959 / 2384e-9,\n 0.9063471690191471,\n 0.1960342806591213,\n -477e-9 * 0.773010453362737 / 2384e-9,\n 105858e-9 * 0.773010453362737 / 2384e-9,\n 930786e-9 * 0.773010453362737 / 2384e-9,\n 2521515e-9 * 0.773010453362737 / 2384e-9,\n 0.035694122 * 0.773010453362737 / 2384e-9,\n 3643036e-9 * 0.773010453362737 / 2384e-9,\n 991821e-9 * 0.773010453362737 / 2384e-9,\n 96321e-9 * 0.773010453362737 / 2384e-9,\n 11444e-9 * 0.773010453362737 / 2384e-9,\n 165462e-9 * 0.773010453362737 / 2384e-9,\n 2110004e-9 * 0.773010453362737 / 2384e-9,\n 0.016112804 * 0.773010453362737 / 2384e-9,\n -0.019634247 * 0.773010453362737 / 2384e-9,\n -2803326e-9 * 0.773010453362737 / 2384e-9,\n -277042e-9 * 0.773010453362737 / 2384e-9,\n -16689e-9 * 0.773010453362737 / 2384e-9,\n 0.8206787908286602,\n 0.3901806440322567,\n -477e-9 * 0.803207531480645 / 2384e-9,\n 107288e-9 * 0.803207531480645 / 2384e-9,\n 902653e-9 * 0.803207531480645 / 2384e-9,\n 2174854e-9 * 0.803207531480645 / 2384e-9,\n 0.035586357 * 0.803207531480645 / 2384e-9,\n 3858566e-9 * 0.803207531480645 / 2384e-9,\n 995159e-9 * 0.803207531480645 / 2384e-9,\n 9346e-8 * 0.803207531480645 / 2384e-9,\n 10014e-9 * 0.803207531480645 / 2384e-9,\n 14019e-8 * 0.803207531480645 / 2384e-9,\n 1937389e-9 * 0.803207531480645 / 2384e-9,\n 0.015233517 * 0.803207531480645 / 2384e-9,\n -0.020506859 * 0.803207531480645 / 2384e-9,\n -2974033e-9 * 0.803207531480645 / 2384e-9,\n -30756e-8 * 0.803207531480645 / 2384e-9,\n -1812e-8 * 0.803207531480645 / 2384e-9,\n 0.7416505462720353,\n 0.5805693545089249,\n -477e-9 * 0.831469612302545 / 2384e-9,\n 108242e-9 * 0.831469612302545 / 2384e-9,\n 868797e-9 * 0.831469612302545 / 2384e-9,\n 1800537e-9 * 0.831469612302545 / 2384e-9,\n 0.0354352 * 0.831469612302545 / 2384e-9,\n 4049301e-9 * 0.831469612302545 / 2384e-9,\n 994205e-9 * 0.831469612302545 / 2384e-9,\n 90599e-9 * 0.831469612302545 / 2384e-9,\n 906e-8 * 0.831469612302545 / 2384e-9,\n 116348e-9 * 0.831469612302545 / 2384e-9,\n 1766682e-9 * 0.831469612302545 / 2384e-9,\n 0.014358521 * 0.831469612302545 / 2384e-9,\n -0.021372318 * 0.831469612302545 / 2384e-9,\n -314188e-8 * 0.831469612302545 / 2384e-9,\n -339031e-9 * 0.831469612302545 / 2384e-9,\n -1955e-8 * 0.831469612302545 / 2384e-9,\n 0.6681786379192989,\n 0.7653668647301797,\n -477e-9 * 0.857728610000272 / 2384e-9,\n 108719e-9 * 0.857728610000272 / 2384e-9,\n 82922e-8 * 0.857728610000272 / 2384e-9,\n 1399517e-9 * 0.857728610000272 / 2384e-9,\n 0.035242081 * 0.857728610000272 / 2384e-9,\n 421524e-8 * 0.857728610000272 / 2384e-9,\n 989437e-9 * 0.857728610000272 / 2384e-9,\n 87261e-9 * 0.857728610000272 / 2384e-9,\n 8106e-9 * 0.857728610000272 / 2384e-9,\n 93937e-9 * 0.857728610000272 / 2384e-9,\n 1597881e-9 * 0.857728610000272 / 2384e-9,\n 0.013489246 * 0.857728610000272 / 2384e-9,\n -0.022228718 * 0.857728610000272 / 2384e-9,\n -3306866e-9 * 0.857728610000272 / 2384e-9,\n -371456e-9 * 0.857728610000272 / 2384e-9,\n -21458e-9 * 0.857728610000272 / 2384e-9,\n 0.5993769336819237,\n 0.9427934736519954,\n -477e-9 * 0.881921264348355 / 2384e-9,\n 108719e-9 * 0.881921264348355 / 2384e-9,\n 78392e-8 * 0.881921264348355 / 2384e-9,\n 971317e-9 * 0.881921264348355 / 2384e-9,\n 0.035007 * 0.881921264348355 / 2384e-9,\n 4357815e-9 * 0.881921264348355 / 2384e-9,\n 980854e-9 * 0.881921264348355 / 2384e-9,\n 83923e-9 * 0.881921264348355 / 2384e-9,\n 7629e-9 * 0.881921264348355 / 2384e-9,\n 72956e-9 * 0.881921264348355 / 2384e-9,\n 1432419e-9 * 0.881921264348355 / 2384e-9,\n 0.012627602 * 0.881921264348355 / 2384e-9,\n -0.02307415 * 0.881921264348355 / 2384e-9,\n -3467083e-9 * 0.881921264348355 / 2384e-9,\n -404358e-9 * 0.881921264348355 / 2384e-9,\n -23365e-9 * 0.881921264348355 / 2384e-9,\n 0.5345111359507916,\n 1.111140466039205,\n -954e-9 * 0.903989293123443 / 2384e-9,\n 108242e-9 * 0.903989293123443 / 2384e-9,\n 731945e-9 * 0.903989293123443 / 2384e-9,\n 515938e-9 * 0.903989293123443 / 2384e-9,\n 0.034730434 * 0.903989293123443 / 2384e-9,\n 4477024e-9 * 0.903989293123443 / 2384e-9,\n 968933e-9 * 0.903989293123443 / 2384e-9,\n 80585e-9 * 0.903989293123443 / 2384e-9,\n 6676e-9 * 0.903989293123443 / 2384e-9,\n 52929e-9 * 0.903989293123443 / 2384e-9,\n 1269817e-9 * 0.903989293123443 / 2384e-9,\n 0.011775017 * 0.903989293123443 / 2384e-9,\n -0.023907185 * 0.903989293123443 / 2384e-9,\n -3622532e-9 * 0.903989293123443 / 2384e-9,\n -438213e-9 * 0.903989293123443 / 2384e-9,\n -25272e-9 * 0.903989293123443 / 2384e-9,\n 0.4729647758913199,\n 1.268786568327291,\n -954e-9 * 0.9238795325112867 / 2384e-9,\n 106812e-9 * 0.9238795325112867 / 2384e-9,\n 674248e-9 * 0.9238795325112867 / 2384e-9,\n 33379e-9 * 0.9238795325112867 / 2384e-9,\n 0.034412861 * 0.9238795325112867 / 2384e-9,\n 4573822e-9 * 0.9238795325112867 / 2384e-9,\n 954151e-9 * 0.9238795325112867 / 2384e-9,\n 76771e-9 * 0.9238795325112867 / 2384e-9,\n 6199e-9 * 0.9238795325112867 / 2384e-9,\n 34332e-9 * 0.9238795325112867 / 2384e-9,\n 1111031e-9 * 0.9238795325112867 / 2384e-9,\n 0.010933399 * 0.9238795325112867 / 2384e-9,\n -0.024725437 * 0.9238795325112867 / 2384e-9,\n -3771782e-9 * 0.9238795325112867 / 2384e-9,\n -472546e-9 * 0.9238795325112867 / 2384e-9,\n -27657e-9 * 0.9238795325112867 / 2384e-9,\n 0.41421356237309503,\n 1.414213562373095,\n -954e-9 * 0.941544065183021 / 2384e-9,\n 105381e-9 * 0.941544065183021 / 2384e-9,\n 610352e-9 * 0.941544065183021 / 2384e-9,\n -475883e-9 * 0.941544065183021 / 2384e-9,\n 0.03405571 * 0.941544065183021 / 2384e-9,\n 4649162e-9 * 0.941544065183021 / 2384e-9,\n 935555e-9 * 0.941544065183021 / 2384e-9,\n 73433e-9 * 0.941544065183021 / 2384e-9,\n 5245e-9 * 0.941544065183021 / 2384e-9,\n 17166e-9 * 0.941544065183021 / 2384e-9,\n 956535e-9 * 0.941544065183021 / 2384e-9,\n 0.010103703 * 0.941544065183021 / 2384e-9,\n -0.025527 * 0.941544065183021 / 2384e-9,\n -3914356e-9 * 0.941544065183021 / 2384e-9,\n -507355e-9 * 0.941544065183021 / 2384e-9,\n -30041e-9 * 0.941544065183021 / 2384e-9,\n 0.3578057213145241,\n 1.546020906725474,\n -954e-9 * 0.956940335732209 / 2384e-9,\n 10252e-8 * 0.956940335732209 / 2384e-9,\n 539303e-9 * 0.956940335732209 / 2384e-9,\n -1011848e-9 * 0.956940335732209 / 2384e-9,\n 0.033659935 * 0.956940335732209 / 2384e-9,\n 4703045e-9 * 0.956940335732209 / 2384e-9,\n 915051e-9 * 0.956940335732209 / 2384e-9,\n 70095e-9 * 0.956940335732209 / 2384e-9,\n 4768e-9 * 0.956940335732209 / 2384e-9,\n 954e-9 * 0.956940335732209 / 2384e-9,\n 806808e-9 * 0.956940335732209 / 2384e-9,\n 9287834e-9 * 0.956940335732209 / 2384e-9,\n -0.026310921 * 0.956940335732209 / 2384e-9,\n -4048824e-9 * 0.956940335732209 / 2384e-9,\n -542164e-9 * 0.956940335732209 / 2384e-9,\n -32425e-9 * 0.956940335732209 / 2384e-9,\n 0.3033466836073424,\n 1.66293922460509,\n -1431e-9 * 0.970031253194544 / 2384e-9,\n 99182e-9 * 0.970031253194544 / 2384e-9,\n 462532e-9 * 0.970031253194544 / 2384e-9,\n -1573563e-9 * 0.970031253194544 / 2384e-9,\n 0.033225536 * 0.970031253194544 / 2384e-9,\n 4737377e-9 * 0.970031253194544 / 2384e-9,\n 891685e-9 * 0.970031253194544 / 2384e-9,\n 6628e-8 * 0.970031253194544 / 2384e-9,\n 4292e-9 * 0.970031253194544 / 2384e-9,\n -13828e-9 * 0.970031253194544 / 2384e-9,\n 66185e-8 * 0.970031253194544 / 2384e-9,\n 8487225e-9 * 0.970031253194544 / 2384e-9,\n -0.02707386 * 0.970031253194544 / 2384e-9,\n -4174709e-9 * 0.970031253194544 / 2384e-9,\n -576973e-9 * 0.970031253194544 / 2384e-9,\n -34809e-9 * 0.970031253194544 / 2384e-9,\n 0.2504869601913055,\n 1.76384252869671,\n -1431e-9 * 0.98078528040323 / 2384e-9,\n 95367e-9 * 0.98078528040323 / 2384e-9,\n 378609e-9 * 0.98078528040323 / 2384e-9,\n -2161503e-9 * 0.98078528040323 / 2384e-9,\n 0.032754898 * 0.98078528040323 / 2384e-9,\n 4752159e-9 * 0.98078528040323 / 2384e-9,\n 866413e-9 * 0.98078528040323 / 2384e-9,\n 62943e-9 * 0.98078528040323 / 2384e-9,\n 3815e-9 * 0.98078528040323 / 2384e-9,\n -2718e-8 * 0.98078528040323 / 2384e-9,\n 522137e-9 * 0.98078528040323 / 2384e-9,\n 7703304e-9 * 0.98078528040323 / 2384e-9,\n -0.027815342 * 0.98078528040323 / 2384e-9,\n -4290581e-9 * 0.98078528040323 / 2384e-9,\n -611782e-9 * 0.98078528040323 / 2384e-9,\n -3767e-8 * 0.98078528040323 / 2384e-9,\n 0.198912367379658,\n 1.847759065022573,\n -1907e-9 * 0.989176509964781 / 2384e-9,\n 90122e-9 * 0.989176509964781 / 2384e-9,\n 288486e-9 * 0.989176509964781 / 2384e-9,\n -2774239e-9 * 0.989176509964781 / 2384e-9,\n 0.03224802 * 0.989176509964781 / 2384e-9,\n 4748821e-9 * 0.989176509964781 / 2384e-9,\n 838757e-9 * 0.989176509964781 / 2384e-9,\n 59605e-9 * 0.989176509964781 / 2384e-9,\n 3338e-9 * 0.989176509964781 / 2384e-9,\n -39577e-9 * 0.989176509964781 / 2384e-9,\n 388145e-9 * 0.989176509964781 / 2384e-9,\n 6937027e-9 * 0.989176509964781 / 2384e-9,\n -0.028532982 * 0.989176509964781 / 2384e-9,\n -4395962e-9 * 0.989176509964781 / 2384e-9,\n -646591e-9 * 0.989176509964781 / 2384e-9,\n -40531e-9 * 0.989176509964781 / 2384e-9,\n 0.1483359875383474,\n 1.913880671464418,\n -1907e-9 * 0.995184726672197 / 2384e-9,\n 844e-7 * 0.995184726672197 / 2384e-9,\n 191689e-9 * 0.995184726672197 / 2384e-9,\n -3411293e-9 * 0.995184726672197 / 2384e-9,\n 0.03170681 * 0.995184726672197 / 2384e-9,\n 4728317e-9 * 0.995184726672197 / 2384e-9,\n 809669e-9 * 0.995184726672197 / 2384e-9,\n 5579e-8 * 0.995184726672197 / 2384e-9,\n 3338e-9 * 0.995184726672197 / 2384e-9,\n -50545e-9 * 0.995184726672197 / 2384e-9,\n 259876e-9 * 0.995184726672197 / 2384e-9,\n 6189346e-9 * 0.995184726672197 / 2384e-9,\n -0.029224873 * 0.995184726672197 / 2384e-9,\n -4489899e-9 * 0.995184726672197 / 2384e-9,\n -680923e-9 * 0.995184726672197 / 2384e-9,\n -43392e-9 * 0.995184726672197 / 2384e-9,\n 0.09849140335716425,\n 1.961570560806461,\n -2384e-9 * 0.998795456205172 / 2384e-9,\n 77724e-9 * 0.998795456205172 / 2384e-9,\n 88215e-9 * 0.998795456205172 / 2384e-9,\n -4072189e-9 * 0.998795456205172 / 2384e-9,\n 0.031132698 * 0.998795456205172 / 2384e-9,\n 4691124e-9 * 0.998795456205172 / 2384e-9,\n 779152e-9 * 0.998795456205172 / 2384e-9,\n 52929e-9 * 0.998795456205172 / 2384e-9,\n 2861e-9 * 0.998795456205172 / 2384e-9,\n -60558e-9 * 0.998795456205172 / 2384e-9,\n 137329e-9 * 0.998795456205172 / 2384e-9,\n 546217e-8 * 0.998795456205172 / 2384e-9,\n -0.02989006 * 0.998795456205172 / 2384e-9,\n -4570484e-9 * 0.998795456205172 / 2384e-9,\n -714302e-9 * 0.998795456205172 / 2384e-9,\n -46253e-9 * 0.998795456205172 / 2384e-9,\n 0.04912684976946725,\n 1.990369453344394,\n 0.035780907 * Util$4.SQRT2 * 0.5 / 2384e-9,\n 0.017876148 * Util$4.SQRT2 * 0.5 / 2384e-9,\n 3134727e-9 * Util$4.SQRT2 * 0.5 / 2384e-9,\n 2457142e-9 * Util$4.SQRT2 * 0.5 / 2384e-9,\n 971317e-9 * Util$4.SQRT2 * 0.5 / 2384e-9,\n 218868e-9 * Util$4.SQRT2 * 0.5 / 2384e-9,\n 101566e-9 * Util$4.SQRT2 * 0.5 / 2384e-9,\n 13828e-9 * Util$4.SQRT2 * 0.5 / 2384e-9,\n 0.030526638 / 2384e-9,\n 4638195e-9 / 2384e-9,\n 747204e-9 / 2384e-9,\n 49591e-9 / 2384e-9,\n 4756451e-9 / 2384e-9,\n 21458e-9 / 2384e-9,\n -69618e-9 / 2384e-9\n ];\n var NS = 12;\n var NL = 36;\n var win = [\n [\n 2382191739347913e-28,\n 6423305872147834e-28,\n 9400849094049688e-28,\n 1122435026096556e-27,\n 1183840321267481e-27,\n 1122435026096556e-27,\n 940084909404969e-27,\n 6423305872147839e-28,\n 2382191739347918e-28,\n 5456116108943412e-27,\n 4878985199565852e-27,\n 4240448995017367e-27,\n 3559909094758252e-27,\n 2858043359288075e-27,\n 2156177623817898e-27,\n 1475637723558783e-27,\n 8371015190102974e-28,\n 2599706096327376e-28,\n -5456116108943412e-27,\n -4878985199565852e-27,\n -4240448995017367e-27,\n -3559909094758252e-27,\n -2858043359288076e-27,\n -2156177623817898e-27,\n -1475637723558783e-27,\n -8371015190102975e-28,\n -2599706096327376e-28,\n -2382191739347923e-28,\n -6423305872147843e-28,\n -9400849094049696e-28,\n -1122435026096556e-27,\n -1183840321267481e-27,\n -1122435026096556e-27,\n -9400849094049694e-28,\n -642330587214784e-27,\n -2382191739347918e-28\n ],\n [\n 2382191739347913e-28,\n 6423305872147834e-28,\n 9400849094049688e-28,\n 1122435026096556e-27,\n 1183840321267481e-27,\n 1122435026096556e-27,\n 9400849094049688e-28,\n 6423305872147841e-28,\n 2382191739347918e-28,\n 5456116108943413e-27,\n 4878985199565852e-27,\n 4240448995017367e-27,\n 3559909094758253e-27,\n 2858043359288075e-27,\n 2156177623817898e-27,\n 1475637723558782e-27,\n 8371015190102975e-28,\n 2599706096327376e-28,\n -5461314069809755e-27,\n -4921085770524055e-27,\n -4343405037091838e-27,\n -3732668368707687e-27,\n -3093523840190885e-27,\n -2430835727329465e-27,\n -1734679010007751e-27,\n -974825365660928e-27,\n -2797435120168326e-28,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n -2283748241799531e-28,\n -4037858874020686e-28,\n -2146547464825323e-28\n ],\n [\n 0.1316524975873958,\n 0.414213562373095,\n 0.7673269879789602,\n 1.091308501069271,\n 1.303225372841206,\n 1.56968557711749,\n 1.920982126971166,\n 2.414213562373094,\n 3.171594802363212,\n 4.510708503662055,\n 7.595754112725146,\n 22.90376554843115,\n 0.984807753012208,\n 0.6427876096865394,\n 0.3420201433256688,\n 0.9396926207859084,\n -0.1736481776669303,\n -0.7660444431189779,\n 0.8660254037844387,\n 0.5,\n -0.5144957554275265,\n -0.4717319685649723,\n -0.3133774542039019,\n -0.1819131996109812,\n -0.09457419252642064,\n -0.04096558288530405,\n -0.01419856857247115,\n -0.003699974673760037,\n 0.8574929257125442,\n 0.8817419973177052,\n 0.9496286491027329,\n 0.9833145924917901,\n 0.9955178160675857,\n 0.9991605581781475,\n 0.999899195244447,\n 0.9999931550702802\n ],\n [\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 2283748241799531e-28,\n 4037858874020686e-28,\n 2146547464825323e-28,\n 5461314069809755e-27,\n 4921085770524055e-27,\n 4343405037091838e-27,\n 3732668368707687e-27,\n 3093523840190885e-27,\n 2430835727329466e-27,\n 1734679010007751e-27,\n 974825365660928e-27,\n 2797435120168326e-28,\n -5456116108943413e-27,\n -4878985199565852e-27,\n -4240448995017367e-27,\n -3559909094758253e-27,\n -2858043359288075e-27,\n -2156177623817898e-27,\n -1475637723558782e-27,\n -8371015190102975e-28,\n -2599706096327376e-28,\n -2382191739347913e-28,\n -6423305872147834e-28,\n -9400849094049688e-28,\n -1122435026096556e-27,\n -1183840321267481e-27,\n -1122435026096556e-27,\n -9400849094049688e-28,\n -6423305872147841e-28,\n -2382191739347918e-28\n ]\n ];\n var tantab_l = win[Encoder.SHORT_TYPE];\n var cx = win[Encoder.SHORT_TYPE];\n var ca = win[Encoder.SHORT_TYPE];\n var cs = win[Encoder.SHORT_TYPE];\n var order = [\n 0,\n 1,\n 16,\n 17,\n 8,\n 9,\n 24,\n 25,\n 4,\n 5,\n 20,\n 21,\n 12,\n 13,\n 28,\n 29,\n 2,\n 3,\n 18,\n 19,\n 10,\n 11,\n 26,\n 27,\n 6,\n 7,\n 22,\n 23,\n 14,\n 15,\n 30,\n 31\n ];\n function window_subband(x1, x1Pos, a) {\n var wp = 10;\n var x2 = x1Pos + 238 - 14 - 286;\n for (var i = -15; i < 0; i++) {\n var w, s, t;\n w = enwindow[wp + -10];\n s = x1[x2 + -224] * w;\n t = x1[x1Pos + 224] * w;\n w = enwindow[wp + -9];\n s += x1[x2 + -160] * w;\n t += x1[x1Pos + 160] * w;\n w = enwindow[wp + -8];\n s += x1[x2 + -96] * w;\n t += x1[x1Pos + 96] * w;\n w = enwindow[wp + -7];\n s += x1[x2 + -32] * w;\n t += x1[x1Pos + 32] * w;\n w = enwindow[wp + -6];\n s += x1[x2 + 32] * w;\n t += x1[x1Pos + -32] * w;\n w = enwindow[wp + -5];\n s += x1[x2 + 96] * w;\n t += x1[x1Pos + -96] * w;\n w = enwindow[wp + -4];\n s += x1[x2 + 160] * w;\n t += x1[x1Pos + -160] * w;\n w = enwindow[wp + -3];\n s += x1[x2 + 224] * w;\n t += x1[x1Pos + -224] * w;\n w = enwindow[wp + -2];\n s += x1[x1Pos + -256] * w;\n t -= x1[x2 + 256] * w;\n w = enwindow[wp + -1];\n s += x1[x1Pos + -192] * w;\n t -= x1[x2 + 192] * w;\n w = enwindow[wp + 0];\n s += x1[x1Pos + -128] * w;\n t -= x1[x2 + 128] * w;\n w = enwindow[wp + 1];\n s += x1[x1Pos + -64] * w;\n t -= x1[x2 + 64] * w;\n w = enwindow[wp + 2];\n s += x1[x1Pos + 0] * w;\n t -= x1[x2 + 0] * w;\n w = enwindow[wp + 3];\n s += x1[x1Pos + 64] * w;\n t -= x1[x2 + -64] * w;\n w = enwindow[wp + 4];\n s += x1[x1Pos + 128] * w;\n t -= x1[x2 + -128] * w;\n w = enwindow[wp + 5];\n s += x1[x1Pos + 192] * w;\n t -= x1[x2 + -192] * w;\n s *= enwindow[wp + 6];\n w = t - s;\n a[30 + i * 2] = t + s;\n a[31 + i * 2] = enwindow[wp + 7] * w;\n wp += 18;\n x1Pos--;\n x2++;\n }\n {\n var s, t, u, v;\n t = x1[x1Pos + -16] * enwindow[wp + -10];\n s = x1[x1Pos + -32] * enwindow[wp + -2];\n t += (x1[x1Pos + -48] - x1[x1Pos + 16]) * enwindow[wp + -9];\n s += x1[x1Pos + -96] * enwindow[wp + -1];\n t += (x1[x1Pos + -80] + x1[x1Pos + 48]) * enwindow[wp + -8];\n s += x1[x1Pos + -160] * enwindow[wp + 0];\n t += (x1[x1Pos + -112] - x1[x1Pos + 80]) * enwindow[wp + -7];\n s += x1[x1Pos + -224] * enwindow[wp + 1];\n t += (x1[x1Pos + -144] + x1[x1Pos + 112]) * enwindow[wp + -6];\n s -= x1[x1Pos + 32] * enwindow[wp + 2];\n t += (x1[x1Pos + -176] - x1[x1Pos + 144]) * enwindow[wp + -5];\n s -= x1[x1Pos + 96] * enwindow[wp + 3];\n t += (x1[x1Pos + -208] + x1[x1Pos + 176]) * enwindow[wp + -4];\n s -= x1[x1Pos + 160] * enwindow[wp + 4];\n t += (x1[x1Pos + -240] - x1[x1Pos + 208]) * enwindow[wp + -3];\n s -= x1[x1Pos + 224];\n u = s - t;\n v = s + t;\n t = a[14];\n s = a[15] - t;\n a[31] = v + t;\n a[30] = u + s;\n a[15] = u - s;\n a[14] = v - t;\n }\n {\n var xr;\n xr = a[28] - a[0];\n a[0] += a[28];\n a[28] = xr * enwindow[wp + -2 * 18 + 7];\n xr = a[29] - a[1];\n a[1] += a[29];\n a[29] = xr * enwindow[wp + -2 * 18 + 7];\n xr = a[26] - a[2];\n a[2] += a[26];\n a[26] = xr * enwindow[wp + -4 * 18 + 7];\n xr = a[27] - a[3];\n a[3] += a[27];\n a[27] = xr * enwindow[wp + -4 * 18 + 7];\n xr = a[24] - a[4];\n a[4] += a[24];\n a[24] = xr * enwindow[wp + -6 * 18 + 7];\n xr = a[25] - a[5];\n a[5] += a[25];\n a[25] = xr * enwindow[wp + -6 * 18 + 7];\n xr = a[22] - a[6];\n a[6] += a[22];\n a[22] = xr * Util$4.SQRT2;\n xr = a[23] - a[7];\n a[7] += a[23];\n a[23] = xr * Util$4.SQRT2 - a[7];\n a[7] -= a[6];\n a[22] -= a[7];\n a[23] -= a[22];\n xr = a[6];\n a[6] = a[31] - xr;\n a[31] = a[31] + xr;\n xr = a[7];\n a[7] = a[30] - xr;\n a[30] = a[30] + xr;\n xr = a[22];\n a[22] = a[15] - xr;\n a[15] = a[15] + xr;\n xr = a[23];\n a[23] = a[14] - xr;\n a[14] = a[14] + xr;\n xr = a[20] - a[8];\n a[8] += a[20];\n a[20] = xr * enwindow[wp + -10 * 18 + 7];\n xr = a[21] - a[9];\n a[9] += a[21];\n a[21] = xr * enwindow[wp + -10 * 18 + 7];\n xr = a[18] - a[10];\n a[10] += a[18];\n a[18] = xr * enwindow[wp + -12 * 18 + 7];\n xr = a[19] - a[11];\n a[11] += a[19];\n a[19] = xr * enwindow[wp + -12 * 18 + 7];\n xr = a[16] - a[12];\n a[12] += a[16];\n a[16] = xr * enwindow[wp + -14 * 18 + 7];\n xr = a[17] - a[13];\n a[13] += a[17];\n a[17] = xr * enwindow[wp + -14 * 18 + 7];\n xr = -a[20] + a[24];\n a[20] += a[24];\n a[24] = xr * enwindow[wp + -12 * 18 + 7];\n xr = -a[21] + a[25];\n a[21] += a[25];\n a[25] = xr * enwindow[wp + -12 * 18 + 7];\n xr = a[4] - a[8];\n a[4] += a[8];\n a[8] = xr * enwindow[wp + -12 * 18 + 7];\n xr = a[5] - a[9];\n a[5] += a[9];\n a[9] = xr * enwindow[wp + -12 * 18 + 7];\n xr = a[0] - a[12];\n a[0] += a[12];\n a[12] = xr * enwindow[wp + -4 * 18 + 7];\n xr = a[1] - a[13];\n a[1] += a[13];\n a[13] = xr * enwindow[wp + -4 * 18 + 7];\n xr = a[16] - a[28];\n a[16] += a[28];\n a[28] = xr * enwindow[wp + -4 * 18 + 7];\n xr = -a[17] + a[29];\n a[17] += a[29];\n a[29] = xr * enwindow[wp + -4 * 18 + 7];\n xr = Util$4.SQRT2 * (a[2] - a[10]);\n a[2] += a[10];\n a[10] = xr;\n xr = Util$4.SQRT2 * (a[3] - a[11]);\n a[3] += a[11];\n a[11] = xr;\n xr = Util$4.SQRT2 * (-a[18] + a[26]);\n a[18] += a[26];\n a[26] = xr - a[18];\n xr = Util$4.SQRT2 * (-a[19] + a[27]);\n a[19] += a[27];\n a[27] = xr - a[19];\n xr = a[2];\n a[19] -= a[3];\n a[3] -= xr;\n a[2] = a[31] - xr;\n a[31] += xr;\n xr = a[3];\n a[11] -= a[19];\n a[18] -= xr;\n a[3] = a[30] - xr;\n a[30] += xr;\n xr = a[18];\n a[27] -= a[11];\n a[19] -= xr;\n a[18] = a[15] - xr;\n a[15] += xr;\n xr = a[19];\n a[10] -= xr;\n a[19] = a[14] - xr;\n a[14] += xr;\n xr = a[10];\n a[11] -= xr;\n a[10] = a[23] - xr;\n a[23] += xr;\n xr = a[11];\n a[26] -= xr;\n a[11] = a[22] - xr;\n a[22] += xr;\n xr = a[26];\n a[27] -= xr;\n a[26] = a[7] - xr;\n a[7] += xr;\n xr = a[27];\n a[27] = a[6] - xr;\n a[6] += xr;\n xr = Util$4.SQRT2 * (a[0] - a[4]);\n a[0] += a[4];\n a[4] = xr;\n xr = Util$4.SQRT2 * (a[1] - a[5]);\n a[1] += a[5];\n a[5] = xr;\n xr = Util$4.SQRT2 * (a[16] - a[20]);\n a[16] += a[20];\n a[20] = xr;\n xr = Util$4.SQRT2 * (a[17] - a[21]);\n a[17] += a[21];\n a[21] = xr;\n xr = -Util$4.SQRT2 * (a[8] - a[12]);\n a[8] += a[12];\n a[12] = xr - a[8];\n xr = -Util$4.SQRT2 * (a[9] - a[13]);\n a[9] += a[13];\n a[13] = xr - a[9];\n xr = -Util$4.SQRT2 * (a[25] - a[29]);\n a[25] += a[29];\n a[29] = xr - a[25];\n xr = -Util$4.SQRT2 * (a[24] + a[28]);\n a[24] -= a[28];\n a[28] = xr - a[24];\n xr = a[24] - a[16];\n a[24] = xr;\n xr = a[20] - xr;\n a[20] = xr;\n xr = a[28] - xr;\n a[28] = xr;\n xr = a[25] - a[17];\n a[25] = xr;\n xr = a[21] - xr;\n a[21] = xr;\n xr = a[29] - xr;\n a[29] = xr;\n xr = a[17] - a[1];\n a[17] = xr;\n xr = a[9] - xr;\n a[9] = xr;\n xr = a[25] - xr;\n a[25] = xr;\n xr = a[5] - xr;\n a[5] = xr;\n xr = a[21] - xr;\n a[21] = xr;\n xr = a[13] - xr;\n a[13] = xr;\n xr = a[29] - xr;\n a[29] = xr;\n xr = a[1] - a[0];\n a[1] = xr;\n xr = a[16] - xr;\n a[16] = xr;\n xr = a[17] - xr;\n a[17] = xr;\n xr = a[8] - xr;\n a[8] = xr;\n xr = a[9] - xr;\n a[9] = xr;\n xr = a[24] - xr;\n a[24] = xr;\n xr = a[25] - xr;\n a[25] = xr;\n xr = a[4] - xr;\n a[4] = xr;\n xr = a[5] - xr;\n a[5] = xr;\n xr = a[20] - xr;\n a[20] = xr;\n xr = a[21] - xr;\n a[21] = xr;\n xr = a[12] - xr;\n a[12] = xr;\n xr = a[13] - xr;\n a[13] = xr;\n xr = a[28] - xr;\n a[28] = xr;\n xr = a[29] - xr;\n a[29] = xr;\n xr = a[0];\n a[0] += a[31];\n a[31] -= xr;\n xr = a[1];\n a[1] += a[30];\n a[30] -= xr;\n xr = a[16];\n a[16] += a[15];\n a[15] -= xr;\n xr = a[17];\n a[17] += a[14];\n a[14] -= xr;\n xr = a[8];\n a[8] += a[23];\n a[23] -= xr;\n xr = a[9];\n a[9] += a[22];\n a[22] -= xr;\n xr = a[24];\n a[24] += a[7];\n a[7] -= xr;\n xr = a[25];\n a[25] += a[6];\n a[6] -= xr;\n xr = a[4];\n a[4] += a[27];\n a[27] -= xr;\n xr = a[5];\n a[5] += a[26];\n a[26] -= xr;\n xr = a[20];\n a[20] += a[11];\n a[11] -= xr;\n xr = a[21];\n a[21] += a[10];\n a[10] -= xr;\n xr = a[12];\n a[12] += a[19];\n a[19] -= xr;\n xr = a[13];\n a[13] += a[18];\n a[18] -= xr;\n xr = a[28];\n a[28] += a[3];\n a[3] -= xr;\n xr = a[29];\n a[29] += a[2];\n a[2] -= xr;\n }\n }\n function mdct_short(inout, inoutPos) {\n for (var l = 0; l < 3; l++) {\n var tc0, tc1, tc2, ts0, ts1, ts2;\n ts0 = inout[inoutPos + 2 * 3] * win[Encoder.SHORT_TYPE][0] - inout[inoutPos + 5 * 3];\n tc0 = inout[inoutPos + 0 * 3] * win[Encoder.SHORT_TYPE][2] - inout[inoutPos + 3 * 3];\n tc1 = ts0 + tc0;\n tc2 = ts0 - tc0;\n ts0 = inout[inoutPos + 5 * 3] * win[Encoder.SHORT_TYPE][0] + inout[inoutPos + 2 * 3];\n tc0 = inout[inoutPos + 3 * 3] * win[Encoder.SHORT_TYPE][2] + inout[inoutPos + 0 * 3];\n ts1 = ts0 + tc0;\n ts2 = -ts0 + tc0;\n tc0 = (inout[inoutPos + 1 * 3] * win[Encoder.SHORT_TYPE][1] - inout[inoutPos + 4 * 3]) * 2069978111953089e-26;\n ts0 = (inout[inoutPos + 4 * 3] * win[Encoder.SHORT_TYPE][1] + inout[inoutPos + 1 * 3]) * 2069978111953089e-26;\n inout[inoutPos + 3 * 0] = tc1 * 190752519173728e-25 + tc0;\n inout[inoutPos + 3 * 5] = -ts1 * 190752519173728e-25 + ts0;\n tc2 = tc2 * 0.8660254037844387 * 1907525191737281e-26;\n ts1 = ts1 * 0.5 * 1907525191737281e-26 + ts0;\n inout[inoutPos + 3 * 1] = tc2 - ts1;\n inout[inoutPos + 3 * 2] = tc2 + ts1;\n tc1 = tc1 * 0.5 * 1907525191737281e-26 - tc0;\n ts2 = ts2 * 0.8660254037844387 * 1907525191737281e-26;\n inout[inoutPos + 3 * 3] = tc1 + ts2;\n inout[inoutPos + 3 * 4] = tc1 - ts2;\n inoutPos++;\n }\n }\n function mdct_long(out, outPos, _in) {\n var ct, st;\n {\n var tc1, tc2, tc3, tc4, ts5, ts6, ts7, ts8;\n tc1 = _in[17] - _in[9];\n tc3 = _in[15] - _in[11];\n tc4 = _in[14] - _in[12];\n ts5 = _in[0] + _in[8];\n ts6 = _in[1] + _in[7];\n ts7 = _in[2] + _in[6];\n ts8 = _in[3] + _in[5];\n out[outPos + 17] = ts5 + ts7 - ts8 - (ts6 - _in[4]);\n st = (ts5 + ts7 - ts8) * cx[12 + 7] + (ts6 - _in[4]);\n ct = (tc1 - tc3 - tc4) * cx[12 + 6];\n out[outPos + 5] = ct + st;\n out[outPos + 6] = ct - st;\n tc2 = (_in[16] - _in[10]) * cx[12 + 6];\n ts6 = ts6 * cx[12 + 7] + _in[4];\n ct = tc1 * cx[12 + 0] + tc2 + tc3 * cx[12 + 1] + tc4 * cx[12 + 2];\n st = -ts5 * cx[12 + 4] + ts6 - ts7 * cx[12 + 5] + ts8 * cx[12 + 3];\n out[outPos + 1] = ct + st;\n out[outPos + 2] = ct - st;\n ct = tc1 * cx[12 + 1] - tc2 - tc3 * cx[12 + 2] + tc4 * cx[12 + 0];\n st = -ts5 * cx[12 + 5] + ts6 - ts7 * cx[12 + 3] + ts8 * cx[12 + 4];\n out[outPos + 9] = ct + st;\n out[outPos + 10] = ct - st;\n ct = tc1 * cx[12 + 2] - tc2 + tc3 * cx[12 + 0] - tc4 * cx[12 + 1];\n st = ts5 * cx[12 + 3] - ts6 + ts7 * cx[12 + 4] - ts8 * cx[12 + 5];\n out[outPos + 13] = ct + st;\n out[outPos + 14] = ct - st;\n }\n {\n var ts1, ts2, ts3, ts4, tc5, tc6, tc7, tc8;\n ts1 = _in[8] - _in[0];\n ts3 = _in[6] - _in[2];\n ts4 = _in[5] - _in[3];\n tc5 = _in[17] + _in[9];\n tc6 = _in[16] + _in[10];\n tc7 = _in[15] + _in[11];\n tc8 = _in[14] + _in[12];\n out[outPos + 0] = tc5 + tc7 + tc8 + (tc6 + _in[13]);\n ct = (tc5 + tc7 + tc8) * cx[12 + 7] - (tc6 + _in[13]);\n st = (ts1 - ts3 + ts4) * cx[12 + 6];\n out[outPos + 11] = ct + st;\n out[outPos + 12] = ct - st;\n ts2 = (_in[7] - _in[1]) * cx[12 + 6];\n tc6 = _in[13] - tc6 * cx[12 + 7];\n ct = tc5 * cx[12 + 3] - tc6 + tc7 * cx[12 + 4] + tc8 * cx[12 + 5];\n st = ts1 * cx[12 + 2] + ts2 + ts3 * cx[12 + 0] + ts4 * cx[12 + 1];\n out[outPos + 3] = ct + st;\n out[outPos + 4] = ct - st;\n ct = -tc5 * cx[12 + 5] + tc6 - tc7 * cx[12 + 3] - tc8 * cx[12 + 4];\n st = ts1 * cx[12 + 1] + ts2 - ts3 * cx[12 + 2] - ts4 * cx[12 + 0];\n out[outPos + 7] = ct + st;\n out[outPos + 8] = ct - st;\n ct = -tc5 * cx[12 + 4] + tc6 - tc7 * cx[12 + 5] - tc8 * cx[12 + 3];\n st = ts1 * cx[12 + 0] - ts2 + ts3 * cx[12 + 1] - ts4 * cx[12 + 2];\n out[outPos + 15] = ct + st;\n out[outPos + 16] = ct - st;\n }\n }\n this.mdct_sub48 = function(gfc, w0, w1) {\n var wk = w0;\n var wkPos = 286;\n for (var ch = 0; ch < gfc.channels_out; ch++) {\n for (var gr = 0; gr < gfc.mode_gr; gr++) {\n var band;\n var gi = gfc.l3_side.tt[gr][ch];\n var mdct_enc = gi.xr;\n var mdct_encPos = 0;\n var samp = gfc.sb_sample[ch][1 - gr];\n var sampPos = 0;\n for (var k = 0; k < 18 / 2; k++) {\n window_subband(wk, wkPos, samp[sampPos]);\n window_subband(wk, wkPos + 32, samp[sampPos + 1]);\n sampPos += 2;\n wkPos += 64;\n for (band = 1; band < 32; band += 2) {\n samp[sampPos - 1][band] *= -1;\n }\n }\n for (band = 0; band < 32; band++, mdct_encPos += 18) {\n var type = gi.block_type;\n var band0 = gfc.sb_sample[ch][gr];\n var band1 = gfc.sb_sample[ch][1 - gr];\n if (gi.mixed_block_flag != 0 && band < 2)\n type = 0;\n if (gfc.amp_filter[band] < 1e-12) {\n Arrays$6.fill(mdct_enc, mdct_encPos + 0, mdct_encPos + 18, 0);\n } else {\n if (gfc.amp_filter[band] < 1) {\n for (var k = 0; k < 18; k++) {\n band1[k][order[band]] *= gfc.amp_filter[band];\n }\n }\n if (type == Encoder.SHORT_TYPE) {\n for (var k = -NS / 4; k < 0; k++) {\n var w = win[Encoder.SHORT_TYPE][k + 3];\n mdct_enc[mdct_encPos + k * 3 + 9] = band0[9 + k][order[band]] * w - band0[8 - k][order[band]];\n mdct_enc[mdct_encPos + k * 3 + 18] = band0[14 - k][order[band]] * w + band0[15 + k][order[band]];\n mdct_enc[mdct_encPos + k * 3 + 10] = band0[15 + k][order[band]] * w - band0[14 - k][order[band]];\n mdct_enc[mdct_encPos + k * 3 + 19] = band1[2 - k][order[band]] * w + band1[3 + k][order[band]];\n mdct_enc[mdct_encPos + k * 3 + 11] = band1[3 + k][order[band]] * w - band1[2 - k][order[band]];\n mdct_enc[mdct_encPos + k * 3 + 20] = band1[8 - k][order[band]] * w + band1[9 + k][order[band]];\n }\n mdct_short(mdct_enc, mdct_encPos);\n } else {\n var work = new_float$e(18);\n for (var k = -NL / 4; k < 0; k++) {\n var a, b;\n a = win[type][k + 27] * band1[k + 9][order[band]] + win[type][k + 36] * band1[8 - k][order[band]];\n b = win[type][k + 9] * band0[k + 9][order[band]] - win[type][k + 18] * band0[8 - k][order[band]];\n work[k + 9] = a - b * tantab_l[3 + k + 9];\n work[k + 18] = a * tantab_l[3 + k + 9] + b;\n }\n mdct_long(mdct_enc, mdct_encPos, work);\n }\n }\n if (type != Encoder.SHORT_TYPE && band != 0) {\n for (var k = 7; k >= 0; --k) {\n var bu, bd;\n bu = mdct_enc[mdct_encPos + k] * ca[20 + k] + mdct_enc[mdct_encPos + -1 - k] * cs[28 + k];\n bd = mdct_enc[mdct_encPos + k] * cs[28 + k] - mdct_enc[mdct_encPos + -1 - k] * ca[20 + k];\n mdct_enc[mdct_encPos + -1 - k] = bu;\n mdct_enc[mdct_encPos + k] = bd;\n }\n }\n }\n }\n wk = w1;\n wkPos = 286;\n if (gfc.mode_gr == 1) {\n for (var i = 0; i < 18; i++) {\n System$9.arraycopy(\n gfc.sb_sample[ch][1][i],\n 0,\n gfc.sb_sample[ch][0][i],\n 0,\n 32\n );\n }\n }\n }\n };\n}\nvar System$8 = common.System;\nvar new_float$d = common.new_float;\nvar new_float_n$5 = common.new_float_n;\nfunction III_psy_xmin() {\n this.l = new_float$d(Encoder.SBMAX_l);\n this.s = new_float_n$5([Encoder.SBMAX_s, 3]);\n var self2 = this;\n this.assign = function(iii_psy_xmin) {\n System$8.arraycopy(iii_psy_xmin.l, 0, self2.l, 0, Encoder.SBMAX_l);\n for (var i = 0; i < Encoder.SBMAX_s; i++) {\n for (var j = 0; j < 3; j++) {\n self2.s[i][j] = iii_psy_xmin.s[i][j];\n }\n }\n };\n}\nfunction III_psy_ratio() {\n this.thm = new III_psy_xmin();\n this.en = new III_psy_xmin();\n}\nfunction MPEGMode(ordinal) {\n var _ordinal = ordinal;\n this.ordinal = function() {\n return _ordinal;\n };\n}\nMPEGMode.STEREO = new MPEGMode(0);\nMPEGMode.JOINT_STEREO = new MPEGMode(1);\nMPEGMode.DUAL_CHANNEL = new MPEGMode(2);\nMPEGMode.MONO = new MPEGMode(3);\nMPEGMode.NOT_SET = new MPEGMode(4);\nvar System$7 = common.System;\nvar VbrMode$6 = common.VbrMode;\nvar new_array_n = common.new_array_n;\nvar new_float$c = common.new_float;\nvar new_float_n$4 = common.new_float_n;\nvar new_int$c = common.new_int;\nvar assert$a = common.assert;\nEncoder.ENCDELAY = 576;\nEncoder.POSTDELAY = 1152;\nEncoder.MDCTDELAY = 48;\nEncoder.FFTOFFSET = 224 + Encoder.MDCTDELAY;\nEncoder.DECDELAY = 528;\nEncoder.SBLIMIT = 32;\nEncoder.CBANDS = 64;\nEncoder.SBPSY_l = 21;\nEncoder.SBPSY_s = 12;\nEncoder.SBMAX_l = 22;\nEncoder.SBMAX_s = 13;\nEncoder.PSFB21 = 6;\nEncoder.PSFB12 = 6;\nEncoder.BLKSIZE = 1024;\nEncoder.HBLKSIZE = Encoder.BLKSIZE / 2 + 1;\nEncoder.BLKSIZE_s = 256;\nEncoder.HBLKSIZE_s = Encoder.BLKSIZE_s / 2 + 1;\nEncoder.NORM_TYPE = 0;\nEncoder.START_TYPE = 1;\nEncoder.SHORT_TYPE = 2;\nEncoder.STOP_TYPE = 3;\nEncoder.MPG_MD_LR_LR = 0;\nEncoder.MPG_MD_LR_I = 1;\nEncoder.MPG_MD_MS_LR = 2;\nEncoder.MPG_MD_MS_I = 3;\nEncoder.fircoef = [\n -0.0207887 * 5,\n -0.0378413 * 5,\n -0.0432472 * 5,\n -0.031183 * 5,\n 779609e-23 * 5,\n 0.0467745 * 5,\n 0.10091 * 5,\n 0.151365 * 5,\n 0.187098 * 5\n];\nfunction Encoder() {\n var FFTOFFSET = Encoder.FFTOFFSET;\n var MPG_MD_MS_LR = Encoder.MPG_MD_MS_LR;\n var bs = null;\n this.psy = null;\n var psy = null;\n var vbr = null;\n var qupvt = null;\n this.setModules = function(_bs, _psy, _qupvt, _vbr) {\n bs = _bs;\n this.psy = _psy;\n psy = _psy;\n vbr = _vbr;\n qupvt = _qupvt;\n };\n var newMDCT = new NewMDCT();\n function adjust_ATH(gfc) {\n var gr2_max, max_pow;\n if (gfc.ATH.useAdjust == 0) {\n gfc.ATH.adjust = 1;\n return;\n }\n max_pow = gfc.loudness_sq[0][0];\n gr2_max = gfc.loudness_sq[1][0];\n if (gfc.channels_out == 2) {\n max_pow += gfc.loudness_sq[0][1];\n gr2_max += gfc.loudness_sq[1][1];\n } else {\n max_pow += max_pow;\n gr2_max += gr2_max;\n }\n if (gfc.mode_gr == 2) {\n max_pow = Math.max(max_pow, gr2_max);\n }\n max_pow *= 0.5;\n max_pow *= gfc.ATH.aaSensitivityP;\n if (max_pow > 0.03125) {\n if (gfc.ATH.adjust >= 1) {\n gfc.ATH.adjust = 1;\n } else {\n if (gfc.ATH.adjust < gfc.ATH.adjustLimit) {\n gfc.ATH.adjust = gfc.ATH.adjustLimit;\n }\n }\n gfc.ATH.adjustLimit = 1;\n } else {\n var adj_lim_new = 31.98 * max_pow + 625e-6;\n if (gfc.ATH.adjust >= adj_lim_new) {\n gfc.ATH.adjust *= adj_lim_new * 0.075 + 0.925;\n if (gfc.ATH.adjust < adj_lim_new) {\n gfc.ATH.adjust = adj_lim_new;\n }\n } else {\n if (gfc.ATH.adjustLimit >= adj_lim_new) {\n gfc.ATH.adjust = adj_lim_new;\n } else {\n if (gfc.ATH.adjust < gfc.ATH.adjustLimit) {\n gfc.ATH.adjust = gfc.ATH.adjustLimit;\n }\n }\n }\n gfc.ATH.adjustLimit = adj_lim_new;\n }\n }\n function updateStats(gfc) {\n var gr, ch;\n assert$a(gfc.bitrate_index >= 0 && gfc.bitrate_index < 16);\n assert$a(gfc.mode_ext >= 0 && gfc.mode_ext < 4);\n gfc.bitrate_stereoMode_Hist[gfc.bitrate_index][4]++;\n gfc.bitrate_stereoMode_Hist[15][4]++;\n if (gfc.channels_out == 2) {\n gfc.bitrate_stereoMode_Hist[gfc.bitrate_index][gfc.mode_ext]++;\n gfc.bitrate_stereoMode_Hist[15][gfc.mode_ext]++;\n }\n for (gr = 0; gr < gfc.mode_gr; ++gr) {\n for (ch = 0; ch < gfc.channels_out; ++ch) {\n var bt = gfc.l3_side.tt[gr][ch].block_type | 0;\n if (gfc.l3_side.tt[gr][ch].mixed_block_flag != 0)\n bt = 4;\n gfc.bitrate_blockType_Hist[gfc.bitrate_index][bt]++;\n gfc.bitrate_blockType_Hist[gfc.bitrate_index][5]++;\n gfc.bitrate_blockType_Hist[15][bt]++;\n gfc.bitrate_blockType_Hist[15][5]++;\n }\n }\n }\n function lame_encode_frame_init(gfp, inbuf) {\n var gfc = gfp.internal_flags;\n var ch, gr;\n if (gfc.lame_encode_frame_init == 0) {\n var i, j;\n var primebuff0 = new_float$c(286 + 1152 + 576);\n var primebuff1 = new_float$c(286 + 1152 + 576);\n gfc.lame_encode_frame_init = 1;\n for (i = 0, j = 0; i < 286 + 576 * (1 + gfc.mode_gr); ++i) {\n if (i < 576 * gfc.mode_gr) {\n primebuff0[i] = 0;\n if (gfc.channels_out == 2)\n primebuff1[i] = 0;\n } else {\n primebuff0[i] = inbuf[0][j];\n if (gfc.channels_out == 2)\n primebuff1[i] = inbuf[1][j];\n ++j;\n }\n }\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n gfc.l3_side.tt[gr][ch].block_type = Encoder.SHORT_TYPE;\n }\n }\n newMDCT.mdct_sub48(gfc, primebuff0, primebuff1);\n assert$a(gfc.mf_size >= Encoder.BLKSIZE + gfp.framesize - Encoder.FFTOFFSET);\n assert$a(gfc.mf_size >= 512 + gfp.framesize - 32);\n }\n }\n this.lame_encode_mp3_frame = function(gfp, inbuf_l, inbuf_r, mp3buf, mp3bufPos, mp3buf_size) {\n var mp3count;\n var masking_LR = new_array_n([2, 2]);\n masking_LR[0][0] = new III_psy_ratio();\n masking_LR[0][1] = new III_psy_ratio();\n masking_LR[1][0] = new III_psy_ratio();\n masking_LR[1][1] = new III_psy_ratio();\n var masking_MS = new_array_n([2, 2]);\n masking_MS[0][0] = new III_psy_ratio();\n masking_MS[0][1] = new III_psy_ratio();\n masking_MS[1][0] = new III_psy_ratio();\n masking_MS[1][1] = new III_psy_ratio();\n var masking;\n var inbuf = [null, null];\n var gfc = gfp.internal_flags;\n var tot_ener = new_float_n$4([2, 4]);\n var ms_ener_ratio = [0.5, 0.5];\n var pe = [\n [0, 0],\n [0, 0]\n ];\n var pe_MS = [\n [0, 0],\n [0, 0]\n ];\n var pe_use;\n var ch, gr;\n inbuf[0] = inbuf_l;\n inbuf[1] = inbuf_r;\n if (gfc.lame_encode_frame_init == 0) {\n lame_encode_frame_init(gfp, inbuf);\n }\n gfc.padding = 0;\n if ((gfc.slot_lag -= gfc.frac_SpF) < 0) {\n gfc.slot_lag += gfp.out_samplerate;\n gfc.padding = 1;\n }\n if (gfc.psymodel != 0) {\n var ret;\n var bufp = [null, null];\n var bufpPos = 0;\n var blocktype = new_int$c(2);\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n bufp[ch] = inbuf[ch];\n bufpPos = 576 + gr * 576 - Encoder.FFTOFFSET;\n }\n if (gfp.VBR == VbrMode$6.vbr_mtrh || gfp.VBR == VbrMode$6.vbr_mt) {\n ret = psy.L3psycho_anal_vbr(\n gfp,\n bufp,\n bufpPos,\n gr,\n masking_LR,\n masking_MS,\n pe[gr],\n pe_MS[gr],\n tot_ener[gr],\n blocktype\n );\n } else {\n ret = psy.L3psycho_anal_ns(\n gfp,\n bufp,\n bufpPos,\n gr,\n masking_LR,\n masking_MS,\n pe[gr],\n pe_MS[gr],\n tot_ener[gr],\n blocktype\n );\n }\n if (ret != 0)\n return -4;\n if (gfp.mode == MPEGMode.JOINT_STEREO) {\n ms_ener_ratio[gr] = tot_ener[gr][2] + tot_ener[gr][3];\n if (ms_ener_ratio[gr] > 0) {\n ms_ener_ratio[gr] = tot_ener[gr][3] / ms_ener_ratio[gr];\n }\n }\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var cod_info = gfc.l3_side.tt[gr][ch];\n cod_info.block_type = blocktype[ch];\n cod_info.mixed_block_flag = 0;\n }\n }\n } else {\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n gfc.l3_side.tt[gr][ch].block_type = Encoder.NORM_TYPE;\n gfc.l3_side.tt[gr][ch].mixed_block_flag = 0;\n pe_MS[gr][ch] = pe[gr][ch] = 700;\n }\n }\n }\n adjust_ATH(gfc);\n newMDCT.mdct_sub48(gfc, inbuf[0], inbuf[1]);\n gfc.mode_ext = Encoder.MPG_MD_LR_LR;\n if (gfp.force_ms) {\n gfc.mode_ext = Encoder.MPG_MD_MS_LR;\n } else if (gfp.mode == MPEGMode.JOINT_STEREO) {\n var sum_pe_MS = 0;\n var sum_pe_LR = 0;\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n sum_pe_MS += pe_MS[gr][ch];\n sum_pe_LR += pe[gr][ch];\n }\n }\n if (sum_pe_MS <= 1 * sum_pe_LR) {\n var gi0 = gfc.l3_side.tt[0];\n var gi1 = gfc.l3_side.tt[gfc.mode_gr - 1];\n if (gi0[0].block_type == gi0[1].block_type && gi1[0].block_type == gi1[1].block_type) {\n gfc.mode_ext = Encoder.MPG_MD_MS_LR;\n }\n }\n }\n if (gfc.mode_ext == MPG_MD_MS_LR) {\n masking = masking_MS;\n pe_use = pe_MS;\n } else {\n masking = masking_LR;\n pe_use = pe;\n }\n if (gfp.analysis && gfc.pinfo != null) {\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n gfc.pinfo.ms_ratio[gr] = gfc.ms_ratio[gr];\n gfc.pinfo.ms_ener_ratio[gr] = ms_ener_ratio[gr];\n gfc.pinfo.blocktype[gr][ch] = gfc.l3_side.tt[gr][ch].block_type;\n gfc.pinfo.pe[gr][ch] = pe_use[gr][ch];\n System$7.arraycopy(\n gfc.l3_side.tt[gr][ch].xr,\n 0,\n gfc.pinfo.xr[gr][ch],\n 0,\n 576\n );\n if (gfc.mode_ext == MPG_MD_MS_LR) {\n gfc.pinfo.ers[gr][ch] = gfc.pinfo.ers[gr][ch + 2];\n System$7.arraycopy(\n gfc.pinfo.energy[gr][ch + 2],\n 0,\n gfc.pinfo.energy[gr][ch],\n 0,\n gfc.pinfo.energy[gr][ch].length\n );\n }\n }\n }\n }\n if (gfp.VBR == VbrMode$6.vbr_off || gfp.VBR == VbrMode$6.vbr_abr) {\n var i;\n var f;\n for (i = 0; i < 18; i++)\n gfc.nsPsy.pefirbuf[i] = gfc.nsPsy.pefirbuf[i + 1];\n f = 0;\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++)\n f += pe_use[gr][ch];\n }\n gfc.nsPsy.pefirbuf[18] = f;\n f = gfc.nsPsy.pefirbuf[9];\n for (i = 0; i < 9; i++) {\n f += (gfc.nsPsy.pefirbuf[i] + gfc.nsPsy.pefirbuf[18 - i]) * Encoder.fircoef[i];\n }\n f = 670 * 5 * gfc.mode_gr * gfc.channels_out / f;\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n pe_use[gr][ch] *= f;\n }\n }\n }\n gfc.iteration_loop.iteration_loop(gfp, pe_use, ms_ener_ratio, masking);\n bs.format_bitstream(gfp);\n mp3count = bs.copy_buffer(gfc, mp3buf, mp3bufPos, mp3buf_size, 1);\n if (gfp.bWriteVbrTag)\n vbr.addVbrFrame(gfp);\n if (gfp.analysis && gfc.pinfo != null) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var j;\n for (j = 0; j < FFTOFFSET; j++) {\n gfc.pinfo.pcmdata[ch][j] = gfc.pinfo.pcmdata[ch][j + gfp.framesize];\n }\n for (j = FFTOFFSET; j < 1600; j++) {\n gfc.pinfo.pcmdata[ch][j] = inbuf[ch][j - FFTOFFSET];\n }\n }\n qupvt.set_frame_pinfo(gfp, masking);\n }\n updateStats(gfc);\n return mp3count;\n };\n}\nvar Util$3 = common.Util;\nvar new_float$b = common.new_float;\nfunction FFT() {\n var window2 = new_float$b(Encoder.BLKSIZE);\n var window_s = new_float$b(Encoder.BLKSIZE_s / 2);\n var costab = [\n 0.9238795325112867,\n 0.3826834323650898,\n 0.9951847266721969,\n 0.0980171403295606,\n 0.9996988186962042,\n 0.02454122852291229,\n 0.9999811752826011,\n 0.006135884649154475\n ];\n function fht(fz, fzPos, n) {\n var tri = 0;\n var k4;\n var fi;\n var gi;\n n <<= 1;\n var fn = fzPos + n;\n k4 = 4;\n do {\n var s1, c1;\n var i, k1, k2, k3, kx;\n kx = k4 >> 1;\n k1 = k4;\n k2 = k4 << 1;\n k3 = k2 + k1;\n k4 = k2 << 1;\n fi = fzPos;\n gi = fi + kx;\n do {\n var f0, f1, f2, f3;\n f1 = fz[fi + 0] - fz[fi + k1];\n f0 = fz[fi + 0] + fz[fi + k1];\n f3 = fz[fi + k2] - fz[fi + k3];\n f2 = fz[fi + k2] + fz[fi + k3];\n fz[fi + k2] = f0 - f2;\n fz[fi + 0] = f0 + f2;\n fz[fi + k3] = f1 - f3;\n fz[fi + k1] = f1 + f3;\n f1 = fz[gi + 0] - fz[gi + k1];\n f0 = fz[gi + 0] + fz[gi + k1];\n f3 = Util$3.SQRT2 * fz[gi + k3];\n f2 = Util$3.SQRT2 * fz[gi + k2];\n fz[gi + k2] = f0 - f2;\n fz[gi + 0] = f0 + f2;\n fz[gi + k3] = f1 - f3;\n fz[gi + k1] = f1 + f3;\n gi += k4;\n fi += k4;\n } while (fi < fn);\n c1 = costab[tri + 0];\n s1 = costab[tri + 1];\n for (i = 1; i < kx; i++) {\n var c2, s2;\n c2 = 1 - 2 * s1 * s1;\n s2 = 2 * s1 * c1;\n fi = fzPos + i;\n gi = fzPos + k1 - i;\n do {\n var a, b, g0, f0, f1, g1, f2, g2, f3, g3;\n b = s2 * fz[fi + k1] - c2 * fz[gi + k1];\n a = c2 * fz[fi + k1] + s2 * fz[gi + k1];\n f1 = fz[fi + 0] - a;\n f0 = fz[fi + 0] + a;\n g1 = fz[gi + 0] - b;\n g0 = fz[gi + 0] + b;\n b = s2 * fz[fi + k3] - c2 * fz[gi + k3];\n a = c2 * fz[fi + k3] + s2 * fz[gi + k3];\n f3 = fz[fi + k2] - a;\n f2 = fz[fi + k2] + a;\n g3 = fz[gi + k2] - b;\n g2 = fz[gi + k2] + b;\n b = s1 * f2 - c1 * g3;\n a = c1 * f2 + s1 * g3;\n fz[fi + k2] = f0 - a;\n fz[fi + 0] = f0 + a;\n fz[gi + k3] = g1 - b;\n fz[gi + k1] = g1 + b;\n b = c1 * g2 - s1 * f3;\n a = s1 * g2 + c1 * f3;\n fz[gi + k2] = g0 - a;\n fz[gi + 0] = g0 + a;\n fz[fi + k3] = f1 - b;\n fz[fi + k1] = f1 + b;\n gi += k4;\n fi += k4;\n } while (fi < fn);\n c2 = c1;\n c1 = c2 * costab[tri + 0] - s1 * costab[tri + 1];\n s1 = c2 * costab[tri + 1] + s1 * costab[tri + 0];\n }\n tri += 2;\n } while (k4 < n);\n }\n var rv_tbl = [\n 0,\n 128,\n 64,\n 192,\n 32,\n 160,\n 96,\n 224,\n 16,\n 144,\n 80,\n 208,\n 48,\n 176,\n 112,\n 240,\n 8,\n 136,\n 72,\n 200,\n 40,\n 168,\n 104,\n 232,\n 24,\n 152,\n 88,\n 216,\n 56,\n 184,\n 120,\n 248,\n 4,\n 132,\n 68,\n 196,\n 36,\n 164,\n 100,\n 228,\n 20,\n 148,\n 84,\n 212,\n 52,\n 180,\n 116,\n 244,\n 12,\n 140,\n 76,\n 204,\n 44,\n 172,\n 108,\n 236,\n 28,\n 156,\n 92,\n 220,\n 60,\n 188,\n 124,\n 252,\n 2,\n 130,\n 66,\n 194,\n 34,\n 162,\n 98,\n 226,\n 18,\n 146,\n 82,\n 210,\n 50,\n 178,\n 114,\n 242,\n 10,\n 138,\n 74,\n 202,\n 42,\n 170,\n 106,\n 234,\n 26,\n 154,\n 90,\n 218,\n 58,\n 186,\n 122,\n 250,\n 6,\n 134,\n 70,\n 198,\n 38,\n 166,\n 102,\n 230,\n 22,\n 150,\n 86,\n 214,\n 54,\n 182,\n 118,\n 246,\n 14,\n 142,\n 78,\n 206,\n 46,\n 174,\n 110,\n 238,\n 30,\n 158,\n 94,\n 222,\n 62,\n 190,\n 126,\n 254\n ];\n this.fft_short = function(gfc, x_real, chn, buffer, bufPos) {\n for (var b = 0; b < 3; b++) {\n var x = Encoder.BLKSIZE_s / 2;\n var k = 65535 & 576 / 3 * (b + 1);\n var j = Encoder.BLKSIZE_s / 8 - 1;\n do {\n var f0, f1, f2, f3, w;\n var i = rv_tbl[j << 2] & 255;\n f0 = window_s[i] * buffer[chn][bufPos + i + k];\n w = window_s[127 - i] * buffer[chn][bufPos + i + k + 128];\n f1 = f0 - w;\n f0 = f0 + w;\n f2 = window_s[i + 64] * buffer[chn][bufPos + i + k + 64];\n w = window_s[63 - i] * buffer[chn][bufPos + i + k + 192];\n f3 = f2 - w;\n f2 = f2 + w;\n x -= 4;\n x_real[b][x + 0] = f0 + f2;\n x_real[b][x + 2] = f0 - f2;\n x_real[b][x + 1] = f1 + f3;\n x_real[b][x + 3] = f1 - f3;\n f0 = window_s[i + 1] * buffer[chn][bufPos + i + k + 1];\n w = window_s[126 - i] * buffer[chn][bufPos + i + k + 129];\n f1 = f0 - w;\n f0 = f0 + w;\n f2 = window_s[i + 65] * buffer[chn][bufPos + i + k + 65];\n w = window_s[62 - i] * buffer[chn][bufPos + i + k + 193];\n f3 = f2 - w;\n f2 = f2 + w;\n x_real[b][x + Encoder.BLKSIZE_s / 2 + 0] = f0 + f2;\n x_real[b][x + Encoder.BLKSIZE_s / 2 + 2] = f0 - f2;\n x_real[b][x + Encoder.BLKSIZE_s / 2 + 1] = f1 + f3;\n x_real[b][x + Encoder.BLKSIZE_s / 2 + 3] = f1 - f3;\n } while (--j >= 0);\n fht(x_real[b], x, Encoder.BLKSIZE_s / 2);\n }\n };\n this.fft_long = function(gfc, y, chn, buffer, bufPos) {\n var jj = Encoder.BLKSIZE / 8 - 1;\n var x = Encoder.BLKSIZE / 2;\n do {\n var f0, f1, f2, f3, w;\n var i = rv_tbl[jj] & 255;\n f0 = window2[i] * buffer[chn][bufPos + i];\n w = window2[i + 512] * buffer[chn][bufPos + i + 512];\n f1 = f0 - w;\n f0 = f0 + w;\n f2 = window2[i + 256] * buffer[chn][bufPos + i + 256];\n w = window2[i + 768] * buffer[chn][bufPos + i + 768];\n f3 = f2 - w;\n f2 = f2 + w;\n x -= 4;\n y[x + 0] = f0 + f2;\n y[x + 2] = f0 - f2;\n y[x + 1] = f1 + f3;\n y[x + 3] = f1 - f3;\n f0 = window2[i + 1] * buffer[chn][bufPos + i + 1];\n w = window2[i + 513] * buffer[chn][bufPos + i + 513];\n f1 = f0 - w;\n f0 = f0 + w;\n f2 = window2[i + 257] * buffer[chn][bufPos + i + 257];\n w = window2[i + 769] * buffer[chn][bufPos + i + 769];\n f3 = f2 - w;\n f2 = f2 + w;\n y[x + Encoder.BLKSIZE / 2 + 0] = f0 + f2;\n y[x + Encoder.BLKSIZE / 2 + 2] = f0 - f2;\n y[x + Encoder.BLKSIZE / 2 + 1] = f1 + f3;\n y[x + Encoder.BLKSIZE / 2 + 3] = f1 - f3;\n } while (--jj >= 0);\n fht(y, x, Encoder.BLKSIZE / 2);\n };\n this.init_fft = function(gfc) {\n for (var i = 0; i < Encoder.BLKSIZE; i++) {\n window2[i] = 0.42 - 0.5 * Math.cos(2 * Math.PI * (i + 0.5) / Encoder.BLKSIZE) + 0.08 * Math.cos(4 * Math.PI * (i + 0.5) / Encoder.BLKSIZE);\n }\n for (var i = 0; i < Encoder.BLKSIZE_s / 2; i++) {\n window_s[i] = 0.5 * (1 - Math.cos(2 * Math.PI * (i + 0.5) / Encoder.BLKSIZE_s));\n }\n };\n}\nvar VbrMode$5 = common.VbrMode;\nvar Float$1 = common.Float;\nvar ShortBlock$2 = common.ShortBlock;\nvar Util$2 = common.Util;\nvar Arrays$5 = common.Arrays;\nvar new_float$a = common.new_float;\nvar new_float_n$3 = common.new_float_n;\nvar new_int$b = common.new_int;\nvar assert$9 = common.assert;\nfunction PsyModel() {\n var fft = new FFT();\n var LOG10 = 2.302585092994046;\n var rpelev = 2;\n var rpelev2 = 16;\n var rpelev_s = 2;\n var rpelev2_s = 16;\n var DELBARK = 0.34;\n var VO_SCALE = 1 / (14752 * 14752) / (Encoder.BLKSIZE / 2);\n var temporalmask_sustain_sec = 0.01;\n var NS_PREECHO_ATT0 = 0.8;\n var NS_PREECHO_ATT1 = 0.6;\n var NS_PREECHO_ATT2 = 0.3;\n var NS_MSFIX = 3.5;\n var NSFIRLEN = 21;\n var LN_TO_LOG10 = 0.2302585093;\n function NON_LINEAR_SCALE_ENERGY(x) {\n return x;\n }\n function psycho_loudness_approx(energy, gfc) {\n var loudness_power = 0;\n for (var i = 0; i < Encoder.BLKSIZE / 2; ++i) {\n loudness_power += energy[i] * gfc.ATH.eql_w[i];\n }\n loudness_power *= VO_SCALE;\n return loudness_power;\n }\n function compute_ffts(gfp, fftenergy, fftenergy_s, wsamp_l, wsamp_lPos, wsamp_s, wsamp_sPos, gr_out, chn, buffer, bufPos) {\n var gfc = gfp.internal_flags;\n if (chn < 2) {\n fft.fft_long(gfc, wsamp_l[wsamp_lPos], chn, buffer, bufPos);\n fft.fft_short(gfc, wsamp_s[wsamp_sPos], chn, buffer, bufPos);\n } else if (chn == 2) {\n for (var j = Encoder.BLKSIZE - 1; j >= 0; --j) {\n var l = wsamp_l[wsamp_lPos + 0][j];\n var r = wsamp_l[wsamp_lPos + 1][j];\n wsamp_l[wsamp_lPos + 0][j] = (l + r) * Util$2.SQRT2 * 0.5;\n wsamp_l[wsamp_lPos + 1][j] = (l - r) * Util$2.SQRT2 * 0.5;\n }\n for (var b = 2; b >= 0; --b) {\n for (var j = Encoder.BLKSIZE_s - 1; j >= 0; --j) {\n var l = wsamp_s[wsamp_sPos + 0][b][j];\n var r = wsamp_s[wsamp_sPos + 1][b][j];\n wsamp_s[wsamp_sPos + 0][b][j] = (l + r) * Util$2.SQRT2 * 0.5;\n wsamp_s[wsamp_sPos + 1][b][j] = (l - r) * Util$2.SQRT2 * 0.5;\n }\n }\n }\n fftenergy[0] = NON_LINEAR_SCALE_ENERGY(wsamp_l[wsamp_lPos + 0][0]);\n fftenergy[0] *= fftenergy[0];\n for (var j = Encoder.BLKSIZE / 2 - 1; j >= 0; --j) {\n var re = wsamp_l[wsamp_lPos + 0][Encoder.BLKSIZE / 2 - j];\n var im = wsamp_l[wsamp_lPos + 0][Encoder.BLKSIZE / 2 + j];\n fftenergy[Encoder.BLKSIZE / 2 - j] = NON_LINEAR_SCALE_ENERGY(\n (re * re + im * im) * 0.5\n );\n }\n for (var b = 2; b >= 0; --b) {\n fftenergy_s[b][0] = wsamp_s[wsamp_sPos + 0][b][0];\n fftenergy_s[b][0] *= fftenergy_s[b][0];\n for (var j = Encoder.BLKSIZE_s / 2 - 1; j >= 0; --j) {\n var re = wsamp_s[wsamp_sPos + 0][b][Encoder.BLKSIZE_s / 2 - j];\n var im = wsamp_s[wsamp_sPos + 0][b][Encoder.BLKSIZE_s / 2 + j];\n fftenergy_s[b][Encoder.BLKSIZE_s / 2 - j] = NON_LINEAR_SCALE_ENERGY(\n (re * re + im * im) * 0.5\n );\n }\n }\n {\n var totalenergy = 0;\n for (var j = 11; j < Encoder.HBLKSIZE; j++)\n totalenergy += fftenergy[j];\n gfc.tot_ener[chn] = totalenergy;\n }\n if (gfp.analysis) {\n for (var j = 0; j < Encoder.HBLKSIZE; j++) {\n gfc.pinfo.energy[gr_out][chn][j] = gfc.pinfo.energy_save[chn][j];\n gfc.pinfo.energy_save[chn][j] = fftenergy[j];\n }\n gfc.pinfo.pe[gr_out][chn] = gfc.pe[chn];\n }\n if (gfp.athaa_loudapprox == 2 && chn < 2) {\n gfc.loudness_sq[gr_out][chn] = gfc.loudness_sq_save[chn];\n gfc.loudness_sq_save[chn] = psycho_loudness_approx(fftenergy, gfc);\n }\n }\n var I1LIMIT = 8;\n var I2LIMIT = 23;\n var MLIMIT = 15;\n var ma_max_i1;\n var ma_max_i2;\n var ma_max_m;\n var tab = [\n 1,\n 0.79433,\n 0.63096,\n 0.63096,\n 0.63096,\n 0.63096,\n 0.63096,\n 0.25119,\n 0.11749\n ];\n function init_mask_add_max_values() {\n ma_max_i1 = Math.pow(10, (I1LIMIT + 1) / 16);\n ma_max_i2 = Math.pow(10, (I2LIMIT + 1) / 16);\n ma_max_m = Math.pow(10, MLIMIT / 10);\n }\n var table1 = [\n 3.3246 * 3.3246,\n 3.23837 * 3.23837,\n 3.15437 * 3.15437,\n 3.00412 * 3.00412,\n 2.86103 * 2.86103,\n 2.65407 * 2.65407,\n 2.46209 * 2.46209,\n 2.284 * 2.284,\n 2.11879 * 2.11879,\n 1.96552 * 1.96552,\n 1.82335 * 1.82335,\n 1.69146 * 1.69146,\n 1.56911 * 1.56911,\n 1.46658 * 1.46658,\n 1.37074 * 1.37074,\n 1.31036 * 1.31036,\n 1.25264 * 1.25264,\n 1.20648 * 1.20648,\n 1.16203 * 1.16203,\n 1.12765 * 1.12765,\n 1.09428 * 1.09428,\n 1.0659 * 1.0659,\n 1.03826 * 1.03826,\n 1.01895 * 1.01895,\n 1\n ];\n var table2 = [\n 1.33352 * 1.33352,\n 1.35879 * 1.35879,\n 1.38454 * 1.38454,\n 1.39497 * 1.39497,\n 1.40548 * 1.40548,\n 1.3537 * 1.3537,\n 1.30382 * 1.30382,\n 1.22321 * 1.22321,\n 1.14758 * 1.14758,\n 1\n ];\n var table3 = [\n 2.35364 * 2.35364,\n 2.29259 * 2.29259,\n 2.23313 * 2.23313,\n 2.12675 * 2.12675,\n 2.02545 * 2.02545,\n 1.87894 * 1.87894,\n 1.74303 * 1.74303,\n 1.61695 * 1.61695,\n 1.49999 * 1.49999,\n 1.39148 * 1.39148,\n 1.29083 * 1.29083,\n 1.19746 * 1.19746,\n 1.11084 * 1.11084,\n 1.03826 * 1.03826\n ];\n function mask_add(m1, m2, kk, b, gfc, shortblock) {\n var ratio;\n if (m2 > m1) {\n if (m2 < m1 * ma_max_i2)\n ratio = m2 / m1;\n else\n return m1 + m2;\n } else {\n if (m1 >= m2 * ma_max_i2)\n return m1 + m2;\n ratio = m1 / m2;\n }\n m1 += m2;\n if (b + 3 <= 3 + 3) {\n if (ratio >= ma_max_i1) {\n return m1;\n }\n var i = 0 | Util$2.FAST_LOG10_X(ratio, 16);\n return m1 * table2[i];\n }\n var i = 0 | Util$2.FAST_LOG10_X(ratio, 16);\n if (shortblock != 0) {\n m2 = gfc.ATH.cb_s[kk] * gfc.ATH.adjust;\n } else {\n m2 = gfc.ATH.cb_l[kk] * gfc.ATH.adjust;\n }\n if (m1 < ma_max_m * m2) {\n if (m1 > m2) {\n var f, r;\n f = 1;\n if (i <= 13)\n f = table3[i];\n r = Util$2.FAST_LOG10_X(m1 / m2, 10 / 15);\n return m1 * ((table1[i] - f) * r + f);\n }\n if (i > 13)\n return m1;\n return m1 * table3[i];\n }\n return m1 * table1[i];\n }\n var table2_ = [\n 1.33352 * 1.33352,\n 1.35879 * 1.35879,\n 1.38454 * 1.38454,\n 1.39497 * 1.39497,\n 1.40548 * 1.40548,\n 1.3537 * 1.3537,\n 1.30382 * 1.30382,\n 1.22321 * 1.22321,\n 1.14758 * 1.14758,\n 1\n ];\n function vbrpsy_mask_add(m1, m2, b) {\n var ratio;\n if (m1 < 0) {\n m1 = 0;\n }\n if (m2 < 0) {\n m2 = 0;\n }\n if (m1 <= 0) {\n return m2;\n }\n if (m2 <= 0) {\n return m1;\n }\n if (m2 > m1) {\n ratio = m2 / m1;\n } else {\n ratio = m1 / m2;\n }\n if (b >= -2 && b <= 2) {\n if (ratio >= ma_max_i1) {\n return m1 + m2;\n } else {\n var i = 0 | Util$2.FAST_LOG10_X(ratio, 16);\n return (m1 + m2) * table2_[i];\n }\n }\n if (ratio < ma_max_i2) {\n return m1 + m2;\n }\n if (m1 < m2) {\n m1 = m2;\n }\n return m1;\n }\n function calc_interchannel_masking(gfp, ratio) {\n var gfc = gfp.internal_flags;\n if (gfc.channels_out > 1) {\n for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {\n var l = gfc.thm[0].l[sb];\n var r = gfc.thm[1].l[sb];\n gfc.thm[0].l[sb] += r * ratio;\n gfc.thm[1].l[sb] += l * ratio;\n }\n for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n for (var sblock = 0; sblock < 3; sblock++) {\n var l = gfc.thm[0].s[sb][sblock];\n var r = gfc.thm[1].s[sb][sblock];\n gfc.thm[0].s[sb][sblock] += r * ratio;\n gfc.thm[1].s[sb][sblock] += l * ratio;\n }\n }\n }\n }\n function msfix1(gfc) {\n for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {\n if (gfc.thm[0].l[sb] > 1.58 * gfc.thm[1].l[sb] || gfc.thm[1].l[sb] > 1.58 * gfc.thm[0].l[sb]) {\n continue;\n }\n var mld = gfc.mld_l[sb] * gfc.en[3].l[sb];\n var rmid = Math.max(gfc.thm[2].l[sb], Math.min(gfc.thm[3].l[sb], mld));\n mld = gfc.mld_l[sb] * gfc.en[2].l[sb];\n var rside = Math.max(gfc.thm[3].l[sb], Math.min(gfc.thm[2].l[sb], mld));\n gfc.thm[2].l[sb] = rmid;\n gfc.thm[3].l[sb] = rside;\n }\n for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n for (var sblock = 0; sblock < 3; sblock++) {\n if (gfc.thm[0].s[sb][sblock] > 1.58 * gfc.thm[1].s[sb][sblock] || gfc.thm[1].s[sb][sblock] > 1.58 * gfc.thm[0].s[sb][sblock]) {\n continue;\n }\n var mld = gfc.mld_s[sb] * gfc.en[3].s[sb][sblock];\n var rmid = Math.max(\n gfc.thm[2].s[sb][sblock],\n Math.min(gfc.thm[3].s[sb][sblock], mld)\n );\n mld = gfc.mld_s[sb] * gfc.en[2].s[sb][sblock];\n var rside = Math.max(\n gfc.thm[3].s[sb][sblock],\n Math.min(gfc.thm[2].s[sb][sblock], mld)\n );\n gfc.thm[2].s[sb][sblock] = rmid;\n gfc.thm[3].s[sb][sblock] = rside;\n }\n }\n }\n function ns_msfix(gfc, msfix, athadjust) {\n var msfix2 = msfix;\n var athlower = Math.pow(10, athadjust);\n msfix *= 2;\n msfix2 *= 2;\n for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {\n var thmLR, thmM, thmS, ath;\n ath = gfc.ATH.cb_l[gfc.bm_l[sb]] * athlower;\n thmLR = Math.min(\n Math.max(gfc.thm[0].l[sb], ath),\n Math.max(gfc.thm[1].l[sb], ath)\n );\n thmM = Math.max(gfc.thm[2].l[sb], ath);\n thmS = Math.max(gfc.thm[3].l[sb], ath);\n if (thmLR * msfix < thmM + thmS) {\n var f = thmLR * msfix2 / (thmM + thmS);\n thmM *= f;\n thmS *= f;\n }\n gfc.thm[2].l[sb] = Math.min(thmM, gfc.thm[2].l[sb]);\n gfc.thm[3].l[sb] = Math.min(thmS, gfc.thm[3].l[sb]);\n }\n athlower *= Encoder.BLKSIZE_s / Encoder.BLKSIZE;\n for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n for (var sblock = 0; sblock < 3; sblock++) {\n var thmLR, thmM, thmS, ath;\n ath = gfc.ATH.cb_s[gfc.bm_s[sb]] * athlower;\n thmLR = Math.min(\n Math.max(gfc.thm[0].s[sb][sblock], ath),\n Math.max(gfc.thm[1].s[sb][sblock], ath)\n );\n thmM = Math.max(gfc.thm[2].s[sb][sblock], ath);\n thmS = Math.max(gfc.thm[3].s[sb][sblock], ath);\n if (thmLR * msfix < thmM + thmS) {\n var f = thmLR * msfix / (thmM + thmS);\n thmM *= f;\n thmS *= f;\n }\n gfc.thm[2].s[sb][sblock] = Math.min(gfc.thm[2].s[sb][sblock], thmM);\n gfc.thm[3].s[sb][sblock] = Math.min(gfc.thm[3].s[sb][sblock], thmS);\n }\n }\n }\n function convert_partition2scalefac_s(gfc, eb, thr, chn, sblock) {\n var sb, b;\n var enn = 0;\n var thmm = 0;\n for (sb = b = 0; sb < Encoder.SBMAX_s; ++b, ++sb) {\n var bo_s_sb = gfc.bo_s[sb];\n var npart_s = gfc.npart_s;\n var b_lim = bo_s_sb < npart_s ? bo_s_sb : npart_s;\n while (b < b_lim) {\n assert$9(eb[b] >= 0);\n assert$9(thr[b] >= 0);\n enn += eb[b];\n thmm += thr[b];\n b++;\n }\n gfc.en[chn].s[sb][sblock] = enn;\n gfc.thm[chn].s[sb][sblock] = thmm;\n if (b >= npart_s) {\n ++sb;\n break;\n }\n assert$9(eb[b] >= 0);\n assert$9(thr[b] >= 0);\n {\n var w_curr = gfc.PSY.bo_s_weight[sb];\n var w_next = 1 - w_curr;\n enn = w_curr * eb[b];\n thmm = w_curr * thr[b];\n gfc.en[chn].s[sb][sblock] += enn;\n gfc.thm[chn].s[sb][sblock] += thmm;\n enn = w_next * eb[b];\n thmm = w_next * thr[b];\n }\n }\n for (; sb < Encoder.SBMAX_s; ++sb) {\n gfc.en[chn].s[sb][sblock] = 0;\n gfc.thm[chn].s[sb][sblock] = 0;\n }\n }\n function convert_partition2scalefac_l(gfc, eb, thr, chn) {\n var sb, b;\n var enn = 0;\n var thmm = 0;\n for (sb = b = 0; sb < Encoder.SBMAX_l; ++b, ++sb) {\n var bo_l_sb = gfc.bo_l[sb];\n var npart_l = gfc.npart_l;\n var b_lim = bo_l_sb < npart_l ? bo_l_sb : npart_l;\n while (b < b_lim) {\n assert$9(eb[b] >= 0);\n assert$9(thr[b] >= 0);\n enn += eb[b];\n thmm += thr[b];\n b++;\n }\n gfc.en[chn].l[sb] = enn;\n gfc.thm[chn].l[sb] = thmm;\n if (b >= npart_l) {\n ++sb;\n break;\n }\n assert$9(eb[b] >= 0);\n assert$9(thr[b] >= 0);\n {\n var w_curr = gfc.PSY.bo_l_weight[sb];\n var w_next = 1 - w_curr;\n enn = w_curr * eb[b];\n thmm = w_curr * thr[b];\n gfc.en[chn].l[sb] += enn;\n gfc.thm[chn].l[sb] += thmm;\n enn = w_next * eb[b];\n thmm = w_next * thr[b];\n }\n }\n for (; sb < Encoder.SBMAX_l; ++sb) {\n gfc.en[chn].l[sb] = 0;\n gfc.thm[chn].l[sb] = 0;\n }\n }\n function compute_masking_s(gfp, fftenergy_s, eb, thr, chn, sblock) {\n var gfc = gfp.internal_flags;\n var j, b;\n for (b = j = 0; b < gfc.npart_s; ++b) {\n var ebb = 0;\n var n = gfc.numlines_s[b];\n for (var i = 0; i < n; ++i, ++j) {\n var el = fftenergy_s[sblock][j];\n ebb += el;\n }\n eb[b] = ebb;\n }\n assert$9(b == gfc.npart_s);\n for (j = b = 0; b < gfc.npart_s; b++) {\n var kk = gfc.s3ind_s[b][0];\n var ecb = gfc.s3_ss[j++] * eb[kk];\n ++kk;\n while (kk <= gfc.s3ind_s[b][1]) {\n ecb += gfc.s3_ss[j] * eb[kk];\n ++j;\n ++kk;\n }\n {\n var x = rpelev_s * gfc.nb_s1[chn][b];\n thr[b] = Math.min(ecb, x);\n }\n if (gfc.blocktype_old[chn & 1] == Encoder.SHORT_TYPE) {\n var x = rpelev2_s * gfc.nb_s2[chn][b];\n var y = thr[b];\n thr[b] = Math.min(x, y);\n }\n gfc.nb_s2[chn][b] = gfc.nb_s1[chn][b];\n gfc.nb_s1[chn][b] = ecb;\n assert$9(thr[b] >= 0);\n }\n for (; b <= Encoder.CBANDS; ++b) {\n eb[b] = 0;\n thr[b] = 0;\n }\n }\n function block_type_set(gfp, uselongblock, blocktype_d, blocktype) {\n var gfc = gfp.internal_flags;\n if (gfp.short_blocks == ShortBlock$2.short_block_coupled && !(uselongblock[0] != 0 && uselongblock[1] != 0)) {\n uselongblock[0] = uselongblock[1] = 0;\n }\n for (var chn = 0; chn < gfc.channels_out; chn++) {\n blocktype[chn] = Encoder.NORM_TYPE;\n if (gfp.short_blocks == ShortBlock$2.short_block_dispensed) {\n uselongblock[chn] = 1;\n }\n if (gfp.short_blocks == ShortBlock$2.short_block_forced) {\n uselongblock[chn] = 0;\n }\n if (uselongblock[chn] != 0) {\n assert$9(gfc.blocktype_old[chn] != Encoder.START_TYPE);\n if (gfc.blocktype_old[chn] == Encoder.SHORT_TYPE) {\n blocktype[chn] = Encoder.STOP_TYPE;\n }\n } else {\n blocktype[chn] = Encoder.SHORT_TYPE;\n if (gfc.blocktype_old[chn] == Encoder.NORM_TYPE) {\n gfc.blocktype_old[chn] = Encoder.START_TYPE;\n }\n if (gfc.blocktype_old[chn] == Encoder.STOP_TYPE) {\n gfc.blocktype_old[chn] = Encoder.SHORT_TYPE;\n }\n }\n blocktype_d[chn] = gfc.blocktype_old[chn];\n gfc.blocktype_old[chn] = blocktype[chn];\n }\n }\n function NS_INTERP(x, y, r) {\n if (r >= 1) {\n return x;\n }\n if (r <= 0)\n return y;\n if (y > 0) {\n return Math.pow(x / y, r) * y;\n }\n return 0;\n }\n var regcoef_s = [\n 11.8,\n 13.6,\n 17.2,\n 32,\n 46.5,\n 51.3,\n 57.5,\n 67.1,\n 71.5,\n 84.6,\n 97.6,\n 130\n ];\n function pecalc_s(mr, masking_lower) {\n var pe_s = 1236.28 / 4;\n for (var sb = 0; sb < Encoder.SBMAX_s - 1; sb++) {\n for (var sblock = 0; sblock < 3; sblock++) {\n var thm = mr.thm.s[sb][sblock];\n if (thm > 0) {\n var x = thm * masking_lower;\n var en = mr.en.s[sb][sblock];\n if (en > x) {\n if (en > x * 1e10) {\n pe_s += regcoef_s[sb] * (10 * LOG10);\n } else {\n pe_s += regcoef_s[sb] * Util$2.FAST_LOG10(en / x);\n }\n }\n }\n }\n }\n return pe_s;\n }\n var regcoef_l = [\n 6.8,\n 5.8,\n 5.8,\n 6.4,\n 6.5,\n 9.9,\n 12.1,\n 14.4,\n 15,\n 18.9,\n 21.6,\n 26.9,\n 34.2,\n 40.2,\n 46.8,\n 56.5,\n 60.7,\n 73.9,\n 85.7,\n 93.4,\n 126.1\n ];\n function pecalc_l(mr, masking_lower) {\n var pe_l = 1124.23 / 4;\n for (var sb = 0; sb < Encoder.SBMAX_l - 1; sb++) {\n var thm = mr.thm.l[sb];\n if (thm > 0) {\n var x = thm * masking_lower;\n var en = mr.en.l[sb];\n if (en > x) {\n if (en > x * 1e10) {\n pe_l += regcoef_l[sb] * (10 * LOG10);\n } else {\n pe_l += regcoef_l[sb] * Util$2.FAST_LOG10(en / x);\n }\n }\n }\n }\n return pe_l;\n }\n function calc_energy(gfc, fftenergy, eb, max, avg) {\n var b, j;\n for (b = j = 0; b < gfc.npart_l; ++b) {\n var ebb = 0;\n var m = 0;\n var i;\n for (i = 0; i < gfc.numlines_l[b]; ++i, ++j) {\n var el = fftenergy[j];\n ebb += el;\n if (m < el)\n m = el;\n }\n eb[b] = ebb;\n max[b] = m;\n avg[b] = ebb * gfc.rnumlines_l[b];\n assert$9(gfc.rnumlines_l[b] >= 0);\n assert$9(eb[b] >= 0);\n assert$9(max[b] >= 0);\n assert$9(avg[b] >= 0);\n }\n }\n function calc_mask_index_l(gfc, max, avg, mask_idx) {\n var last_tab_entry = tab.length - 1;\n var b = 0;\n var a = avg[b] + avg[b + 1];\n if (a > 0) {\n var m = max[b];\n if (m < max[b + 1])\n m = max[b + 1];\n assert$9(gfc.numlines_l[b] + gfc.numlines_l[b + 1] - 1 > 0);\n a = 20 * (m * 2 - a) / (a * (gfc.numlines_l[b] + gfc.numlines_l[b + 1] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n for (b = 1; b < gfc.npart_l - 1; b++) {\n a = avg[b - 1] + avg[b] + avg[b + 1];\n if (a > 0) {\n var m = max[b - 1];\n if (m < max[b])\n m = max[b];\n if (m < max[b + 1])\n m = max[b + 1];\n assert$9(\n gfc.numlines_l[b - 1] + gfc.numlines_l[b] + gfc.numlines_l[b + 1] - 1 > 0\n );\n a = 20 * (m * 3 - a) / (a * (gfc.numlines_l[b - 1] + gfc.numlines_l[b] + gfc.numlines_l[b + 1] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n }\n assert$9(b == gfc.npart_l - 1);\n a = avg[b - 1] + avg[b];\n if (a > 0) {\n var m = max[b - 1];\n if (m < max[b])\n m = max[b];\n assert$9(gfc.numlines_l[b - 1] + gfc.numlines_l[b] - 1 > 0);\n a = 20 * (m * 2 - a) / (a * (gfc.numlines_l[b - 1] + gfc.numlines_l[b] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n assert$9(b == gfc.npart_l - 1);\n }\n var fircoef = [\n -865163e-23 * 2,\n -851586e-8 * 2,\n -674764e-23 * 2,\n 0.0209036 * 2,\n -336639e-22 * 2,\n -0.0438162 * 2,\n -154175e-22 * 2,\n 0.0931738 * 2,\n -552212e-22 * 2,\n -0.313819 * 2\n ];\n this.L3psycho_anal_ns = function(gfp, buffer, bufPos, gr_out, masking_ratio, masking_MS_ratio, percep_entropy, percep_MS_entropy, energy, blocktype_d) {\n var gfc = gfp.internal_flags;\n var wsamp_L = new_float_n$3([2, Encoder.BLKSIZE]);\n var wsamp_S = new_float_n$3([2, 3, Encoder.BLKSIZE_s]);\n var eb_l = new_float$a(Encoder.CBANDS + 1);\n var eb_s = new_float$a(Encoder.CBANDS + 1);\n var thr = new_float$a(Encoder.CBANDS + 2);\n var blocktype = new_int$b(2);\n var uselongblock = new_int$b(2);\n var numchn, chn;\n var b, i, j, k;\n var sb, sblock;\n var ns_hpfsmpl = new_float_n$3([2, 576]);\n var pcfact;\n var mask_idx_l = new_int$b(Encoder.CBANDS + 2);\n var mask_idx_s = new_int$b(Encoder.CBANDS + 2);\n Arrays$5.fill(mask_idx_s, 0);\n numchn = gfc.channels_out;\n if (gfp.mode == MPEGMode.JOINT_STEREO)\n numchn = 4;\n if (gfp.VBR == VbrMode$5.vbr_off) {\n pcfact = gfc.ResvMax == 0 ? 0 : gfc.ResvSize / gfc.ResvMax * 0.5;\n } else if (gfp.VBR == VbrMode$5.vbr_rh || gfp.VBR == VbrMode$5.vbr_mtrh || gfp.VBR == VbrMode$5.vbr_mt) {\n pcfact = 0.6;\n } else\n pcfact = 1;\n for (chn = 0; chn < gfc.channels_out; chn++) {\n var firbuf2 = buffer[chn];\n var firbufPos = bufPos + 576 - 350 - NSFIRLEN + 192;\n for (i = 0; i < 576; i++) {\n var sum1, sum2;\n sum1 = firbuf2[firbufPos + i + 10];\n sum2 = 0;\n for (j = 0; j < (NSFIRLEN - 1) / 2 - 1; j += 2) {\n sum1 += fircoef[j] * (firbuf2[firbufPos + i + j] + firbuf2[firbufPos + i + NSFIRLEN - j]);\n sum2 += fircoef[j + 1] * (firbuf2[firbufPos + i + j + 1] + firbuf2[firbufPos + i + NSFIRLEN - j - 1]);\n }\n ns_hpfsmpl[chn][i] = sum1 + sum2;\n }\n masking_ratio[gr_out][chn].en.assign(gfc.en[chn]);\n masking_ratio[gr_out][chn].thm.assign(gfc.thm[chn]);\n if (numchn > 2) {\n masking_MS_ratio[gr_out][chn].en.assign(gfc.en[chn + 2]);\n masking_MS_ratio[gr_out][chn].thm.assign(gfc.thm[chn + 2]);\n }\n }\n for (chn = 0; chn < numchn; chn++) {\n var wsamp_l;\n var wsamp_s;\n var en_subshort = new_float$a(12);\n var en_short = [0, 0, 0, 0];\n var attack_intensity = new_float$a(12);\n var ns_uselongblock = 1;\n var attackThreshold;\n var max = new_float$a(Encoder.CBANDS);\n var avg = new_float$a(Encoder.CBANDS);\n var ns_attacks = [0, 0, 0, 0];\n var fftenergy = new_float$a(Encoder.HBLKSIZE);\n var fftenergy_s = new_float_n$3([3, Encoder.HBLKSIZE_s]);\n assert$9(gfc.npart_s <= Encoder.CBANDS);\n assert$9(gfc.npart_l <= Encoder.CBANDS);\n for (i = 0; i < 3; i++) {\n en_subshort[i] = gfc.nsPsy.last_en_subshort[chn][i + 6];\n assert$9(gfc.nsPsy.last_en_subshort[chn][i + 4] > 0);\n attack_intensity[i] = en_subshort[i] / gfc.nsPsy.last_en_subshort[chn][i + 4];\n en_short[0] += en_subshort[i];\n }\n if (chn == 2) {\n for (i = 0; i < 576; i++) {\n var l, r;\n l = ns_hpfsmpl[0][i];\n r = ns_hpfsmpl[1][i];\n ns_hpfsmpl[0][i] = l + r;\n ns_hpfsmpl[1][i] = l - r;\n }\n }\n {\n var pf = ns_hpfsmpl[chn & 1];\n var pfPos = 0;\n for (i = 0; i < 9; i++) {\n var pfe = pfPos + 576 / 9;\n var p2 = 1;\n for (; pfPos < pfe; pfPos++) {\n if (p2 < Math.abs(pf[pfPos]))\n p2 = Math.abs(pf[pfPos]);\n }\n gfc.nsPsy.last_en_subshort[chn][i] = en_subshort[i + 3] = p2;\n en_short[1 + i / 3] += p2;\n if (p2 > en_subshort[i + 3 - 2]) {\n assert$9(en_subshort[i + 3 - 2] > 0);\n p2 = p2 / en_subshort[i + 3 - 2];\n } else if (en_subshort[i + 3 - 2] > p2 * 10) {\n p2 = en_subshort[i + 3 - 2] / (p2 * 10);\n } else\n p2 = 0;\n attack_intensity[i + 3] = p2;\n }\n }\n if (gfp.analysis) {\n var x = attack_intensity[0];\n for (i = 1; i < 12; i++) {\n if (x < attack_intensity[i])\n x = attack_intensity[i];\n }\n gfc.pinfo.ers[gr_out][chn] = gfc.pinfo.ers_save[chn];\n gfc.pinfo.ers_save[chn] = x;\n }\n attackThreshold = chn == 3 ? gfc.nsPsy.attackthre_s : gfc.nsPsy.attackthre;\n for (i = 0; i < 12; i++) {\n if (ns_attacks[i / 3] == 0 && attack_intensity[i] > attackThreshold) {\n ns_attacks[i / 3] = i % 3 + 1;\n }\n }\n for (i = 1; i < 4; i++) {\n var ratio;\n if (en_short[i - 1] > en_short[i]) {\n assert$9(en_short[i] > 0);\n ratio = en_short[i - 1] / en_short[i];\n } else {\n assert$9(en_short[i - 1] > 0);\n ratio = en_short[i] / en_short[i - 1];\n }\n if (ratio < 1.7) {\n ns_attacks[i] = 0;\n if (i == 1)\n ns_attacks[0] = 0;\n }\n }\n if (ns_attacks[0] != 0 && gfc.nsPsy.lastAttacks[chn] != 0) {\n ns_attacks[0] = 0;\n }\n if (gfc.nsPsy.lastAttacks[chn] == 3 || ns_attacks[0] + ns_attacks[1] + ns_attacks[2] + ns_attacks[3] != 0) {\n ns_uselongblock = 0;\n if (ns_attacks[1] != 0 && ns_attacks[0] != 0)\n ns_attacks[1] = 0;\n if (ns_attacks[2] != 0 && ns_attacks[1] != 0)\n ns_attacks[2] = 0;\n if (ns_attacks[3] != 0 && ns_attacks[2] != 0)\n ns_attacks[3] = 0;\n }\n if (chn < 2) {\n uselongblock[chn] = ns_uselongblock;\n } else {\n if (ns_uselongblock == 0) {\n uselongblock[0] = uselongblock[1] = 0;\n }\n }\n energy[chn] = gfc.tot_ener[chn];\n wsamp_s = wsamp_S;\n wsamp_l = wsamp_L;\n compute_ffts(\n gfp,\n fftenergy,\n fftenergy_s,\n wsamp_l,\n chn & 1,\n wsamp_s,\n chn & 1,\n gr_out,\n chn,\n buffer,\n bufPos\n );\n calc_energy(gfc, fftenergy, eb_l, max, avg);\n calc_mask_index_l(gfc, max, avg, mask_idx_l);\n for (sblock = 0; sblock < 3; sblock++) {\n var enn, thmm;\n compute_masking_s(gfp, fftenergy_s, eb_s, thr, chn, sblock);\n convert_partition2scalefac_s(gfc, eb_s, thr, chn, sblock);\n for (sb = 0; sb < Encoder.SBMAX_s; sb++) {\n thmm = gfc.thm[chn].s[sb][sblock];\n thmm *= NS_PREECHO_ATT0;\n if (ns_attacks[sblock] >= 2 || ns_attacks[sblock + 1] == 1) {\n var idx = sblock != 0 ? sblock - 1 : 2;\n var p2 = NS_INTERP(\n gfc.thm[chn].s[sb][idx],\n thmm,\n NS_PREECHO_ATT1 * pcfact\n );\n thmm = Math.min(thmm, p2);\n }\n if (ns_attacks[sblock] == 1) {\n var idx = sblock != 0 ? sblock - 1 : 2;\n var p2 = NS_INTERP(\n gfc.thm[chn].s[sb][idx],\n thmm,\n NS_PREECHO_ATT2 * pcfact\n );\n thmm = Math.min(thmm, p2);\n } else if (sblock != 0 && ns_attacks[sblock - 1] == 3 || sblock == 0 && gfc.nsPsy.lastAttacks[chn] == 3) {\n var idx = sblock != 2 ? sblock + 1 : 0;\n var p2 = NS_INTERP(\n gfc.thm[chn].s[sb][idx],\n thmm,\n NS_PREECHO_ATT2 * pcfact\n );\n thmm = Math.min(thmm, p2);\n }\n enn = en_subshort[sblock * 3 + 3] + en_subshort[sblock * 3 + 4] + en_subshort[sblock * 3 + 5];\n if (en_subshort[sblock * 3 + 5] * 6 < enn) {\n thmm *= 0.5;\n if (en_subshort[sblock * 3 + 4] * 6 < enn)\n thmm *= 0.5;\n }\n gfc.thm[chn].s[sb][sblock] = thmm;\n }\n }\n gfc.nsPsy.lastAttacks[chn] = ns_attacks[2];\n k = 0;\n {\n for (b = 0; b < gfc.npart_l; b++) {\n var kk = gfc.s3ind[b][0];\n var eb2 = eb_l[kk] * tab[mask_idx_l[kk]];\n var ecb = gfc.s3_ll[k++] * eb2;\n while (++kk <= gfc.s3ind[b][1]) {\n eb2 = eb_l[kk] * tab[mask_idx_l[kk]];\n ecb = mask_add(ecb, gfc.s3_ll[k++] * eb2, kk, kk - b, gfc, 0);\n }\n ecb *= 0.158489319246111;\n if (gfc.blocktype_old[chn & 1] == Encoder.SHORT_TYPE)\n thr[b] = ecb;\n else {\n thr[b] = NS_INTERP(\n Math.min(\n ecb,\n Math.min(rpelev * gfc.nb_1[chn][b], rpelev2 * gfc.nb_2[chn][b])\n ),\n ecb,\n pcfact\n );\n }\n gfc.nb_2[chn][b] = gfc.nb_1[chn][b];\n gfc.nb_1[chn][b] = ecb;\n }\n }\n for (; b <= Encoder.CBANDS; ++b) {\n eb_l[b] = 0;\n thr[b] = 0;\n }\n convert_partition2scalefac_l(gfc, eb_l, thr, chn);\n }\n if (gfp.mode == MPEGMode.STEREO || gfp.mode == MPEGMode.JOINT_STEREO) {\n if (gfp.interChRatio > 0) {\n calc_interchannel_masking(gfp, gfp.interChRatio);\n }\n }\n if (gfp.mode == MPEGMode.JOINT_STEREO) {\n var msfix;\n msfix1(gfc);\n msfix = gfp.msfix;\n if (Math.abs(msfix) > 0) {\n ns_msfix(gfc, msfix, gfp.ATHlower * gfc.ATH.adjust);\n }\n }\n block_type_set(gfp, uselongblock, blocktype_d, blocktype);\n for (chn = 0; chn < numchn; chn++) {\n var ppe;\n var ppePos = 0;\n var type;\n var mr;\n if (chn > 1) {\n ppe = percep_MS_entropy;\n ppePos = -2;\n type = Encoder.NORM_TYPE;\n if (blocktype_d[0] == Encoder.SHORT_TYPE || blocktype_d[1] == Encoder.SHORT_TYPE) {\n type = Encoder.SHORT_TYPE;\n }\n mr = masking_MS_ratio[gr_out][chn - 2];\n } else {\n ppe = percep_entropy;\n ppePos = 0;\n type = blocktype_d[chn];\n mr = masking_ratio[gr_out][chn];\n }\n if (type == Encoder.SHORT_TYPE) {\n ppe[ppePos + chn] = pecalc_s(mr, gfc.masking_lower);\n } else\n ppe[ppePos + chn] = pecalc_l(mr, gfc.masking_lower);\n if (gfp.analysis)\n gfc.pinfo.pe[gr_out][chn] = ppe[ppePos + chn];\n }\n return 0;\n };\n function vbrpsy_compute_fft_l(gfp, buffer, bufPos, chn, gr_out, fftenergy, wsamp_l, wsamp_lPos) {\n var gfc = gfp.internal_flags;\n if (chn < 2) {\n fft.fft_long(gfc, wsamp_l[wsamp_lPos], chn, buffer, bufPos);\n } else if (chn == 2) {\n for (var j = Encoder.BLKSIZE - 1; j >= 0; --j) {\n var l = wsamp_l[wsamp_lPos + 0][j];\n var r = wsamp_l[wsamp_lPos + 1][j];\n wsamp_l[wsamp_lPos + 0][j] = (l + r) * Util$2.SQRT2 * 0.5;\n wsamp_l[wsamp_lPos + 1][j] = (l - r) * Util$2.SQRT2 * 0.5;\n }\n }\n fftenergy[0] = NON_LINEAR_SCALE_ENERGY(wsamp_l[wsamp_lPos + 0][0]);\n fftenergy[0] *= fftenergy[0];\n for (var j = Encoder.BLKSIZE / 2 - 1; j >= 0; --j) {\n var re = wsamp_l[wsamp_lPos + 0][Encoder.BLKSIZE / 2 - j];\n var im = wsamp_l[wsamp_lPos + 0][Encoder.BLKSIZE / 2 + j];\n fftenergy[Encoder.BLKSIZE / 2 - j] = NON_LINEAR_SCALE_ENERGY(\n (re * re + im * im) * 0.5\n );\n }\n {\n var totalenergy = 0;\n for (var j = 11; j < Encoder.HBLKSIZE; j++)\n totalenergy += fftenergy[j];\n gfc.tot_ener[chn] = totalenergy;\n }\n if (gfp.analysis) {\n for (var j = 0; j < Encoder.HBLKSIZE; j++) {\n gfc.pinfo.energy[gr_out][chn][j] = gfc.pinfo.energy_save[chn][j];\n gfc.pinfo.energy_save[chn][j] = fftenergy[j];\n }\n gfc.pinfo.pe[gr_out][chn] = gfc.pe[chn];\n }\n }\n function vbrpsy_compute_fft_s(gfp, buffer, bufPos, chn, sblock, fftenergy_s, wsamp_s, wsamp_sPos) {\n var gfc = gfp.internal_flags;\n if (sblock == 0 && chn < 2) {\n fft.fft_short(gfc, wsamp_s[wsamp_sPos], chn, buffer, bufPos);\n }\n if (chn == 2) {\n for (var j = Encoder.BLKSIZE_s - 1; j >= 0; --j) {\n var l = wsamp_s[wsamp_sPos + 0][sblock][j];\n var r = wsamp_s[wsamp_sPos + 1][sblock][j];\n wsamp_s[wsamp_sPos + 0][sblock][j] = (l + r) * Util$2.SQRT2 * 0.5;\n wsamp_s[wsamp_sPos + 1][sblock][j] = (l - r) * Util$2.SQRT2 * 0.5;\n }\n }\n fftenergy_s[sblock][0] = wsamp_s[wsamp_sPos + 0][sblock][0];\n fftenergy_s[sblock][0] *= fftenergy_s[sblock][0];\n for (var j = Encoder.BLKSIZE_s / 2 - 1; j >= 0; --j) {\n var re = wsamp_s[wsamp_sPos + 0][sblock][Encoder.BLKSIZE_s / 2 - j];\n var im = wsamp_s[wsamp_sPos + 0][sblock][Encoder.BLKSIZE_s / 2 + j];\n fftenergy_s[sblock][Encoder.BLKSIZE_s / 2 - j] = NON_LINEAR_SCALE_ENERGY(\n (re * re + im * im) * 0.5\n );\n }\n }\n function vbrpsy_compute_loudness_approximation_l(gfp, gr_out, chn, fftenergy) {\n var gfc = gfp.internal_flags;\n if (gfp.athaa_loudapprox == 2 && chn < 2) {\n gfc.loudness_sq[gr_out][chn] = gfc.loudness_sq_save[chn];\n gfc.loudness_sq_save[chn] = psycho_loudness_approx(fftenergy, gfc);\n }\n }\n var fircoef_ = [\n -865163e-23 * 2,\n -851586e-8 * 2,\n -674764e-23 * 2,\n 0.0209036 * 2,\n -336639e-22 * 2,\n -0.0438162 * 2,\n -154175e-22 * 2,\n 0.0931738 * 2,\n -552212e-22 * 2,\n -0.313819 * 2\n ];\n function vbrpsy_attack_detection(gfp, buffer, bufPos, gr_out, masking_ratio, masking_MS_ratio, energy, sub_short_factor, ns_attacks, uselongblock) {\n var ns_hpfsmpl = new_float_n$3([2, 576]);\n var gfc = gfp.internal_flags;\n var n_chn_out = gfc.channels_out;\n var n_chn_psy = gfp.mode == MPEGMode.JOINT_STEREO ? 4 : n_chn_out;\n for (var chn = 0; chn < n_chn_out; chn++) {\n firbuf = buffer[chn];\n var firbufPos = bufPos + 576 - 350 - NSFIRLEN + 192;\n for (var i = 0; i < 576; i++) {\n var sum1, sum2;\n sum1 = firbuf[firbufPos + i + 10];\n sum2 = 0;\n for (var j = 0; j < (NSFIRLEN - 1) / 2 - 1; j += 2) {\n sum1 += fircoef_[j] * (firbuf[firbufPos + i + j] + firbuf[firbufPos + i + NSFIRLEN - j]);\n sum2 += fircoef_[j + 1] * (firbuf[firbufPos + i + j + 1] + firbuf[firbufPos + i + NSFIRLEN - j - 1]);\n }\n ns_hpfsmpl[chn][i] = sum1 + sum2;\n }\n masking_ratio[gr_out][chn].en.assign(gfc.en[chn]);\n masking_ratio[gr_out][chn].thm.assign(gfc.thm[chn]);\n if (n_chn_psy > 2) {\n masking_MS_ratio[gr_out][chn].en.assign(gfc.en[chn + 2]);\n masking_MS_ratio[gr_out][chn].thm.assign(gfc.thm[chn + 2]);\n }\n }\n for (var chn = 0; chn < n_chn_psy; chn++) {\n var attack_intensity = new_float$a(12);\n var en_subshort = new_float$a(12);\n var en_short = [0, 0, 0, 0];\n var pf = ns_hpfsmpl[chn & 1];\n var pfPos = 0;\n var attackThreshold = chn == 3 ? gfc.nsPsy.attackthre_s : gfc.nsPsy.attackthre;\n var ns_uselongblock = 1;\n if (chn == 2) {\n for (var i = 0, j = 576; j > 0; ++i, --j) {\n var l = ns_hpfsmpl[0][i];\n var r = ns_hpfsmpl[1][i];\n ns_hpfsmpl[0][i] = l + r;\n ns_hpfsmpl[1][i] = l - r;\n }\n }\n for (var i = 0; i < 3; i++) {\n en_subshort[i] = gfc.nsPsy.last_en_subshort[chn][i + 6];\n assert$9(gfc.nsPsy.last_en_subshort[chn][i + 4] > 0);\n attack_intensity[i] = en_subshort[i] / gfc.nsPsy.last_en_subshort[chn][i + 4];\n en_short[0] += en_subshort[i];\n }\n for (var i = 0; i < 9; i++) {\n var pfe = pfPos + 576 / 9;\n var p2 = 1;\n for (; pfPos < pfe; pfPos++) {\n if (p2 < Math.abs(pf[pfPos]))\n p2 = Math.abs(pf[pfPos]);\n }\n gfc.nsPsy.last_en_subshort[chn][i] = en_subshort[i + 3] = p2;\n en_short[1 + i / 3] += p2;\n if (p2 > en_subshort[i + 3 - 2]) {\n assert$9(en_subshort[i + 3 - 2] > 0);\n p2 = p2 / en_subshort[i + 3 - 2];\n } else if (en_subshort[i + 3 - 2] > p2 * 10) {\n p2 = en_subshort[i + 3 - 2] / (p2 * 10);\n } else {\n p2 = 0;\n }\n attack_intensity[i + 3] = p2;\n }\n for (var i = 0; i < 3; ++i) {\n var enn = en_subshort[i * 3 + 3] + en_subshort[i * 3 + 4] + en_subshort[i * 3 + 5];\n var factor = 1;\n if (en_subshort[i * 3 + 5] * 6 < enn) {\n factor *= 0.5;\n if (en_subshort[i * 3 + 4] * 6 < enn) {\n factor *= 0.5;\n }\n }\n sub_short_factor[chn][i] = factor;\n }\n if (gfp.analysis) {\n var x = attack_intensity[0];\n for (var i = 1; i < 12; i++) {\n if (x < attack_intensity[i]) {\n x = attack_intensity[i];\n }\n }\n gfc.pinfo.ers[gr_out][chn] = gfc.pinfo.ers_save[chn];\n gfc.pinfo.ers_save[chn] = x;\n }\n for (var i = 0; i < 12; i++) {\n if (ns_attacks[chn][i / 3] == 0 && attack_intensity[i] > attackThreshold) {\n ns_attacks[chn][i / 3] = i % 3 + 1;\n }\n }\n for (var i = 1; i < 4; i++) {\n var u = en_short[i - 1];\n var v = en_short[i];\n var m = Math.max(u, v);\n if (m < 4e4) {\n if (u < 1.7 * v && v < 1.7 * u) {\n if (i == 1 && ns_attacks[chn][0] <= ns_attacks[chn][i]) {\n ns_attacks[chn][0] = 0;\n }\n ns_attacks[chn][i] = 0;\n }\n }\n }\n if (ns_attacks[chn][0] <= gfc.nsPsy.lastAttacks[chn]) {\n ns_attacks[chn][0] = 0;\n }\n if (gfc.nsPsy.lastAttacks[chn] == 3 || ns_attacks[chn][0] + ns_attacks[chn][1] + ns_attacks[chn][2] + ns_attacks[chn][3] != 0) {\n ns_uselongblock = 0;\n if (ns_attacks[chn][1] != 0 && ns_attacks[chn][0] != 0) {\n ns_attacks[chn][1] = 0;\n }\n if (ns_attacks[chn][2] != 0 && ns_attacks[chn][1] != 0) {\n ns_attacks[chn][2] = 0;\n }\n if (ns_attacks[chn][3] != 0 && ns_attacks[chn][2] != 0) {\n ns_attacks[chn][3] = 0;\n }\n }\n if (chn < 2) {\n uselongblock[chn] = ns_uselongblock;\n } else {\n if (ns_uselongblock == 0) {\n uselongblock[0] = uselongblock[1] = 0;\n }\n }\n energy[chn] = gfc.tot_ener[chn];\n }\n }\n function vbrpsy_skip_masking_s(gfc, chn, sblock) {\n if (sblock == 0) {\n for (var b = 0; b < gfc.npart_s; b++) {\n gfc.nb_s2[chn][b] = gfc.nb_s1[chn][b];\n gfc.nb_s1[chn][b] = 0;\n }\n }\n }\n function vbrpsy_skip_masking_l(gfc, chn) {\n for (var b = 0; b < gfc.npart_l; b++) {\n gfc.nb_2[chn][b] = gfc.nb_1[chn][b];\n gfc.nb_1[chn][b] = 0;\n }\n }\n function psyvbr_calc_mask_index_s(gfc, max, avg, mask_idx) {\n var last_tab_entry = tab.length - 1;\n var b = 0;\n var a = avg[b] + avg[b + 1];\n if (a > 0) {\n var m = max[b];\n if (m < max[b + 1])\n m = max[b + 1];\n assert$9(gfc.numlines_s[b] + gfc.numlines_s[b + 1] - 1 > 0);\n a = 20 * (m * 2 - a) / (a * (gfc.numlines_s[b] + gfc.numlines_s[b + 1] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n for (b = 1; b < gfc.npart_s - 1; b++) {\n a = avg[b - 1] + avg[b] + avg[b + 1];\n assert$9(b + 1 < gfc.npart_s);\n if (a > 0) {\n var m = max[b - 1];\n if (m < max[b])\n m = max[b];\n if (m < max[b + 1])\n m = max[b + 1];\n assert$9(\n gfc.numlines_s[b - 1] + gfc.numlines_s[b] + gfc.numlines_s[b + 1] - 1 > 0\n );\n a = 20 * (m * 3 - a) / (a * (gfc.numlines_s[b - 1] + gfc.numlines_s[b] + gfc.numlines_s[b + 1] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n }\n assert$9(b == gfc.npart_s - 1);\n a = avg[b - 1] + avg[b];\n if (a > 0) {\n var m = max[b - 1];\n if (m < max[b])\n m = max[b];\n assert$9(gfc.numlines_s[b - 1] + gfc.numlines_s[b] - 1 > 0);\n a = 20 * (m * 2 - a) / (a * (gfc.numlines_s[b - 1] + gfc.numlines_s[b] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n assert$9(b == gfc.npart_s - 1);\n }\n function vbrpsy_compute_masking_s(gfp, fftenergy_s, eb, thr, chn, sblock) {\n var gfc = gfp.internal_flags;\n var max = new float[Encoder.CBANDS]();\n var avg = new_float$a(Encoder.CBANDS);\n var i, j, b;\n var mask_idx_s = new int[Encoder.CBANDS]();\n for (b = j = 0; b < gfc.npart_s; ++b) {\n var ebb = 0;\n var m = 0;\n var n = gfc.numlines_s[b];\n for (i = 0; i < n; ++i, ++j) {\n var el = fftenergy_s[sblock][j];\n ebb += el;\n if (m < el)\n m = el;\n }\n eb[b] = ebb;\n max[b] = m;\n avg[b] = ebb / n;\n assert$9(avg[b] >= 0);\n }\n assert$9(b == gfc.npart_s);\n for (; b < Encoder.CBANDS; ++b) {\n max[b] = 0;\n avg[b] = 0;\n }\n psyvbr_calc_mask_index_s(gfc, max, avg, mask_idx_s);\n for (j = b = 0; b < gfc.npart_s; b++) {\n var kk = gfc.s3ind_s[b][0];\n var last = gfc.s3ind_s[b][1];\n var dd, dd_n;\n var x, ecb, avg_mask;\n dd = mask_idx_s[kk];\n dd_n = 1;\n ecb = gfc.s3_ss[j] * eb[kk] * tab[mask_idx_s[kk]];\n ++j;\n ++kk;\n while (kk <= last) {\n dd += mask_idx_s[kk];\n dd_n += 1;\n x = gfc.s3_ss[j] * eb[kk] * tab[mask_idx_s[kk]];\n ecb = vbrpsy_mask_add(ecb, x, kk - b);\n ++j;\n ++kk;\n }\n dd = (1 + 2 * dd) / (2 * dd_n);\n avg_mask = tab[dd] * 0.5;\n ecb *= avg_mask;\n thr[b] = ecb;\n gfc.nb_s2[chn][b] = gfc.nb_s1[chn][b];\n gfc.nb_s1[chn][b] = ecb;\n {\n x = max[b];\n x *= gfc.minval_s[b];\n x *= avg_mask;\n if (thr[b] > x) {\n thr[b] = x;\n }\n }\n if (gfc.masking_lower > 1) {\n thr[b] *= gfc.masking_lower;\n }\n if (thr[b] > eb[b]) {\n thr[b] = eb[b];\n }\n if (gfc.masking_lower < 1) {\n thr[b] *= gfc.masking_lower;\n }\n assert$9(thr[b] >= 0);\n }\n for (; b < Encoder.CBANDS; ++b) {\n eb[b] = 0;\n thr[b] = 0;\n }\n }\n function vbrpsy_compute_masking_l(gfc, fftenergy, eb_l, thr, chn) {\n var max = new_float$a(Encoder.CBANDS);\n var avg = new_float$a(Encoder.CBANDS);\n var mask_idx_l = new_int$b(Encoder.CBANDS + 2);\n var b;\n calc_energy(gfc, fftenergy, eb_l, max, avg);\n calc_mask_index_l(gfc, max, avg, mask_idx_l);\n var k = 0;\n for (b = 0; b < gfc.npart_l; b++) {\n var x, ecb, avg_mask, t;\n var kk = gfc.s3ind[b][0];\n var last = gfc.s3ind[b][1];\n var dd = 0;\n var dd_n = 0;\n dd = mask_idx_l[kk];\n dd_n += 1;\n ecb = gfc.s3_ll[k] * eb_l[kk] * tab[mask_idx_l[kk]];\n ++k;\n ++kk;\n while (kk <= last) {\n dd += mask_idx_l[kk];\n dd_n += 1;\n x = gfc.s3_ll[k] * eb_l[kk] * tab[mask_idx_l[kk]];\n t = vbrpsy_mask_add(ecb, x, kk - b);\n ecb = t;\n ++k;\n ++kk;\n }\n dd = (1 + 2 * dd) / (2 * dd_n);\n avg_mask = tab[dd] * 0.5;\n ecb *= avg_mask;\n if (gfc.blocktype_old[chn & 1] == Encoder.SHORT_TYPE) {\n var ecb_limit = rpelev * gfc.nb_1[chn][b];\n if (ecb_limit > 0) {\n thr[b] = Math.min(ecb, ecb_limit);\n } else {\n thr[b] = Math.min(ecb, eb_l[b] * NS_PREECHO_ATT2);\n }\n } else {\n var ecb_limit_2 = rpelev2 * gfc.nb_2[chn][b];\n var ecb_limit_1 = rpelev * gfc.nb_1[chn][b];\n var ecb_limit;\n if (ecb_limit_2 <= 0) {\n ecb_limit_2 = ecb;\n }\n if (ecb_limit_1 <= 0) {\n ecb_limit_1 = ecb;\n }\n if (gfc.blocktype_old[chn & 1] == Encoder.NORM_TYPE) {\n ecb_limit = Math.min(ecb_limit_1, ecb_limit_2);\n } else {\n ecb_limit = ecb_limit_1;\n }\n thr[b] = Math.min(ecb, ecb_limit);\n }\n gfc.nb_2[chn][b] = gfc.nb_1[chn][b];\n gfc.nb_1[chn][b] = ecb;\n {\n x = max[b];\n x *= gfc.minval_l[b];\n x *= avg_mask;\n if (thr[b] > x) {\n thr[b] = x;\n }\n }\n if (gfc.masking_lower > 1) {\n thr[b] *= gfc.masking_lower;\n }\n if (thr[b] > eb_l[b]) {\n thr[b] = eb_l[b];\n }\n if (gfc.masking_lower < 1) {\n thr[b] *= gfc.masking_lower;\n }\n assert$9(thr[b] >= 0);\n }\n for (; b < Encoder.CBANDS; ++b) {\n eb_l[b] = 0;\n thr[b] = 0;\n }\n }\n function vbrpsy_compute_block_type(gfp, uselongblock) {\n var gfc = gfp.internal_flags;\n if (gfp.short_blocks == ShortBlock$2.short_block_coupled && !(uselongblock[0] != 0 && uselongblock[1] != 0)) {\n uselongblock[0] = uselongblock[1] = 0;\n }\n for (var chn = 0; chn < gfc.channels_out; chn++) {\n if (gfp.short_blocks == ShortBlock$2.short_block_dispensed) {\n uselongblock[chn] = 1;\n }\n if (gfp.short_blocks == ShortBlock$2.short_block_forced) {\n uselongblock[chn] = 0;\n }\n }\n }\n function vbrpsy_apply_block_type(gfp, uselongblock, blocktype_d) {\n var gfc = gfp.internal_flags;\n for (var chn = 0; chn < gfc.channels_out; chn++) {\n var blocktype = Encoder.NORM_TYPE;\n if (uselongblock[chn] != 0) {\n assert$9(gfc.blocktype_old[chn] != Encoder.START_TYPE);\n if (gfc.blocktype_old[chn] == Encoder.SHORT_TYPE) {\n blocktype = Encoder.STOP_TYPE;\n }\n } else {\n blocktype = Encoder.SHORT_TYPE;\n if (gfc.blocktype_old[chn] == Encoder.NORM_TYPE) {\n gfc.blocktype_old[chn] = Encoder.START_TYPE;\n }\n if (gfc.blocktype_old[chn] == Encoder.STOP_TYPE) {\n gfc.blocktype_old[chn] = Encoder.SHORT_TYPE;\n }\n }\n blocktype_d[chn] = gfc.blocktype_old[chn];\n gfc.blocktype_old[chn] = blocktype;\n }\n }\n function vbrpsy_compute_MS_thresholds(eb, thr, cb_mld, ath_cb, athadjust, msfix, n) {\n var msfix2 = msfix * 2;\n var athlower = msfix > 0 ? Math.pow(10, athadjust) : 1;\n var rside, rmid;\n for (var b = 0; b < n; ++b) {\n var ebM = eb[2][b];\n var ebS = eb[3][b];\n var thmL = thr[0][b];\n var thmR = thr[1][b];\n var thmM = thr[2][b];\n var thmS = thr[3][b];\n if (thmL <= 1.58 * thmR && thmR <= 1.58 * thmL) {\n var mld_m = cb_mld[b] * ebS;\n var mld_s = cb_mld[b] * ebM;\n rmid = Math.max(thmM, Math.min(thmS, mld_m));\n rside = Math.max(thmS, Math.min(thmM, mld_s));\n } else {\n rmid = thmM;\n rside = thmS;\n }\n if (msfix > 0) {\n var thmLR, thmMS;\n var ath = ath_cb[b] * athlower;\n thmLR = Math.min(Math.max(thmL, ath), Math.max(thmR, ath));\n thmM = Math.max(rmid, ath);\n thmS = Math.max(rside, ath);\n thmMS = thmM + thmS;\n if (thmMS > 0 && thmLR * msfix2 < thmMS) {\n var f = thmLR * msfix2 / thmMS;\n thmM *= f;\n thmS *= f;\n }\n rmid = Math.min(thmM, rmid);\n rside = Math.min(thmS, rside);\n }\n if (rmid > ebM) {\n rmid = ebM;\n }\n if (rside > ebS) {\n rside = ebS;\n }\n thr[2][b] = rmid;\n thr[3][b] = rside;\n }\n }\n this.L3psycho_anal_vbr = function(gfp, buffer, bufPos, gr_out, masking_ratio, masking_MS_ratio, percep_entropy, percep_MS_entropy, energy, blocktype_d) {\n var gfc = gfp.internal_flags;\n var wsamp_l;\n var wsamp_s;\n var fftenergy = new_float$a(Encoder.HBLKSIZE);\n var fftenergy_s = new_float_n$3([3, Encoder.HBLKSIZE_s]);\n var wsamp_L = new_float_n$3([2, Encoder.BLKSIZE]);\n var wsamp_S = new_float_n$3([2, 3, Encoder.BLKSIZE_s]);\n var eb = new_float_n$3([4, Encoder.CBANDS]);\n var thr = new_float_n$3([4, Encoder.CBANDS]);\n var sub_short_factor = new_float_n$3([4, 3]);\n var pcfact = 0.6;\n var ns_attacks = [\n [0, 0, 0, 0],\n [0, 0, 0, 0],\n [0, 0, 0, 0],\n [0, 0, 0, 0]\n ];\n var uselongblock = new_int$b(2);\n var n_chn_psy = gfp.mode == MPEGMode.JOINT_STEREO ? 4 : gfc.channels_out;\n vbrpsy_attack_detection(\n gfp,\n buffer,\n bufPos,\n gr_out,\n masking_ratio,\n masking_MS_ratio,\n energy,\n sub_short_factor,\n ns_attacks,\n uselongblock\n );\n vbrpsy_compute_block_type(gfp, uselongblock);\n {\n for (var chn = 0; chn < n_chn_psy; chn++) {\n var ch01 = chn & 1;\n wsamp_l = wsamp_L;\n vbrpsy_compute_fft_l(\n gfp,\n buffer,\n bufPos,\n chn,\n gr_out,\n fftenergy,\n wsamp_l,\n ch01\n );\n vbrpsy_compute_loudness_approximation_l(gfp, gr_out, chn, fftenergy);\n if (uselongblock[ch01] != 0) {\n vbrpsy_compute_masking_l(gfc, fftenergy, eb[chn], thr[chn], chn);\n } else {\n vbrpsy_skip_masking_l(gfc, chn);\n }\n }\n if (uselongblock[0] + uselongblock[1] == 2) {\n if (gfp.mode == MPEGMode.JOINT_STEREO) {\n vbrpsy_compute_MS_thresholds(\n eb,\n thr,\n gfc.mld_cb_l,\n gfc.ATH.cb_l,\n gfp.ATHlower * gfc.ATH.adjust,\n gfp.msfix,\n gfc.npart_l\n );\n }\n }\n for (var chn = 0; chn < n_chn_psy; chn++) {\n var ch01 = chn & 1;\n if (uselongblock[ch01] != 0) {\n convert_partition2scalefac_l(gfc, eb[chn], thr[chn], chn);\n }\n }\n }\n {\n for (var sblock = 0; sblock < 3; sblock++) {\n for (var chn = 0; chn < n_chn_psy; ++chn) {\n var ch01 = chn & 1;\n if (uselongblock[ch01] != 0) {\n vbrpsy_skip_masking_s(gfc, chn, sblock);\n } else {\n wsamp_s = wsamp_S;\n vbrpsy_compute_fft_s(\n gfp,\n buffer,\n bufPos,\n chn,\n sblock,\n fftenergy_s,\n wsamp_s,\n ch01\n );\n vbrpsy_compute_masking_s(\n gfp,\n fftenergy_s,\n eb[chn],\n thr[chn],\n chn,\n sblock\n );\n }\n }\n if (uselongblock[0] + uselongblock[1] == 0) {\n if (gfp.mode == MPEGMode.JOINT_STEREO) {\n vbrpsy_compute_MS_thresholds(\n eb,\n thr,\n gfc.mld_cb_s,\n gfc.ATH.cb_s,\n gfp.ATHlower * gfc.ATH.adjust,\n gfp.msfix,\n gfc.npart_s\n );\n }\n }\n for (var chn = 0; chn < n_chn_psy; ++chn) {\n var ch01 = chn & 1;\n if (uselongblock[ch01] == 0) {\n convert_partition2scalefac_s(gfc, eb[chn], thr[chn], chn, sblock);\n }\n }\n }\n for (var chn = 0; chn < n_chn_psy; chn++) {\n var ch01 = chn & 1;\n if (uselongblock[ch01] != 0) {\n continue;\n }\n for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n var new_thmm = new_float$a(3);\n for (var sblock = 0; sblock < 3; sblock++) {\n var thmm = gfc.thm[chn].s[sb][sblock];\n thmm *= NS_PREECHO_ATT0;\n if (ns_attacks[chn][sblock] >= 2 || ns_attacks[chn][sblock + 1] == 1) {\n var idx = sblock != 0 ? sblock - 1 : 2;\n var p2 = NS_INTERP(\n gfc.thm[chn].s[sb][idx],\n thmm,\n NS_PREECHO_ATT1 * pcfact\n );\n thmm = Math.min(thmm, p2);\n } else if (ns_attacks[chn][sblock] == 1) {\n var idx = sblock != 0 ? sblock - 1 : 2;\n var p2 = NS_INTERP(\n gfc.thm[chn].s[sb][idx],\n thmm,\n NS_PREECHO_ATT2 * pcfact\n );\n thmm = Math.min(thmm, p2);\n } else if (sblock != 0 && ns_attacks[chn][sblock - 1] == 3 || sblock == 0 && gfc.nsPsy.lastAttacks[chn] == 3) {\n var idx = sblock != 2 ? sblock + 1 : 0;\n var p2 = NS_INTERP(\n gfc.thm[chn].s[sb][idx],\n thmm,\n NS_PREECHO_ATT2 * pcfact\n );\n thmm = Math.min(thmm, p2);\n }\n thmm *= sub_short_factor[chn][sblock];\n new_thmm[sblock] = thmm;\n }\n for (var sblock = 0; sblock < 3; sblock++) {\n gfc.thm[chn].s[sb][sblock] = new_thmm[sblock];\n }\n }\n }\n }\n for (var chn = 0; chn < n_chn_psy; chn++) {\n gfc.nsPsy.lastAttacks[chn] = ns_attacks[chn][2];\n }\n vbrpsy_apply_block_type(gfp, uselongblock, blocktype_d);\n for (var chn = 0; chn < n_chn_psy; chn++) {\n var ppe;\n var ppePos;\n var type;\n var mr;\n if (chn > 1) {\n ppe = percep_MS_entropy;\n ppePos = -2;\n type = Encoder.NORM_TYPE;\n if (blocktype_d[0] == Encoder.SHORT_TYPE || blocktype_d[1] == Encoder.SHORT_TYPE) {\n type = Encoder.SHORT_TYPE;\n }\n mr = masking_MS_ratio[gr_out][chn - 2];\n } else {\n ppe = percep_entropy;\n ppePos = 0;\n type = blocktype_d[chn];\n mr = masking_ratio[gr_out][chn];\n }\n if (type == Encoder.SHORT_TYPE) {\n ppe[ppePos + chn] = pecalc_s(mr, gfc.masking_lower);\n } else {\n ppe[ppePos + chn] = pecalc_l(mr, gfc.masking_lower);\n }\n if (gfp.analysis) {\n gfc.pinfo.pe[gr_out][chn] = ppe[ppePos + chn];\n }\n }\n return 0;\n };\n function s3_func_x(bark, hf_slope) {\n var tempx = bark;\n var tempy;\n if (tempx >= 0) {\n tempy = -tempx * 27;\n } else {\n tempy = tempx * hf_slope;\n }\n if (tempy <= -72) {\n return 0;\n }\n return Math.exp(tempy * LN_TO_LOG10);\n }\n function norm_s3_func_x(hf_slope) {\n var lim_a = 0;\n var lim_b = 0;\n {\n var x = 0;\n var l;\n var h2;\n for (x = 0; s3_func_x(x, hf_slope) > 1e-20; x -= 1)\n ;\n l = x;\n h2 = 0;\n while (Math.abs(h2 - l) > 1e-12) {\n x = (h2 + l) / 2;\n if (s3_func_x(x, hf_slope) > 0) {\n h2 = x;\n } else {\n l = x;\n }\n }\n lim_a = l;\n }\n {\n var x = 0;\n var l;\n var h2;\n for (x = 0; s3_func_x(x, hf_slope) > 1e-20; x += 1)\n ;\n l = 0;\n h2 = x;\n while (Math.abs(h2 - l) > 1e-12) {\n x = (h2 + l) / 2;\n if (s3_func_x(x, hf_slope) > 0) {\n l = x;\n } else {\n h2 = x;\n }\n }\n lim_b = h2;\n }\n {\n var sum = 0;\n var m = 1e3;\n var i;\n for (i = 0; i <= m; ++i) {\n var x = lim_a + i * (lim_b - lim_a) / m;\n var y = s3_func_x(x, hf_slope);\n sum += y;\n }\n {\n var norm = (m + 1) / (sum * (lim_b - lim_a));\n return norm;\n }\n }\n }\n function s3_func(bark) {\n var tempx, x, tempy, temp;\n tempx = bark;\n if (tempx >= 0)\n tempx *= 3;\n else\n tempx *= 1.5;\n if (tempx >= 0.5 && tempx <= 2.5) {\n temp = tempx - 0.5;\n x = 8 * (temp * temp - 2 * temp);\n } else\n x = 0;\n tempx += 0.474;\n tempy = 15.811389 + 7.5 * tempx - 17.5 * Math.sqrt(1 + tempx * tempx);\n if (tempy <= -60)\n return 0;\n tempx = Math.exp((x + tempy) * LN_TO_LOG10);\n tempx /= 0.6609193;\n return tempx;\n }\n function freq2bark(freq) {\n if (freq < 0)\n freq = 0;\n freq = freq * 1e-3;\n return 13 * Math.atan(0.76 * freq) + 3.5 * Math.atan(freq * freq / (7.5 * 7.5));\n }\n function init_numline(numlines, bo, bm, bval, bval_width, mld, bo_w, sfreq, blksize, scalepos, deltafreq, sbmax) {\n var b_frq = new_float$a(Encoder.CBANDS + 1);\n var sample_freq_frac = sfreq / (sbmax > 15 ? 2 * 576 : 2 * 192);\n var partition = new_int$b(Encoder.HBLKSIZE);\n var i;\n sfreq /= blksize;\n var j = 0;\n var ni = 0;\n for (i = 0; i < Encoder.CBANDS; i++) {\n var bark1;\n var j2;\n bark1 = freq2bark(sfreq * j);\n b_frq[i] = sfreq * j;\n for (j2 = j; freq2bark(sfreq * j2) - bark1 < DELBARK && j2 <= blksize / 2; j2++)\n ;\n numlines[i] = j2 - j;\n ni = i + 1;\n while (j < j2) {\n partition[j++] = i;\n }\n if (j > blksize / 2) {\n j = blksize / 2;\n ++i;\n break;\n }\n }\n b_frq[i] = sfreq * j;\n for (var sfb = 0; sfb < sbmax; sfb++) {\n var i1, i2, start, end;\n var arg;\n start = scalepos[sfb];\n end = scalepos[sfb + 1];\n i1 = 0 | Math.floor(0.5 + deltafreq * (start - 0.5));\n if (i1 < 0)\n i1 = 0;\n i2 = 0 | Math.floor(0.5 + deltafreq * (end - 0.5));\n if (i2 > blksize / 2)\n i2 = blksize / 2;\n bm[sfb] = (partition[i1] + partition[i2]) / 2;\n bo[sfb] = partition[i2];\n var f_tmp = sample_freq_frac * end;\n bo_w[sfb] = (f_tmp - b_frq[bo[sfb]]) / (b_frq[bo[sfb] + 1] - b_frq[bo[sfb]]);\n if (bo_w[sfb] < 0) {\n bo_w[sfb] = 0;\n } else {\n if (bo_w[sfb] > 1) {\n bo_w[sfb] = 1;\n }\n }\n arg = freq2bark(sfreq * scalepos[sfb] * deltafreq);\n arg = Math.min(arg, 15.5) / 15.5;\n mld[sfb] = Math.pow(10, 1.25 * (1 - Math.cos(Math.PI * arg)) - 2.5);\n }\n j = 0;\n for (var k = 0; k < ni; k++) {\n var w = numlines[k];\n var bark1, bark2;\n bark1 = freq2bark(sfreq * j);\n bark2 = freq2bark(sfreq * (j + w - 1));\n bval[k] = 0.5 * (bark1 + bark2);\n bark1 = freq2bark(sfreq * (j - 0.5));\n bark2 = freq2bark(sfreq * (j + w - 0.5));\n bval_width[k] = bark2 - bark1;\n j += w;\n }\n return ni;\n }\n function init_s3_values(s3ind, npart, bval, bval_width, norm, use_old_s3) {\n var s3 = new_float_n$3([Encoder.CBANDS, Encoder.CBANDS]);\n var j;\n var numberOfNoneZero = 0;\n if (use_old_s3) {\n for (var i = 0; i < npart; i++) {\n for (j = 0; j < npart; j++) {\n var v = s3_func(bval[i] - bval[j]) * bval_width[j];\n s3[i][j] = v * norm[i];\n }\n }\n } else {\n for (j = 0; j < npart; j++) {\n var hf_slope = 15 + Math.min(21 / bval[j], 12);\n var s3_x_norm = norm_s3_func_x(hf_slope);\n for (var i = 0; i < npart; i++) {\n var v = s3_x_norm * s3_func_x(bval[i] - bval[j], hf_slope) * bval_width[j];\n s3[i][j] = v * norm[i];\n }\n }\n }\n for (var i = 0; i < npart; i++) {\n for (j = 0; j < npart; j++) {\n if (s3[i][j] > 0)\n break;\n }\n s3ind[i][0] = j;\n for (j = npart - 1; j > 0; j--) {\n if (s3[i][j] > 0)\n break;\n }\n s3ind[i][1] = j;\n numberOfNoneZero += s3ind[i][1] - s3ind[i][0] + 1;\n }\n var p2 = new_float$a(numberOfNoneZero);\n var k = 0;\n for (var i = 0; i < npart; i++) {\n for (j = s3ind[i][0]; j <= s3ind[i][1]; j++)\n p2[k++] = s3[i][j];\n }\n return p2;\n }\n function stereo_demask(f) {\n var arg = freq2bark(f);\n arg = Math.min(arg, 15.5) / 15.5;\n return Math.pow(10, 1.25 * (1 - Math.cos(Math.PI * arg)) - 2.5);\n }\n this.psymodel_init = function(gfp) {\n var gfc = gfp.internal_flags;\n var i;\n var useOldS3 = true;\n var bvl_a = 13;\n var bvl_b = 24;\n var snr_l_a = 0;\n var snr_l_b = 0;\n var snr_s_a = -8.25;\n var snr_s_b = -4.5;\n var bval = new_float$a(Encoder.CBANDS);\n var bval_width = new_float$a(Encoder.CBANDS);\n var norm = new_float$a(Encoder.CBANDS);\n var sfreq = gfp.out_samplerate;\n switch (gfp.experimentalZ) {\n default:\n case 0:\n useOldS3 = true;\n break;\n case 1:\n useOldS3 = !(gfp.VBR == VbrMode$5.vbr_mtrh || gfp.VBR == VbrMode$5.vbr_mt);\n break;\n case 2:\n useOldS3 = false;\n break;\n case 3:\n bvl_a = 8;\n snr_l_a = -1.75;\n snr_l_b = -0.0125;\n snr_s_a = -8.25;\n snr_s_b = -2.25;\n break;\n }\n gfc.ms_ener_ratio_old = 0.25;\n gfc.blocktype_old[0] = gfc.blocktype_old[1] = Encoder.NORM_TYPE;\n for (i = 0; i < 4; ++i) {\n for (var j = 0; j < Encoder.CBANDS; ++j) {\n gfc.nb_1[i][j] = 1e20;\n gfc.nb_2[i][j] = 1e20;\n gfc.nb_s1[i][j] = gfc.nb_s2[i][j] = 1;\n }\n for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {\n gfc.en[i].l[sb] = 1e20;\n gfc.thm[i].l[sb] = 1e20;\n }\n for (var j = 0; j < 3; ++j) {\n for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n gfc.en[i].s[sb][j] = 1e20;\n gfc.thm[i].s[sb][j] = 1e20;\n }\n gfc.nsPsy.lastAttacks[i] = 0;\n }\n for (var j = 0; j < 9; j++)\n gfc.nsPsy.last_en_subshort[i][j] = 10;\n }\n gfc.loudness_sq_save[0] = gfc.loudness_sq_save[1] = 0;\n gfc.npart_l = init_numline(\n gfc.numlines_l,\n gfc.bo_l,\n gfc.bm_l,\n bval,\n bval_width,\n gfc.mld_l,\n gfc.PSY.bo_l_weight,\n sfreq,\n Encoder.BLKSIZE,\n gfc.scalefac_band.l,\n Encoder.BLKSIZE / (2 * 576),\n Encoder.SBMAX_l\n );\n assert$9(gfc.npart_l < Encoder.CBANDS);\n for (i = 0; i < gfc.npart_l; i++) {\n var snr = snr_l_a;\n if (bval[i] >= bvl_a) {\n snr = snr_l_b * (bval[i] - bvl_a) / (bvl_b - bvl_a) + snr_l_a * (bvl_b - bval[i]) / (bvl_b - bvl_a);\n }\n norm[i] = Math.pow(10, snr / 10);\n if (gfc.numlines_l[i] > 0) {\n gfc.rnumlines_l[i] = 1 / gfc.numlines_l[i];\n } else {\n gfc.rnumlines_l[i] = 0;\n }\n }\n gfc.s3_ll = init_s3_values(\n gfc.s3ind,\n gfc.npart_l,\n bval,\n bval_width,\n norm,\n useOldS3\n );\n var j = 0;\n for (i = 0; i < gfc.npart_l; i++) {\n var x;\n x = Float$1.MAX_VALUE;\n for (var k = 0; k < gfc.numlines_l[i]; k++, j++) {\n var freq = sfreq * j / (1e3 * Encoder.BLKSIZE);\n var level;\n level = this.ATHformula(freq * 1e3, gfp) - 20;\n level = Math.pow(10, 0.1 * level);\n level *= gfc.numlines_l[i];\n if (x > level)\n x = level;\n }\n gfc.ATH.cb_l[i] = x;\n x = -20 + bval[i] * 20 / 10;\n if (x > 6) {\n x = 100;\n }\n if (x < -15) {\n x = -15;\n }\n x -= 8;\n gfc.minval_l[i] = Math.pow(10, x / 10) * gfc.numlines_l[i];\n }\n gfc.npart_s = init_numline(\n gfc.numlines_s,\n gfc.bo_s,\n gfc.bm_s,\n bval,\n bval_width,\n gfc.mld_s,\n gfc.PSY.bo_s_weight,\n sfreq,\n Encoder.BLKSIZE_s,\n gfc.scalefac_band.s,\n Encoder.BLKSIZE_s / (2 * 192),\n Encoder.SBMAX_s\n );\n assert$9(gfc.npart_s < Encoder.CBANDS);\n j = 0;\n for (i = 0; i < gfc.npart_s; i++) {\n var x;\n var snr = snr_s_a;\n if (bval[i] >= bvl_a) {\n snr = snr_s_b * (bval[i] - bvl_a) / (bvl_b - bvl_a) + snr_s_a * (bvl_b - bval[i]) / (bvl_b - bvl_a);\n }\n norm[i] = Math.pow(10, snr / 10);\n x = Float$1.MAX_VALUE;\n for (var k = 0; k < gfc.numlines_s[i]; k++, j++) {\n var freq = sfreq * j / (1e3 * Encoder.BLKSIZE_s);\n var level;\n level = this.ATHformula(freq * 1e3, gfp) - 20;\n level = Math.pow(10, 0.1 * level);\n level *= gfc.numlines_s[i];\n if (x > level)\n x = level;\n }\n gfc.ATH.cb_s[i] = x;\n x = -7 + bval[i] * 7 / 12;\n if (bval[i] > 12) {\n x *= 1 + Math.log(1 + x) * 3.1;\n }\n if (bval[i] < 12) {\n x *= 1 + Math.log(1 - x) * 2.3;\n }\n if (x < -15) {\n x = -15;\n }\n x -= 8;\n gfc.minval_s[i] = Math.pow(10, x / 10) * gfc.numlines_s[i];\n }\n gfc.s3_ss = init_s3_values(\n gfc.s3ind_s,\n gfc.npart_s,\n bval,\n bval_width,\n norm,\n useOldS3\n );\n init_mask_add_max_values();\n fft.init_fft(gfc);\n gfc.decay = Math.exp(\n -1 * LOG10 / (temporalmask_sustain_sec * sfreq / 192)\n );\n {\n var msfix;\n msfix = NS_MSFIX;\n if ((gfp.exp_nspsytune & 2) != 0)\n msfix = 1;\n if (Math.abs(gfp.msfix) > 0)\n msfix = gfp.msfix;\n gfp.msfix = msfix;\n for (var b = 0; b < gfc.npart_l; b++) {\n if (gfc.s3ind[b][1] > gfc.npart_l - 1)\n gfc.s3ind[b][1] = gfc.npart_l - 1;\n }\n }\n var frame_duration = 576 * gfc.mode_gr / sfreq;\n gfc.ATH.decay = Math.pow(10, -12 / 10 * frame_duration);\n gfc.ATH.adjust = 0.01;\n gfc.ATH.adjustLimit = 1;\n assert$9(gfc.bo_l[Encoder.SBMAX_l - 1] <= gfc.npart_l);\n assert$9(gfc.bo_s[Encoder.SBMAX_s - 1] <= gfc.npart_s);\n if (gfp.ATHtype != -1) {\n var freq;\n var freq_inc = gfp.out_samplerate / Encoder.BLKSIZE;\n var eql_balance = 0;\n freq = 0;\n for (i = 0; i < Encoder.BLKSIZE / 2; ++i) {\n freq += freq_inc;\n gfc.ATH.eql_w[i] = 1 / Math.pow(10, this.ATHformula(freq, gfp) / 10);\n eql_balance += gfc.ATH.eql_w[i];\n }\n eql_balance = 1 / eql_balance;\n for (i = Encoder.BLKSIZE / 2; --i >= 0; ) {\n gfc.ATH.eql_w[i] *= eql_balance;\n }\n }\n {\n for (var b = j = 0; b < gfc.npart_s; ++b) {\n for (i = 0; i < gfc.numlines_s[b]; ++i) {\n ++j;\n }\n }\n for (var b = j = 0; b < gfc.npart_l; ++b) {\n for (i = 0; i < gfc.numlines_l[b]; ++i) {\n ++j;\n }\n }\n }\n j = 0;\n for (i = 0; i < gfc.npart_l; i++) {\n var freq = sfreq * (j + gfc.numlines_l[i] / 2) / (1 * Encoder.BLKSIZE);\n gfc.mld_cb_l[i] = stereo_demask(freq);\n j += gfc.numlines_l[i];\n }\n for (; i < Encoder.CBANDS; ++i) {\n gfc.mld_cb_l[i] = 1;\n }\n j = 0;\n for (i = 0; i < gfc.npart_s; i++) {\n var freq = sfreq * (j + gfc.numlines_s[i] / 2) / (1 * Encoder.BLKSIZE_s);\n gfc.mld_cb_s[i] = stereo_demask(freq);\n j += gfc.numlines_s[i];\n }\n for (; i < Encoder.CBANDS; ++i) {\n gfc.mld_cb_s[i] = 1;\n }\n return 0;\n };\n function ATHformula_GB(f, value) {\n if (f < -0.3)\n f = 3410;\n f /= 1e3;\n f = Math.max(0.1, f);\n var ath = 3.64 * Math.pow(f, -0.8) - 6.8 * Math.exp(-0.6 * Math.pow(f - 3.4, 2)) + 6 * Math.exp(-0.15 * Math.pow(f - 8.7, 2)) + (0.6 + 0.04 * value) * 1e-3 * Math.pow(f, 4);\n return ath;\n }\n this.ATHformula = function(f, gfp) {\n var ath;\n switch (gfp.ATHtype) {\n case 0:\n ath = ATHformula_GB(f, 9);\n break;\n case 1:\n ath = ATHformula_GB(f, -1);\n break;\n case 2:\n ath = ATHformula_GB(f, 0);\n break;\n case 3:\n ath = ATHformula_GB(f, 1) + 6;\n break;\n case 4:\n ath = ATHformula_GB(f, gfp.ATHcurve);\n break;\n default:\n ath = ATHformula_GB(f, 0);\n break;\n }\n return ath;\n };\n}\nfunction LameGlobalFlags() {\n this.class_id = 0;\n this.num_samples = 0;\n this.num_channels = 0;\n this.in_samplerate = 0;\n this.out_samplerate = 0;\n this.scale = 0;\n this.scale_left = 0;\n this.scale_right = 0;\n this.analysis = false;\n this.bWriteVbrTag = false;\n this.decode_only = false;\n this.quality = 0;\n this.mode = MPEGMode.STEREO;\n this.force_ms = false;\n this.free_format = false;\n this.findReplayGain = false;\n this.decode_on_the_fly = false;\n this.write_id3tag_automatic = false;\n this.brate = 0;\n this.compression_ratio = 0;\n this.copyright = 0;\n this.original = 0;\n this.extension = 0;\n this.emphasis = 0;\n this.error_protection = 0;\n this.strict_ISO = false;\n this.disable_reservoir = false;\n this.quant_comp = 0;\n this.quant_comp_short = 0;\n this.experimentalY = false;\n this.experimentalZ = 0;\n this.exp_nspsytune = 0;\n this.preset = 0;\n this.VBR = null;\n this.VBR_q_frac = 0;\n this.VBR_q = 0;\n this.VBR_mean_bitrate_kbps = 0;\n this.VBR_min_bitrate_kbps = 0;\n this.VBR_max_bitrate_kbps = 0;\n this.VBR_hard_min = 0;\n this.lowpassfreq = 0;\n this.highpassfreq = 0;\n this.lowpasswidth = 0;\n this.highpasswidth = 0;\n this.maskingadjust = 0;\n this.maskingadjust_short = 0;\n this.ATHonly = false;\n this.ATHshort = false;\n this.noATH = false;\n this.ATHtype = 0;\n this.ATHcurve = 0;\n this.ATHlower = 0;\n this.athaa_type = 0;\n this.athaa_loudapprox = 0;\n this.athaa_sensitivity = 0;\n this.short_blocks = null;\n this.useTemporal = false;\n this.interChRatio = 0;\n this.msfix = 0;\n this.tune = false;\n this.tune_value_a = 0;\n this.version = 0;\n this.encoder_delay = 0;\n this.encoder_padding = 0;\n this.framesize = 0;\n this.frameNum = 0;\n this.lame_allocated_gfp = 0;\n this.internal_flags = null;\n}\nvar L3Side$1 = {};\nL3Side$1.SFBMAX = Encoder.SBMAX_s * 3;\nvar new_float$9 = common.new_float;\nvar new_int$a = common.new_int;\nfunction GrInfo() {\n this.xr = new_float$9(576);\n this.l3_enc = new_int$a(576);\n this.scalefac = new_int$a(L3Side$1.SFBMAX);\n this.xrpow_max = 0;\n this.part2_3_length = 0;\n this.big_values = 0;\n this.count1 = 0;\n this.global_gain = 0;\n this.scalefac_compress = 0;\n this.block_type = 0;\n this.mixed_block_flag = 0;\n this.table_select = new_int$a(3);\n this.subblock_gain = new_int$a(3 + 1);\n this.region0_count = 0;\n this.region1_count = 0;\n this.preflag = 0;\n this.scalefac_scale = 0;\n this.count1table_select = 0;\n this.part2_length = 0;\n this.sfb_lmax = 0;\n this.sfb_smin = 0;\n this.psy_lmax = 0;\n this.sfbmax = 0;\n this.psymax = 0;\n this.sfbdivide = 0;\n this.width = new_int$a(L3Side$1.SFBMAX);\n this.window = new_int$a(L3Side$1.SFBMAX);\n this.count1bits = 0;\n this.sfb_partition_table = null;\n this.slen = new_int$a(4);\n this.max_nonzero_coeff = 0;\n var self2 = this;\n function clone_int(array) {\n return new Int32Array(array);\n }\n function clone_float(array) {\n return new Float32Array(array);\n }\n this.assign = function(other) {\n self2.xr = clone_float(other.xr);\n self2.l3_enc = clone_int(other.l3_enc);\n self2.scalefac = clone_int(other.scalefac);\n self2.xrpow_max = other.xrpow_max;\n self2.part2_3_length = other.part2_3_length;\n self2.big_values = other.big_values;\n self2.count1 = other.count1;\n self2.global_gain = other.global_gain;\n self2.scalefac_compress = other.scalefac_compress;\n self2.block_type = other.block_type;\n self2.mixed_block_flag = other.mixed_block_flag;\n self2.table_select = clone_int(other.table_select);\n self2.subblock_gain = clone_int(other.subblock_gain);\n self2.region0_count = other.region0_count;\n self2.region1_count = other.region1_count;\n self2.preflag = other.preflag;\n self2.scalefac_scale = other.scalefac_scale;\n self2.count1table_select = other.count1table_select;\n self2.part2_length = other.part2_length;\n self2.sfb_lmax = other.sfb_lmax;\n self2.sfb_smin = other.sfb_smin;\n self2.psy_lmax = other.psy_lmax;\n self2.sfbmax = other.sfbmax;\n self2.psymax = other.psymax;\n self2.sfbdivide = other.sfbdivide;\n self2.width = clone_int(other.width);\n self2.window = clone_int(other.window);\n self2.count1bits = other.count1bits;\n self2.sfb_partition_table = other.sfb_partition_table.slice(0);\n self2.slen = clone_int(other.slen);\n self2.max_nonzero_coeff = other.max_nonzero_coeff;\n };\n}\nvar new_int$9 = common.new_int;\nfunction IIISideInfo() {\n this.tt = [\n [null, null],\n [null, null]\n ];\n this.main_data_begin = 0;\n this.private_bits = 0;\n this.resvDrain_pre = 0;\n this.resvDrain_post = 0;\n this.scfsi = [new_int$9(4), new_int$9(4)];\n for (var gr = 0; gr < 2; gr++) {\n for (var ch = 0; ch < 2; ch++) {\n this.tt[gr][ch] = new GrInfo();\n }\n }\n}\nvar System$6 = common.System;\nvar new_int$8 = common.new_int;\nfunction ScaleFac(arrL, arrS, arr21, arr12) {\n this.l = new_int$8(1 + Encoder.SBMAX_l);\n this.s = new_int$8(1 + Encoder.SBMAX_s);\n this.psfb21 = new_int$8(1 + Encoder.PSFB21);\n this.psfb12 = new_int$8(1 + Encoder.PSFB12);\n var l = this.l;\n var s = this.s;\n if (arguments.length == 4) {\n this.arrL = arguments[0];\n this.arrS = arguments[1];\n this.arr21 = arguments[2];\n this.arr12 = arguments[3];\n System$6.arraycopy(\n this.arrL,\n 0,\n l,\n 0,\n Math.min(this.arrL.length, this.l.length)\n );\n System$6.arraycopy(\n this.arrS,\n 0,\n s,\n 0,\n Math.min(this.arrS.length, this.s.length)\n );\n System$6.arraycopy(\n this.arr21,\n 0,\n this.psfb21,\n 0,\n Math.min(this.arr21.length, this.psfb21.length)\n );\n System$6.arraycopy(\n this.arr12,\n 0,\n this.psfb12,\n 0,\n Math.min(this.arr12.length, this.psfb12.length)\n );\n }\n}\nvar new_float$8 = common.new_float;\nvar new_float_n$2 = common.new_float_n;\nvar new_int$7 = common.new_int;\nfunction NsPsy() {\n this.last_en_subshort = new_float_n$2([4, 9]);\n this.lastAttacks = new_int$7(4);\n this.pefirbuf = new_float$8(19);\n this.longfact = new_float$8(Encoder.SBMAX_l);\n this.shortfact = new_float$8(Encoder.SBMAX_s);\n this.attackthre = 0;\n this.attackthre_s = 0;\n}\nfunction VBRSeekInfo() {\n this.sum = 0;\n this.seen = 0;\n this.want = 0;\n this.pos = 0;\n this.size = 0;\n this.bag = null;\n this.nVbrNumFrames = 0;\n this.nBytesWritten = 0;\n this.TotalFrameSize = 0;\n}\nvar new_byte$3 = common.new_byte;\nvar new_double = common.new_double;\nvar new_float$7 = common.new_float;\nvar new_float_n$1 = common.new_float_n;\nvar new_int$6 = common.new_int;\nvar new_int_n$1 = common.new_int_n;\nLameInternalFlags$1.MFSIZE = 3 * 1152 + Encoder.ENCDELAY - Encoder.MDCTDELAY;\nLameInternalFlags$1.MAX_HEADER_BUF = 256;\nLameInternalFlags$1.MAX_BITS_PER_CHANNEL = 4095;\nLameInternalFlags$1.MAX_BITS_PER_GRANULE = 7680;\nLameInternalFlags$1.BPC = 320;\nfunction LameInternalFlags$1() {\n var MAX_HEADER_LEN = 40;\n this.Class_ID = 0;\n this.lame_encode_frame_init = 0;\n this.iteration_init_init = 0;\n this.fill_buffer_resample_init = 0;\n this.mfbuf = new_float_n$1([2, LameInternalFlags$1.MFSIZE]);\n this.mode_gr = 0;\n this.channels_in = 0;\n this.channels_out = 0;\n this.resample_ratio = 0;\n this.mf_samples_to_encode = 0;\n this.mf_size = 0;\n this.VBR_min_bitrate = 0;\n this.VBR_max_bitrate = 0;\n this.bitrate_index = 0;\n this.samplerate_index = 0;\n this.mode_ext = 0;\n this.lowpass1 = 0;\n this.lowpass2 = 0;\n this.highpass1 = 0;\n this.highpass2 = 0;\n this.noise_shaping = 0;\n this.noise_shaping_amp = 0;\n this.substep_shaping = 0;\n this.psymodel = 0;\n this.noise_shaping_stop = 0;\n this.subblock_gain = 0;\n this.use_best_huffman = 0;\n this.full_outer_loop = 0;\n this.l3_side = new IIISideInfo();\n this.ms_ratio = new_float$7(2);\n this.padding = 0;\n this.frac_SpF = 0;\n this.slot_lag = 0;\n this.tag_spec = null;\n this.nMusicCRC = 0;\n this.OldValue = new_int$6(2);\n this.CurrentStep = new_int$6(2);\n this.masking_lower = 0;\n this.bv_scf = new_int$6(576);\n this.pseudohalf = new_int$6(L3Side$1.SFBMAX);\n this.sfb21_extra = false;\n this.inbuf_old = new Array(2);\n this.blackfilt = new Array(2 * LameInternalFlags$1.BPC + 1);\n this.itime = new_double(2);\n this.sideinfo_len = 0;\n this.sb_sample = new_float_n$1([2, 2, 18, Encoder.SBLIMIT]);\n this.amp_filter = new_float$7(32);\n function Header() {\n this.write_timing = 0;\n this.ptr = 0;\n this.buf = new_byte$3(MAX_HEADER_LEN);\n }\n this.header = new Array(LameInternalFlags$1.MAX_HEADER_BUF);\n this.h_ptr = 0;\n this.w_ptr = 0;\n this.ancillary_flag = 0;\n this.ResvSize = 0;\n this.ResvMax = 0;\n this.scalefac_band = new ScaleFac();\n this.minval_l = new_float$7(Encoder.CBANDS);\n this.minval_s = new_float$7(Encoder.CBANDS);\n this.nb_1 = new_float_n$1([4, Encoder.CBANDS]);\n this.nb_2 = new_float_n$1([4, Encoder.CBANDS]);\n this.nb_s1 = new_float_n$1([4, Encoder.CBANDS]);\n this.nb_s2 = new_float_n$1([4, Encoder.CBANDS]);\n this.s3_ss = null;\n this.s3_ll = null;\n this.decay = 0;\n this.thm = new Array(4);\n this.en = new Array(4);\n this.tot_ener = new_float$7(4);\n this.loudness_sq = new_float_n$1([2, 2]);\n this.loudness_sq_save = new_float$7(2);\n this.mld_l = new_float$7(Encoder.SBMAX_l);\n this.mld_s = new_float$7(Encoder.SBMAX_s);\n this.bm_l = new_int$6(Encoder.SBMAX_l);\n this.bo_l = new_int$6(Encoder.SBMAX_l);\n this.bm_s = new_int$6(Encoder.SBMAX_s);\n this.bo_s = new_int$6(Encoder.SBMAX_s);\n this.npart_l = 0;\n this.npart_s = 0;\n this.s3ind = new_int_n$1([Encoder.CBANDS, 2]);\n this.s3ind_s = new_int_n$1([Encoder.CBANDS, 2]);\n this.numlines_s = new_int$6(Encoder.CBANDS);\n this.numlines_l = new_int$6(Encoder.CBANDS);\n this.rnumlines_l = new_float$7(Encoder.CBANDS);\n this.mld_cb_l = new_float$7(Encoder.CBANDS);\n this.mld_cb_s = new_float$7(Encoder.CBANDS);\n this.numlines_s_num1 = 0;\n this.numlines_l_num1 = 0;\n this.pe = new_float$7(4);\n this.ms_ratio_s_old = 0;\n this.ms_ratio_l_old = 0;\n this.ms_ener_ratio_old = 0;\n this.blocktype_old = new_int$6(2);\n this.nsPsy = new NsPsy();\n this.VBR_seek_table = new VBRSeekInfo();\n this.ATH = null;\n this.PSY = null;\n this.nogap_total = 0;\n this.nogap_current = 0;\n this.decode_on_the_fly = true;\n this.findReplayGain = true;\n this.findPeakSample = true;\n this.PeakSample = 0;\n this.RadioGain = 0;\n this.AudiophileGain = 0;\n this.rgdata = null;\n this.noclipGainChange = 0;\n this.noclipScale = 0;\n this.bitrate_stereoMode_Hist = new_int_n$1([16, 4 + 1]);\n this.bitrate_blockType_Hist = new_int_n$1([16, 4 + 1 + 1]);\n this.pinfo = null;\n this.hip = null;\n this.in_buffer_nsamples = 0;\n this.in_buffer_0 = null;\n this.in_buffer_1 = null;\n this.iteration_loop = null;\n for (var i = 0; i < this.en.length; i++) {\n this.en[i] = new III_psy_xmin();\n }\n for (var i = 0; i < this.thm.length; i++) {\n this.thm[i] = new III_psy_xmin();\n }\n for (var i = 0; i < this.header.length; i++) {\n this.header[i] = new Header();\n }\n}\nvar new_float$6 = common.new_float;\nfunction ATH() {\n this.useAdjust = 0;\n this.aaSensitivityP = 0;\n this.adjust = 0;\n this.adjustLimit = 0;\n this.decay = 0;\n this.floor = 0;\n this.l = new_float$6(Encoder.SBMAX_l);\n this.s = new_float$6(Encoder.SBMAX_s);\n this.psfb21 = new_float$6(Encoder.PSFB21);\n this.psfb12 = new_float$6(Encoder.PSFB12);\n this.cb_l = new_float$6(Encoder.CBANDS);\n this.cb_s = new_float$6(Encoder.CBANDS);\n this.eql_w = new_float$6(Encoder.BLKSIZE / 2);\n}\nvar System$5 = common.System;\nvar Arrays$4 = common.Arrays;\nGainAnalysis$1.STEPS_per_dB = 100;\nGainAnalysis$1.MAX_dB = 120;\nGainAnalysis$1.GAIN_NOT_ENOUGH_SAMPLES = -24601;\nGainAnalysis$1.GAIN_ANALYSIS_ERROR = 0;\nGainAnalysis$1.GAIN_ANALYSIS_OK = 1;\nGainAnalysis$1.INIT_GAIN_ANALYSIS_ERROR = 0;\nGainAnalysis$1.INIT_GAIN_ANALYSIS_OK = 1;\nGainAnalysis$1.YULE_ORDER = 10;\nGainAnalysis$1.MAX_ORDER = GainAnalysis$1.YULE_ORDER;\nGainAnalysis$1.MAX_SAMP_FREQ = 48e3;\nGainAnalysis$1.RMS_WINDOW_TIME_NUMERATOR = 1;\nGainAnalysis$1.RMS_WINDOW_TIME_DENOMINATOR = 20;\nGainAnalysis$1.MAX_SAMPLES_PER_WINDOW = GainAnalysis$1.MAX_SAMP_FREQ * GainAnalysis$1.RMS_WINDOW_TIME_NUMERATOR / GainAnalysis$1.RMS_WINDOW_TIME_DENOMINATOR + 1;\nfunction GainAnalysis$1() {\n var PINK_REF = 64.82;\n var RMS_PERCENTILE = 0.95;\n var RMS_WINDOW_TIME_NUMERATOR = GainAnalysis$1.RMS_WINDOW_TIME_NUMERATOR;\n var RMS_WINDOW_TIME_DENOMINATOR = GainAnalysis$1.RMS_WINDOW_TIME_DENOMINATOR;\n var ABYule = [\n [\n 0.038575994352,\n -3.84664617118067,\n -0.02160367184185,\n 7.81501653005538,\n -0.00123395316851,\n -11.34170355132042,\n -9291677959e-14,\n 13.05504219327545,\n -0.01655260341619,\n -12.28759895145294,\n 0.02161526843274,\n 9.4829380631979,\n -0.02074045215285,\n -5.87257861775999,\n 0.00594298065125,\n 2.75465861874613,\n 0.00306428023191,\n -0.86984376593551,\n 12025322027e-14,\n 0.13919314567432,\n 0.00288463683916\n ],\n [\n 0.0541865640643,\n -3.47845948550071,\n -0.02911007808948,\n 6.36317777566148,\n -0.00848709379851,\n -8.54751527471874,\n -0.00851165645469,\n 9.4769360780128,\n -0.00834990904936,\n -8.81498681370155,\n 0.02245293253339,\n 6.85401540936998,\n -0.02596338512915,\n -4.39470996079559,\n 0.01624864962975,\n 2.19611684890774,\n -0.00240879051584,\n -0.75104302451432,\n 0.00674613682247,\n 0.13149317958808,\n -0.00187763777362\n ],\n [\n 0.15457299681924,\n -2.37898834973084,\n -0.09331049056315,\n 2.84868151156327,\n -0.06247880153653,\n -2.64577170229825,\n 0.02163541888798,\n 2.23697657451713,\n -0.05588393329856,\n -1.67148153367602,\n 0.04781476674921,\n 1.00595954808547,\n 0.00222312597743,\n -0.45953458054983,\n 0.03174092540049,\n 0.16378164858596,\n -0.01390589421898,\n -0.05032077717131,\n 0.00651420667831,\n 0.0234789740702,\n -0.00881362733839\n ],\n [\n 0.30296907319327,\n -1.61273165137247,\n -0.22613988682123,\n 1.0797749225997,\n -0.08587323730772,\n -0.2565625775407,\n 0.03282930172664,\n -0.1627671912044,\n -0.00915702933434,\n -0.22638893773906,\n -0.02364141202522,\n 0.39120800788284,\n -0.00584456039913,\n -0.22138138954925,\n 0.06276101321749,\n 0.04500235387352,\n -828086748e-14,\n 0.02005851806501,\n 0.00205861885564,\n 0.00302439095741,\n -0.02950134983287\n ],\n [\n 0.33642304856132,\n -1.49858979367799,\n -0.2557224142557,\n 0.87350271418188,\n -0.11828570177555,\n 0.12205022308084,\n 0.11921148675203,\n -0.80774944671438,\n -0.07834489609479,\n 0.47854794562326,\n -0.0046997791438,\n -0.12453458140019,\n -0.0058950022444,\n -0.04067510197014,\n 0.05724228140351,\n 0.08333755284107,\n 0.00832043980773,\n -0.04237348025746,\n -0.0163538138454,\n 0.02977207319925,\n -0.0176017656815\n ],\n [\n 0.4491525660845,\n -0.62820619233671,\n -0.14351757464547,\n 0.29661783706366,\n -0.22784394429749,\n -0.372563729424,\n -0.01419140100551,\n 0.00213767857124,\n 0.04078262797139,\n -0.42029820170918,\n -0.12398163381748,\n 0.22199650564824,\n 0.04097565135648,\n 0.00613424350682,\n 0.10478503600251,\n 0.06747620744683,\n -0.01863887810927,\n 0.05784820375801,\n -0.03193428438915,\n 0.03222754072173,\n 0.00541907748707\n ],\n [\n 0.56619470757641,\n -1.04800335126349,\n -0.75464456939302,\n 0.29156311971249,\n 0.1624213774223,\n -0.26806001042947,\n 0.16744243493672,\n 0.00819999645858,\n -0.18901604199609,\n 0.45054734505008,\n 0.3093178284183,\n -0.33032403314006,\n -0.27562961986224,\n 0.0673936833311,\n 0.00647310677246,\n -0.04784254229033,\n 0.08647503780351,\n 0.01639907836189,\n -0.0378898455484,\n 0.01807364323573,\n -0.00588215443421\n ],\n [\n 0.58100494960553,\n -0.51035327095184,\n -0.53174909058578,\n -0.31863563325245,\n -0.14289799034253,\n -0.20256413484477,\n 0.17520704835522,\n 0.1472815413433,\n 0.02377945217615,\n 0.38952639978999,\n 0.15558449135573,\n -0.23313271880868,\n -0.25344790059353,\n -0.05246019024463,\n 0.01628462406333,\n -0.02505961724053,\n 0.06920467763959,\n 0.02442357316099,\n -0.03721611395801,\n 0.01818801111503,\n -0.00749618797172\n ],\n [\n 0.53648789255105,\n -0.2504987195602,\n -0.42163034350696,\n -0.43193942311114,\n -0.00275953611929,\n -0.03424681017675,\n 0.04267842219415,\n -0.04678328784242,\n -0.10214864179676,\n 0.26408300200955,\n 0.14590772289388,\n 0.15113130533216,\n -0.02459864859345,\n -0.17556493366449,\n -0.11202315195388,\n -0.18823009262115,\n -0.04060034127,\n 0.05477720428674,\n 0.0478866554818,\n 0.0470440968812,\n -0.02217936801134\n ]\n ];\n var ABButter = [\n [\n 0.98621192462708,\n -1.97223372919527,\n -1.97242384925416,\n 0.97261396931306,\n 0.98621192462708\n ],\n [\n 0.98500175787242,\n -1.96977855582618,\n -1.97000351574484,\n 0.9702284756635,\n 0.98500175787242\n ],\n [\n 0.97938932735214,\n -1.95835380975398,\n -1.95877865470428,\n 0.95920349965459,\n 0.97938932735214\n ],\n [\n 0.97531843204928,\n -1.95002759149878,\n -1.95063686409857,\n 0.95124613669835,\n 0.97531843204928\n ],\n [\n 0.97316523498161,\n -1.94561023566527,\n -1.94633046996323,\n 0.94705070426118,\n 0.97316523498161\n ],\n [\n 0.96454515552826,\n -1.92783286977036,\n -1.92909031105652,\n 0.93034775234268,\n 0.96454515552826\n ],\n [\n 0.96009142950541,\n -1.91858953033784,\n -1.92018285901082,\n 0.92177618768381,\n 0.96009142950541\n ],\n [\n 0.95856916599601,\n -1.9154210807478,\n -1.91713833199203,\n 0.91885558323625,\n 0.95856916599601\n ],\n [\n 0.94597685600279,\n -1.88903307939452,\n -1.89195371200558,\n 0.89487434461664,\n 0.94597685600279\n ]\n ];\n function filterYule(input, inputPos, output, outputPos, nSamples, kernel) {\n while (nSamples-- != 0) {\n output[outputPos] = 1e-10 + input[inputPos + 0] * kernel[0] - output[outputPos - 1] * kernel[1] + input[inputPos - 1] * kernel[2] - output[outputPos - 2] * kernel[3] + input[inputPos - 2] * kernel[4] - output[outputPos - 3] * kernel[5] + input[inputPos - 3] * kernel[6] - output[outputPos - 4] * kernel[7] + input[inputPos - 4] * kernel[8] - output[outputPos - 5] * kernel[9] + input[inputPos - 5] * kernel[10] - output[outputPos - 6] * kernel[11] + input[inputPos - 6] * kernel[12] - output[outputPos - 7] * kernel[13] + input[inputPos - 7] * kernel[14] - output[outputPos - 8] * kernel[15] + input[inputPos - 8] * kernel[16] - output[outputPos - 9] * kernel[17] + input[inputPos - 9] * kernel[18] - output[outputPos - 10] * kernel[19] + input[inputPos - 10] * kernel[20];\n ++outputPos;\n ++inputPos;\n }\n }\n function filterButter(input, inputPos, output, outputPos, nSamples, kernel) {\n while (nSamples-- != 0) {\n output[outputPos] = input[inputPos + 0] * kernel[0] - output[outputPos - 1] * kernel[1] + input[inputPos - 1] * kernel[2] - output[outputPos - 2] * kernel[3] + input[inputPos - 2] * kernel[4];\n ++outputPos;\n ++inputPos;\n }\n }\n function ResetSampleFrequency(rgData, samplefreq) {\n for (var i = 0; i < MAX_ORDER; i++) {\n rgData.linprebuf[i] = rgData.lstepbuf[i] = rgData.loutbuf[i] = rgData.rinprebuf[i] = rgData.rstepbuf[i] = rgData.routbuf[i] = 0;\n }\n switch (0 | samplefreq) {\n case 48e3:\n rgData.reqindex = 0;\n break;\n case 44100:\n rgData.reqindex = 1;\n break;\n case 32e3:\n rgData.reqindex = 2;\n break;\n case 24e3:\n rgData.reqindex = 3;\n break;\n case 22050:\n rgData.reqindex = 4;\n break;\n case 16e3:\n rgData.reqindex = 5;\n break;\n case 12e3:\n rgData.reqindex = 6;\n break;\n case 11025:\n rgData.reqindex = 7;\n break;\n case 8e3:\n rgData.reqindex = 8;\n break;\n default:\n return INIT_GAIN_ANALYSIS_ERROR;\n }\n rgData.sampleWindow = 0 | (samplefreq * RMS_WINDOW_TIME_NUMERATOR + RMS_WINDOW_TIME_DENOMINATOR - 1) / RMS_WINDOW_TIME_DENOMINATOR;\n rgData.lsum = 0;\n rgData.rsum = 0;\n rgData.totsamp = 0;\n Arrays$4.ill(rgData.A, 0);\n return INIT_GAIN_ANALYSIS_OK;\n }\n this.InitGainAnalysis = function(rgData, samplefreq) {\n if (ResetSampleFrequency(rgData, samplefreq) != INIT_GAIN_ANALYSIS_OK) {\n return INIT_GAIN_ANALYSIS_ERROR;\n }\n rgData.linpre = MAX_ORDER;\n rgData.rinpre = MAX_ORDER;\n rgData.lstep = MAX_ORDER;\n rgData.rstep = MAX_ORDER;\n rgData.lout = MAX_ORDER;\n rgData.rout = MAX_ORDER;\n Arrays$4.fill(rgData.B, 0);\n return INIT_GAIN_ANALYSIS_OK;\n };\n function fsqr(d) {\n return d * d;\n }\n this.AnalyzeSamples = function(rgData, left_samples, left_samplesPos, right_samples, right_samplesPos, num_samples, num_channels) {\n var curleft;\n var curleftBase;\n var curright;\n var currightBase;\n var batchsamples;\n var cursamples;\n var cursamplepos;\n if (num_samples == 0)\n return GAIN_ANALYSIS_OK;\n cursamplepos = 0;\n batchsamples = num_samples;\n switch (num_channels) {\n case 1:\n right_samples = left_samples;\n right_samplesPos = left_samplesPos;\n break;\n case 2:\n break;\n default:\n return GAIN_ANALYSIS_ERROR;\n }\n if (num_samples < MAX_ORDER) {\n System$5.arraycopy(\n left_samples,\n left_samplesPos,\n rgData.linprebuf,\n MAX_ORDER,\n num_samples\n );\n System$5.arraycopy(\n right_samples,\n right_samplesPos,\n rgData.rinprebuf,\n MAX_ORDER,\n num_samples\n );\n } else {\n System$5.arraycopy(\n left_samples,\n left_samplesPos,\n rgData.linprebuf,\n MAX_ORDER,\n MAX_ORDER\n );\n System$5.arraycopy(\n right_samples,\n right_samplesPos,\n rgData.rinprebuf,\n MAX_ORDER,\n MAX_ORDER\n );\n }\n while (batchsamples > 0) {\n cursamples = batchsamples > rgData.sampleWindow - rgData.totsamp ? rgData.sampleWindow - rgData.totsamp : batchsamples;\n if (cursamplepos < MAX_ORDER) {\n curleft = rgData.linpre + cursamplepos;\n curleftBase = rgData.linprebuf;\n curright = rgData.rinpre + cursamplepos;\n currightBase = rgData.rinprebuf;\n if (cursamples > MAX_ORDER - cursamplepos) {\n cursamples = MAX_ORDER - cursamplepos;\n }\n } else {\n curleft = left_samplesPos + cursamplepos;\n curleftBase = left_samples;\n curright = right_samplesPos + cursamplepos;\n currightBase = right_samples;\n }\n filterYule(\n curleftBase,\n curleft,\n rgData.lstepbuf,\n rgData.lstep + rgData.totsamp,\n cursamples,\n ABYule[rgData.reqindex]\n );\n filterYule(\n currightBase,\n curright,\n rgData.rstepbuf,\n rgData.rstep + rgData.totsamp,\n cursamples,\n ABYule[rgData.reqindex]\n );\n filterButter(\n rgData.lstepbuf,\n rgData.lstep + rgData.totsamp,\n rgData.loutbuf,\n rgData.lout + rgData.totsamp,\n cursamples,\n ABButter[rgData.reqindex]\n );\n filterButter(\n rgData.rstepbuf,\n rgData.rstep + rgData.totsamp,\n rgData.routbuf,\n rgData.rout + rgData.totsamp,\n cursamples,\n ABButter[rgData.reqindex]\n );\n curleft = rgData.lout + rgData.totsamp;\n curleftBase = rgData.loutbuf;\n curright = rgData.rout + rgData.totsamp;\n currightBase = rgData.routbuf;\n var i = cursamples % 8;\n while (i-- != 0) {\n rgData.lsum += fsqr(curleftBase[curleft++]);\n rgData.rsum += fsqr(currightBase[curright++]);\n }\n i = cursamples / 8;\n while (i-- != 0) {\n rgData.lsum += fsqr(curleftBase[curleft + 0]) + fsqr(curleftBase[curleft + 1]) + fsqr(curleftBase[curleft + 2]) + fsqr(curleftBase[curleft + 3]) + fsqr(curleftBase[curleft + 4]) + fsqr(curleftBase[curleft + 5]) + fsqr(curleftBase[curleft + 6]) + fsqr(curleftBase[curleft + 7]);\n curleft += 8;\n rgData.rsum += fsqr(currightBase[curright + 0]) + fsqr(currightBase[curright + 1]) + fsqr(currightBase[curright + 2]) + fsqr(currightBase[curright + 3]) + fsqr(currightBase[curright + 4]) + fsqr(currightBase[curright + 5]) + fsqr(currightBase[curright + 6]) + fsqr(currightBase[curright + 7]);\n curright += 8;\n }\n batchsamples -= cursamples;\n cursamplepos += cursamples;\n rgData.totsamp += cursamples;\n if (rgData.totsamp == rgData.sampleWindow) {\n var val = GainAnalysis$1.STEPS_per_dB * 10 * Math.log10(\n (rgData.lsum + rgData.rsum) / rgData.totsamp * 0.5 + 1e-37\n );\n var ival = val <= 0 ? 0 : 0 | val;\n if (ival >= rgData.A.length)\n ival = rgData.A.length - 1;\n rgData.A[ival]++;\n rgData.lsum = rgData.rsum = 0;\n System$5.arraycopy(\n rgData.loutbuf,\n rgData.totsamp,\n rgData.loutbuf,\n 0,\n MAX_ORDER\n );\n System$5.arraycopy(\n rgData.routbuf,\n rgData.totsamp,\n rgData.routbuf,\n 0,\n MAX_ORDER\n );\n System$5.arraycopy(\n rgData.lstepbuf,\n rgData.totsamp,\n rgData.lstepbuf,\n 0,\n MAX_ORDER\n );\n System$5.arraycopy(\n rgData.rstepbuf,\n rgData.totsamp,\n rgData.rstepbuf,\n 0,\n MAX_ORDER\n );\n rgData.totsamp = 0;\n }\n if (rgData.totsamp > rgData.sampleWindow) {\n return GAIN_ANALYSIS_ERROR;\n }\n }\n if (num_samples < MAX_ORDER) {\n System$5.arraycopy(\n rgData.linprebuf,\n num_samples,\n rgData.linprebuf,\n 0,\n MAX_ORDER - num_samples\n );\n System$5.arraycopy(\n rgData.rinprebuf,\n num_samples,\n rgData.rinprebuf,\n 0,\n MAX_ORDER - num_samples\n );\n System$5.arraycopy(\n left_samples,\n left_samplesPos,\n rgData.linprebuf,\n MAX_ORDER - num_samples,\n num_samples\n );\n System$5.arraycopy(\n right_samples,\n right_samplesPos,\n rgData.rinprebuf,\n MAX_ORDER - num_samples,\n num_samples\n );\n } else {\n System$5.arraycopy(\n left_samples,\n left_samplesPos + num_samples - MAX_ORDER,\n rgData.linprebuf,\n 0,\n MAX_ORDER\n );\n System$5.arraycopy(\n right_samples,\n right_samplesPos + num_samples - MAX_ORDER,\n rgData.rinprebuf,\n 0,\n MAX_ORDER\n );\n }\n return GAIN_ANALYSIS_OK;\n };\n function analyzeResult(Array2, len) {\n var i;\n var elems = 0;\n for (i = 0; i < len; i++)\n elems += Array2[i];\n if (elems == 0)\n return GAIN_NOT_ENOUGH_SAMPLES;\n var upper = 0 | Math.ceil(elems * (1 - RMS_PERCENTILE));\n for (i = len; i-- > 0; ) {\n if ((upper -= Array2[i]) <= 0)\n break;\n }\n return PINK_REF - i / GainAnalysis$1.STEPS_per_dB;\n }\n this.GetTitleGain = function(rgData) {\n var retval = analyzeResult(rgData.A, rgData.A.length);\n for (var i = 0; i < rgData.A.length; i++) {\n rgData.B[i] += rgData.A[i];\n rgData.A[i] = 0;\n }\n for (var i = 0; i < MAX_ORDER; i++) {\n rgData.linprebuf[i] = rgData.lstepbuf[i] = rgData.loutbuf[i] = rgData.rinprebuf[i] = rgData.rstepbuf[i] = rgData.routbuf[i] = 0;\n }\n rgData.totsamp = 0;\n rgData.lsum = rgData.rsum = 0;\n return retval;\n };\n}\nvar new_float$5 = common.new_float;\nvar new_int$5 = common.new_int;\nfunction ReplayGain() {\n this.linprebuf = new_float$5(void 0 * 2);\n this.linpre = 0;\n this.lstepbuf = new_float$5(\n void 0 + void 0\n );\n this.lstep = 0;\n this.loutbuf = new_float$5(\n void 0 + void 0\n );\n this.lout = 0;\n this.rinprebuf = new_float$5(void 0 * 2);\n this.rinpre = 0;\n this.rstepbuf = new_float$5(\n void 0 + void 0\n );\n this.rstep = 0;\n this.routbuf = new_float$5(\n void 0 + void 0\n );\n this.rout = 0;\n this.sampleWindow = 0;\n this.totsamp = 0;\n this.lsum = 0;\n this.rsum = 0;\n this.freqindex = 0;\n this.first = 0;\n this.A = new_int$5(0 | void 0 * void 0);\n this.B = new_int$5(0 | void 0 * void 0);\n}\nfunction MeanBits$1(meanBits) {\n this.bits = meanBits;\n}\nvar new_float$4 = common.new_float;\nvar new_int$4 = common.new_int;\nvar assert$8 = common.assert;\nfunction CBRNewIterationLoop(_quantize) {\n var quantize = _quantize;\n this.quantize = quantize;\n this.iteration_loop = function(gfp, pe, ms_ener_ratio, ratio) {\n var gfc = gfp.internal_flags;\n var l3_xmin = new_float$4(L3Side$1.SFBMAX);\n var xrpow = new_float$4(576);\n var targ_bits = new_int$4(2);\n var mean_bits = 0;\n var max_bits;\n var l3_side = gfc.l3_side;\n var mb = new MeanBits$1(mean_bits);\n this.quantize.rv.ResvFrameBegin(gfp, mb);\n mean_bits = mb.bits;\n for (var gr = 0; gr < gfc.mode_gr; gr++) {\n max_bits = this.quantize.qupvt.on_pe(\n gfp,\n pe,\n targ_bits,\n mean_bits,\n gr,\n gr\n );\n if (gfc.mode_ext == Encoder.MPG_MD_MS_LR) {\n this.quantize.ms_convert(gfc.l3_side, gr);\n this.quantize.qupvt.reduce_side(\n targ_bits,\n ms_ener_ratio[gr],\n mean_bits,\n max_bits\n );\n }\n for (var ch = 0; ch < gfc.channels_out; ch++) {\n var adjust, masking_lower_db;\n var cod_info = l3_side.tt[gr][ch];\n if (cod_info.block_type != Encoder.SHORT_TYPE) {\n adjust = 0;\n masking_lower_db = gfc.PSY.mask_adjust - adjust;\n } else {\n adjust = 0;\n masking_lower_db = gfc.PSY.mask_adjust_short - adjust;\n }\n gfc.masking_lower = Math.pow(10, masking_lower_db * 0.1);\n this.quantize.init_outer_loop(gfc, cod_info);\n if (this.quantize.init_xrpow(gfc, cod_info, xrpow)) {\n this.quantize.qupvt.calc_xmin(gfp, ratio[gr][ch], cod_info, l3_xmin);\n this.quantize.outer_loop(\n gfp,\n cod_info,\n l3_xmin,\n xrpow,\n ch,\n targ_bits[ch]\n );\n }\n this.quantize.iteration_finish_one(gfc, gr, ch);\n assert$8(\n cod_info.part2_3_length <= LameInternalFlags$1.MAX_BITS_PER_CHANNEL\n );\n assert$8(cod_info.part2_3_length <= targ_bits[ch]);\n }\n }\n this.quantize.rv.ResvFrameEnd(gfc, mean_bits);\n };\n}\nfunction HuffCodeTab(len, max, tab, hl) {\n this.xlen = len;\n this.linmax = max;\n this.table = tab;\n this.hlen = hl;\n}\nvar Tables$1 = {};\nTables$1.t1HB = [1, 1, 1, 0];\nTables$1.t2HB = [1, 2, 1, 3, 1, 1, 3, 2, 0];\nTables$1.t3HB = [3, 2, 1, 1, 1, 1, 3, 2, 0];\nTables$1.t5HB = [1, 2, 6, 5, 3, 1, 4, 4, 7, 5, 7, 1, 6, 1, 1, 0];\nTables$1.t6HB = [7, 3, 5, 1, 6, 2, 3, 2, 5, 4, 4, 1, 3, 3, 2, 0];\nTables$1.t7HB = [\n 1,\n 2,\n 10,\n 19,\n 16,\n 10,\n 3,\n 3,\n 7,\n 10,\n 5,\n 3,\n 11,\n 4,\n 13,\n 17,\n 8,\n 4,\n 12,\n 11,\n 18,\n 15,\n 11,\n 2,\n 7,\n 6,\n 9,\n 14,\n 3,\n 1,\n 6,\n 4,\n 5,\n 3,\n 2,\n 0\n];\nTables$1.t8HB = [\n 3,\n 4,\n 6,\n 18,\n 12,\n 5,\n 5,\n 1,\n 2,\n 16,\n 9,\n 3,\n 7,\n 3,\n 5,\n 14,\n 7,\n 3,\n 19,\n 17,\n 15,\n 13,\n 10,\n 4,\n 13,\n 5,\n 8,\n 11,\n 5,\n 1,\n 12,\n 4,\n 4,\n 1,\n 1,\n 0\n];\nTables$1.t9HB = [\n 7,\n 5,\n 9,\n 14,\n 15,\n 7,\n 6,\n 4,\n 5,\n 5,\n 6,\n 7,\n 7,\n 6,\n 8,\n 8,\n 8,\n 5,\n 15,\n 6,\n 9,\n 10,\n 5,\n 1,\n 11,\n 7,\n 9,\n 6,\n 4,\n 1,\n 14,\n 4,\n 6,\n 2,\n 6,\n 0\n];\nTables$1.t10HB = [\n 1,\n 2,\n 10,\n 23,\n 35,\n 30,\n 12,\n 17,\n 3,\n 3,\n 8,\n 12,\n 18,\n 21,\n 12,\n 7,\n 11,\n 9,\n 15,\n 21,\n 32,\n 40,\n 19,\n 6,\n 14,\n 13,\n 22,\n 34,\n 46,\n 23,\n 18,\n 7,\n 20,\n 19,\n 33,\n 47,\n 27,\n 22,\n 9,\n 3,\n 31,\n 22,\n 41,\n 26,\n 21,\n 20,\n 5,\n 3,\n 14,\n 13,\n 10,\n 11,\n 16,\n 6,\n 5,\n 1,\n 9,\n 8,\n 7,\n 8,\n 4,\n 4,\n 2,\n 0\n];\nTables$1.t11HB = [\n 3,\n 4,\n 10,\n 24,\n 34,\n 33,\n 21,\n 15,\n 5,\n 3,\n 4,\n 10,\n 32,\n 17,\n 11,\n 10,\n 11,\n 7,\n 13,\n 18,\n 30,\n 31,\n 20,\n 5,\n 25,\n 11,\n 19,\n 59,\n 27,\n 18,\n 12,\n 5,\n 35,\n 33,\n 31,\n 58,\n 30,\n 16,\n 7,\n 5,\n 28,\n 26,\n 32,\n 19,\n 17,\n 15,\n 8,\n 14,\n 14,\n 12,\n 9,\n 13,\n 14,\n 9,\n 4,\n 1,\n 11,\n 4,\n 6,\n 6,\n 6,\n 3,\n 2,\n 0\n];\nTables$1.t12HB = [\n 9,\n 6,\n 16,\n 33,\n 41,\n 39,\n 38,\n 26,\n 7,\n 5,\n 6,\n 9,\n 23,\n 16,\n 26,\n 11,\n 17,\n 7,\n 11,\n 14,\n 21,\n 30,\n 10,\n 7,\n 17,\n 10,\n 15,\n 12,\n 18,\n 28,\n 14,\n 5,\n 32,\n 13,\n 22,\n 19,\n 18,\n 16,\n 9,\n 5,\n 40,\n 17,\n 31,\n 29,\n 17,\n 13,\n 4,\n 2,\n 27,\n 12,\n 11,\n 15,\n 10,\n 7,\n 4,\n 1,\n 27,\n 12,\n 8,\n 12,\n 6,\n 3,\n 1,\n 0\n];\nTables$1.t13HB = [\n 1,\n 5,\n 14,\n 21,\n 34,\n 51,\n 46,\n 71,\n 42,\n 52,\n 68,\n 52,\n 67,\n 44,\n 43,\n 19,\n 3,\n 4,\n 12,\n 19,\n 31,\n 26,\n 44,\n 33,\n 31,\n 24,\n 32,\n 24,\n 31,\n 35,\n 22,\n 14,\n 15,\n 13,\n 23,\n 36,\n 59,\n 49,\n 77,\n 65,\n 29,\n 40,\n 30,\n 40,\n 27,\n 33,\n 42,\n 16,\n 22,\n 20,\n 37,\n 61,\n 56,\n 79,\n 73,\n 64,\n 43,\n 76,\n 56,\n 37,\n 26,\n 31,\n 25,\n 14,\n 35,\n 16,\n 60,\n 57,\n 97,\n 75,\n 114,\n 91,\n 54,\n 73,\n 55,\n 41,\n 48,\n 53,\n 23,\n 24,\n 58,\n 27,\n 50,\n 96,\n 76,\n 70,\n 93,\n 84,\n 77,\n 58,\n 79,\n 29,\n 74,\n 49,\n 41,\n 17,\n 47,\n 45,\n 78,\n 74,\n 115,\n 94,\n 90,\n 79,\n 69,\n 83,\n 71,\n 50,\n 59,\n 38,\n 36,\n 15,\n 72,\n 34,\n 56,\n 95,\n 92,\n 85,\n 91,\n 90,\n 86,\n 73,\n 77,\n 65,\n 51,\n 44,\n 43,\n 42,\n 43,\n 20,\n 30,\n 44,\n 55,\n 78,\n 72,\n 87,\n 78,\n 61,\n 46,\n 54,\n 37,\n 30,\n 20,\n 16,\n 53,\n 25,\n 41,\n 37,\n 44,\n 59,\n 54,\n 81,\n 66,\n 76,\n 57,\n 54,\n 37,\n 18,\n 39,\n 11,\n 35,\n 33,\n 31,\n 57,\n 42,\n 82,\n 72,\n 80,\n 47,\n 58,\n 55,\n 21,\n 22,\n 26,\n 38,\n 22,\n 53,\n 25,\n 23,\n 38,\n 70,\n 60,\n 51,\n 36,\n 55,\n 26,\n 34,\n 23,\n 27,\n 14,\n 9,\n 7,\n 34,\n 32,\n 28,\n 39,\n 49,\n 75,\n 30,\n 52,\n 48,\n 40,\n 52,\n 28,\n 18,\n 17,\n 9,\n 5,\n 45,\n 21,\n 34,\n 64,\n 56,\n 50,\n 49,\n 45,\n 31,\n 19,\n 12,\n 15,\n 10,\n 7,\n 6,\n 3,\n 48,\n 23,\n 20,\n 39,\n 36,\n 35,\n 53,\n 21,\n 16,\n 23,\n 13,\n 10,\n 6,\n 1,\n 4,\n 2,\n 16,\n 15,\n 17,\n 27,\n 25,\n 20,\n 29,\n 11,\n 17,\n 12,\n 16,\n 8,\n 1,\n 1,\n 0,\n 1\n];\nTables$1.t15HB = [\n 7,\n 12,\n 18,\n 53,\n 47,\n 76,\n 124,\n 108,\n 89,\n 123,\n 108,\n 119,\n 107,\n 81,\n 122,\n 63,\n 13,\n 5,\n 16,\n 27,\n 46,\n 36,\n 61,\n 51,\n 42,\n 70,\n 52,\n 83,\n 65,\n 41,\n 59,\n 36,\n 19,\n 17,\n 15,\n 24,\n 41,\n 34,\n 59,\n 48,\n 40,\n 64,\n 50,\n 78,\n 62,\n 80,\n 56,\n 33,\n 29,\n 28,\n 25,\n 43,\n 39,\n 63,\n 55,\n 93,\n 76,\n 59,\n 93,\n 72,\n 54,\n 75,\n 50,\n 29,\n 52,\n 22,\n 42,\n 40,\n 67,\n 57,\n 95,\n 79,\n 72,\n 57,\n 89,\n 69,\n 49,\n 66,\n 46,\n 27,\n 77,\n 37,\n 35,\n 66,\n 58,\n 52,\n 91,\n 74,\n 62,\n 48,\n 79,\n 63,\n 90,\n 62,\n 40,\n 38,\n 125,\n 32,\n 60,\n 56,\n 50,\n 92,\n 78,\n 65,\n 55,\n 87,\n 71,\n 51,\n 73,\n 51,\n 70,\n 30,\n 109,\n 53,\n 49,\n 94,\n 88,\n 75,\n 66,\n 122,\n 91,\n 73,\n 56,\n 42,\n 64,\n 44,\n 21,\n 25,\n 90,\n 43,\n 41,\n 77,\n 73,\n 63,\n 56,\n 92,\n 77,\n 66,\n 47,\n 67,\n 48,\n 53,\n 36,\n 20,\n 71,\n 34,\n 67,\n 60,\n 58,\n 49,\n 88,\n 76,\n 67,\n 106,\n 71,\n 54,\n 38,\n 39,\n 23,\n 15,\n 109,\n 53,\n 51,\n 47,\n 90,\n 82,\n 58,\n 57,\n 48,\n 72,\n 57,\n 41,\n 23,\n 27,\n 62,\n 9,\n 86,\n 42,\n 40,\n 37,\n 70,\n 64,\n 52,\n 43,\n 70,\n 55,\n 42,\n 25,\n 29,\n 18,\n 11,\n 11,\n 118,\n 68,\n 30,\n 55,\n 50,\n 46,\n 74,\n 65,\n 49,\n 39,\n 24,\n 16,\n 22,\n 13,\n 14,\n 7,\n 91,\n 44,\n 39,\n 38,\n 34,\n 63,\n 52,\n 45,\n 31,\n 52,\n 28,\n 19,\n 14,\n 8,\n 9,\n 3,\n 123,\n 60,\n 58,\n 53,\n 47,\n 43,\n 32,\n 22,\n 37,\n 24,\n 17,\n 12,\n 15,\n 10,\n 2,\n 1,\n 71,\n 37,\n 34,\n 30,\n 28,\n 20,\n 17,\n 26,\n 21,\n 16,\n 10,\n 6,\n 8,\n 6,\n 2,\n 0\n];\nTables$1.t16HB = [\n 1,\n 5,\n 14,\n 44,\n 74,\n 63,\n 110,\n 93,\n 172,\n 149,\n 138,\n 242,\n 225,\n 195,\n 376,\n 17,\n 3,\n 4,\n 12,\n 20,\n 35,\n 62,\n 53,\n 47,\n 83,\n 75,\n 68,\n 119,\n 201,\n 107,\n 207,\n 9,\n 15,\n 13,\n 23,\n 38,\n 67,\n 58,\n 103,\n 90,\n 161,\n 72,\n 127,\n 117,\n 110,\n 209,\n 206,\n 16,\n 45,\n 21,\n 39,\n 69,\n 64,\n 114,\n 99,\n 87,\n 158,\n 140,\n 252,\n 212,\n 199,\n 387,\n 365,\n 26,\n 75,\n 36,\n 68,\n 65,\n 115,\n 101,\n 179,\n 164,\n 155,\n 264,\n 246,\n 226,\n 395,\n 382,\n 362,\n 9,\n 66,\n 30,\n 59,\n 56,\n 102,\n 185,\n 173,\n 265,\n 142,\n 253,\n 232,\n 400,\n 388,\n 378,\n 445,\n 16,\n 111,\n 54,\n 52,\n 100,\n 184,\n 178,\n 160,\n 133,\n 257,\n 244,\n 228,\n 217,\n 385,\n 366,\n 715,\n 10,\n 98,\n 48,\n 91,\n 88,\n 165,\n 157,\n 148,\n 261,\n 248,\n 407,\n 397,\n 372,\n 380,\n 889,\n 884,\n 8,\n 85,\n 84,\n 81,\n 159,\n 156,\n 143,\n 260,\n 249,\n 427,\n 401,\n 392,\n 383,\n 727,\n 713,\n 708,\n 7,\n 154,\n 76,\n 73,\n 141,\n 131,\n 256,\n 245,\n 426,\n 406,\n 394,\n 384,\n 735,\n 359,\n 710,\n 352,\n 11,\n 139,\n 129,\n 67,\n 125,\n 247,\n 233,\n 229,\n 219,\n 393,\n 743,\n 737,\n 720,\n 885,\n 882,\n 439,\n 4,\n 243,\n 120,\n 118,\n 115,\n 227,\n 223,\n 396,\n 746,\n 742,\n 736,\n 721,\n 712,\n 706,\n 223,\n 436,\n 6,\n 202,\n 224,\n 222,\n 218,\n 216,\n 389,\n 386,\n 381,\n 364,\n 888,\n 443,\n 707,\n 440,\n 437,\n 1728,\n 4,\n 747,\n 211,\n 210,\n 208,\n 370,\n 379,\n 734,\n 723,\n 714,\n 1735,\n 883,\n 877,\n 876,\n 3459,\n 865,\n 2,\n 377,\n 369,\n 102,\n 187,\n 726,\n 722,\n 358,\n 711,\n 709,\n 866,\n 1734,\n 871,\n 3458,\n 870,\n 434,\n 0,\n 12,\n 10,\n 7,\n 11,\n 10,\n 17,\n 11,\n 9,\n 13,\n 12,\n 10,\n 7,\n 5,\n 3,\n 1,\n 3\n];\nTables$1.t24HB = [\n 15,\n 13,\n 46,\n 80,\n 146,\n 262,\n 248,\n 434,\n 426,\n 669,\n 653,\n 649,\n 621,\n 517,\n 1032,\n 88,\n 14,\n 12,\n 21,\n 38,\n 71,\n 130,\n 122,\n 216,\n 209,\n 198,\n 327,\n 345,\n 319,\n 297,\n 279,\n 42,\n 47,\n 22,\n 41,\n 74,\n 68,\n 128,\n 120,\n 221,\n 207,\n 194,\n 182,\n 340,\n 315,\n 295,\n 541,\n 18,\n 81,\n 39,\n 75,\n 70,\n 134,\n 125,\n 116,\n 220,\n 204,\n 190,\n 178,\n 325,\n 311,\n 293,\n 271,\n 16,\n 147,\n 72,\n 69,\n 135,\n 127,\n 118,\n 112,\n 210,\n 200,\n 188,\n 352,\n 323,\n 306,\n 285,\n 540,\n 14,\n 263,\n 66,\n 129,\n 126,\n 119,\n 114,\n 214,\n 202,\n 192,\n 180,\n 341,\n 317,\n 301,\n 281,\n 262,\n 12,\n 249,\n 123,\n 121,\n 117,\n 113,\n 215,\n 206,\n 195,\n 185,\n 347,\n 330,\n 308,\n 291,\n 272,\n 520,\n 10,\n 435,\n 115,\n 111,\n 109,\n 211,\n 203,\n 196,\n 187,\n 353,\n 332,\n 313,\n 298,\n 283,\n 531,\n 381,\n 17,\n 427,\n 212,\n 208,\n 205,\n 201,\n 193,\n 186,\n 177,\n 169,\n 320,\n 303,\n 286,\n 268,\n 514,\n 377,\n 16,\n 335,\n 199,\n 197,\n 191,\n 189,\n 181,\n 174,\n 333,\n 321,\n 305,\n 289,\n 275,\n 521,\n 379,\n 371,\n 11,\n 668,\n 184,\n 183,\n 179,\n 175,\n 344,\n 331,\n 314,\n 304,\n 290,\n 277,\n 530,\n 383,\n 373,\n 366,\n 10,\n 652,\n 346,\n 171,\n 168,\n 164,\n 318,\n 309,\n 299,\n 287,\n 276,\n 263,\n 513,\n 375,\n 368,\n 362,\n 6,\n 648,\n 322,\n 316,\n 312,\n 307,\n 302,\n 292,\n 284,\n 269,\n 261,\n 512,\n 376,\n 370,\n 364,\n 359,\n 4,\n 620,\n 300,\n 296,\n 294,\n 288,\n 282,\n 273,\n 266,\n 515,\n 380,\n 374,\n 369,\n 365,\n 361,\n 357,\n 2,\n 1033,\n 280,\n 278,\n 274,\n 267,\n 264,\n 259,\n 382,\n 378,\n 372,\n 367,\n 363,\n 360,\n 358,\n 356,\n 0,\n 43,\n 20,\n 19,\n 17,\n 15,\n 13,\n 11,\n 9,\n 7,\n 6,\n 4,\n 7,\n 5,\n 3,\n 1,\n 3\n];\nTables$1.t32HB = [\n 1 << 0,\n 5 << 1,\n 4 << 1,\n 5 << 2,\n 6 << 1,\n 5 << 2,\n 4 << 2,\n 4 << 3,\n 7 << 1,\n 3 << 2,\n 6 << 2,\n 0 << 3,\n 7 << 2,\n 2 << 3,\n 3 << 3,\n 1 << 4\n];\nTables$1.t33HB = [\n 15 << 0,\n 14 << 1,\n 13 << 1,\n 12 << 2,\n 11 << 1,\n 10 << 2,\n 9 << 2,\n 8 << 3,\n 7 << 1,\n 6 << 2,\n 5 << 2,\n 4 << 3,\n 3 << 2,\n 2 << 3,\n 1 << 3,\n 0 << 4\n];\nTables$1.t1l = [1, 4, 3, 5];\nTables$1.t2l = [1, 4, 7, 4, 5, 7, 6, 7, 8];\nTables$1.t3l = [2, 3, 7, 4, 4, 7, 6, 7, 8];\nTables$1.t5l = [1, 4, 7, 8, 4, 5, 8, 9, 7, 8, 9, 10, 8, 8, 9, 10];\nTables$1.t6l = [3, 4, 6, 8, 4, 4, 6, 7, 5, 6, 7, 8, 7, 7, 8, 9];\nTables$1.t7l = [\n 1,\n 4,\n 7,\n 9,\n 9,\n 10,\n 4,\n 6,\n 8,\n 9,\n 9,\n 10,\n 7,\n 7,\n 9,\n 10,\n 10,\n 11,\n 8,\n 9,\n 10,\n 11,\n 11,\n 11,\n 8,\n 9,\n 10,\n 11,\n 11,\n 12,\n 9,\n 10,\n 11,\n 12,\n 12,\n 12\n];\nTables$1.t8l = [\n 2,\n 4,\n 7,\n 9,\n 9,\n 10,\n 4,\n 4,\n 6,\n 10,\n 10,\n 10,\n 7,\n 6,\n 8,\n 10,\n 10,\n 11,\n 9,\n 10,\n 10,\n 11,\n 11,\n 12,\n 9,\n 9,\n 10,\n 11,\n 12,\n 12,\n 10,\n 10,\n 11,\n 11,\n 13,\n 13\n];\nTables$1.t9l = [\n 3,\n 4,\n 6,\n 7,\n 9,\n 10,\n 4,\n 5,\n 6,\n 7,\n 8,\n 10,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 7,\n 7,\n 8,\n 9,\n 9,\n 10,\n 8,\n 8,\n 9,\n 9,\n 10,\n 11,\n 9,\n 9,\n 10,\n 10,\n 11,\n 11\n];\nTables$1.t10l = [\n 1,\n 4,\n 7,\n 9,\n 10,\n 10,\n 10,\n 11,\n 4,\n 6,\n 8,\n 9,\n 10,\n 11,\n 10,\n 10,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 11,\n 11,\n 8,\n 9,\n 10,\n 11,\n 12,\n 12,\n 11,\n 12,\n 9,\n 10,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 10,\n 11,\n 12,\n 12,\n 13,\n 13,\n 12,\n 13,\n 9,\n 10,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 10,\n 10,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13\n];\nTables$1.t11l = [\n 2,\n 4,\n 6,\n 8,\n 9,\n 10,\n 9,\n 10,\n 4,\n 5,\n 6,\n 8,\n 10,\n 10,\n 9,\n 10,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 10,\n 10,\n 8,\n 8,\n 9,\n 11,\n 10,\n 12,\n 10,\n 11,\n 9,\n 10,\n 10,\n 11,\n 11,\n 12,\n 11,\n 12,\n 9,\n 10,\n 11,\n 12,\n 12,\n 13,\n 12,\n 13,\n 9,\n 9,\n 9,\n 10,\n 11,\n 12,\n 12,\n 12,\n 9,\n 9,\n 10,\n 11,\n 12,\n 12,\n 12,\n 12\n];\nTables$1.t12l = [\n 4,\n 4,\n 6,\n 8,\n 9,\n 10,\n 10,\n 10,\n 4,\n 5,\n 6,\n 7,\n 9,\n 9,\n 10,\n 10,\n 6,\n 6,\n 7,\n 8,\n 9,\n 10,\n 9,\n 10,\n 7,\n 7,\n 8,\n 8,\n 9,\n 10,\n 10,\n 10,\n 8,\n 8,\n 9,\n 9,\n 10,\n 10,\n 10,\n 11,\n 9,\n 9,\n 10,\n 10,\n 10,\n 11,\n 10,\n 11,\n 9,\n 9,\n 9,\n 10,\n 10,\n 11,\n 11,\n 12,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12\n];\nTables$1.t13l = [\n 1,\n 5,\n 7,\n 8,\n 9,\n 10,\n 10,\n 11,\n 10,\n 11,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 4,\n 6,\n 8,\n 9,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 13,\n 14,\n 14,\n 14,\n 7,\n 8,\n 9,\n 10,\n 11,\n 11,\n 12,\n 12,\n 11,\n 12,\n 12,\n 13,\n 13,\n 14,\n 15,\n 15,\n 8,\n 9,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 15,\n 15,\n 9,\n 9,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 12,\n 13,\n 13,\n 14,\n 14,\n 15,\n 15,\n 16,\n 10,\n 10,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 13,\n 15,\n 15,\n 16,\n 16,\n 10,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 15,\n 15,\n 16,\n 16,\n 11,\n 11,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 15,\n 16,\n 18,\n 18,\n 10,\n 10,\n 11,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 16,\n 17,\n 17,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 15,\n 14,\n 15,\n 15,\n 16,\n 16,\n 16,\n 18,\n 17,\n 11,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 15,\n 14,\n 15,\n 16,\n 15,\n 16,\n 17,\n 18,\n 19,\n 12,\n 12,\n 12,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 15,\n 16,\n 17,\n 17,\n 17,\n 18,\n 12,\n 13,\n 13,\n 14,\n 14,\n 15,\n 14,\n 15,\n 16,\n 16,\n 17,\n 17,\n 17,\n 18,\n 18,\n 18,\n 13,\n 13,\n 14,\n 15,\n 15,\n 15,\n 16,\n 16,\n 16,\n 16,\n 16,\n 17,\n 18,\n 17,\n 18,\n 18,\n 14,\n 14,\n 14,\n 15,\n 15,\n 15,\n 17,\n 16,\n 16,\n 19,\n 17,\n 17,\n 17,\n 19,\n 18,\n 18,\n 13,\n 14,\n 15,\n 16,\n 16,\n 16,\n 17,\n 16,\n 17,\n 17,\n 18,\n 18,\n 21,\n 20,\n 21,\n 18\n];\nTables$1.t15l = [\n 3,\n 5,\n 6,\n 8,\n 8,\n 9,\n 10,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 14,\n 5,\n 5,\n 7,\n 8,\n 9,\n 9,\n 10,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 6,\n 7,\n 7,\n 8,\n 9,\n 9,\n 10,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 7,\n 8,\n 8,\n 9,\n 9,\n 10,\n 10,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 8,\n 8,\n 9,\n 9,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 9,\n 9,\n 9,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 10,\n 9,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 14,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 15,\n 14,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 15,\n 12,\n 12,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 15,\n 15,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 14,\n 15,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15\n];\nTables$1.t16_5l = [\n 1,\n 5,\n 7,\n 9,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 11,\n 4,\n 6,\n 8,\n 9,\n 10,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 14,\n 13,\n 14,\n 11,\n 7,\n 8,\n 9,\n 10,\n 11,\n 11,\n 12,\n 12,\n 13,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 12,\n 9,\n 9,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 14,\n 15,\n 15,\n 13,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 15,\n 15,\n 15,\n 12,\n 10,\n 10,\n 11,\n 11,\n 12,\n 13,\n 13,\n 14,\n 13,\n 14,\n 14,\n 15,\n 15,\n 15,\n 16,\n 13,\n 11,\n 11,\n 11,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 16,\n 13,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15,\n 17,\n 17,\n 13,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15,\n 16,\n 16,\n 16,\n 13,\n 12,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15,\n 16,\n 15,\n 16,\n 15,\n 14,\n 12,\n 13,\n 12,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 16,\n 16,\n 16,\n 17,\n 17,\n 16,\n 13,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 15,\n 16,\n 16,\n 16,\n 16,\n 16,\n 16,\n 15,\n 16,\n 14,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15,\n 17,\n 16,\n 16,\n 16,\n 16,\n 18,\n 14,\n 15,\n 14,\n 14,\n 14,\n 15,\n 15,\n 16,\n 16,\n 16,\n 18,\n 17,\n 17,\n 17,\n 19,\n 17,\n 14,\n 14,\n 15,\n 13,\n 14,\n 16,\n 16,\n 15,\n 16,\n 16,\n 17,\n 18,\n 17,\n 19,\n 17,\n 16,\n 14,\n 11,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 14,\n 14,\n 14,\n 12\n];\nTables$1.t16l = [\n 1,\n 5,\n 7,\n 9,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 10,\n 4,\n 6,\n 8,\n 9,\n 10,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 14,\n 13,\n 14,\n 10,\n 7,\n 8,\n 9,\n 10,\n 11,\n 11,\n 12,\n 12,\n 13,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 11,\n 9,\n 9,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 14,\n 15,\n 15,\n 12,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 15,\n 15,\n 15,\n 11,\n 10,\n 10,\n 11,\n 11,\n 12,\n 13,\n 13,\n 14,\n 13,\n 14,\n 14,\n 15,\n 15,\n 15,\n 16,\n 12,\n 11,\n 11,\n 11,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 16,\n 12,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15,\n 17,\n 17,\n 12,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15,\n 16,\n 16,\n 16,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15,\n 16,\n 15,\n 16,\n 15,\n 13,\n 12,\n 13,\n 12,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 16,\n 16,\n 16,\n 17,\n 17,\n 16,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 15,\n 16,\n 16,\n 16,\n 16,\n 16,\n 16,\n 15,\n 16,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15,\n 17,\n 16,\n 16,\n 16,\n 16,\n 18,\n 13,\n 15,\n 14,\n 14,\n 14,\n 15,\n 15,\n 16,\n 16,\n 16,\n 18,\n 17,\n 17,\n 17,\n 19,\n 17,\n 13,\n 14,\n 15,\n 13,\n 14,\n 16,\n 16,\n 15,\n 16,\n 16,\n 17,\n 18,\n 17,\n 19,\n 17,\n 16,\n 13,\n 10,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 10\n];\nTables$1.t24l = [\n 4,\n 5,\n 7,\n 8,\n 9,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 10,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 10,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 10,\n 7,\n 7,\n 8,\n 9,\n 9,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 9,\n 8,\n 8,\n 9,\n 9,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 9,\n 9,\n 9,\n 9,\n 10,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 13,\n 9,\n 10,\n 9,\n 10,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 9,\n 10,\n 10,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 9,\n 11,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 10,\n 11,\n 11,\n 11,\n 11,\n 11,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 10,\n 11,\n 11,\n 11,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 10,\n 12,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 10,\n 12,\n 12,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 10,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 13,\n 10,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 10,\n 13,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 10,\n 9,\n 9,\n 9,\n 9,\n 9,\n 9,\n 9,\n 9,\n 9,\n 9,\n 9,\n 10,\n 10,\n 10,\n 10,\n 6\n];\nTables$1.t32l = [\n 1 + 0,\n 4 + 1,\n 4 + 1,\n 5 + 2,\n 4 + 1,\n 6 + 2,\n 5 + 2,\n 6 + 3,\n 4 + 1,\n 5 + 2,\n 5 + 2,\n 6 + 3,\n 5 + 2,\n 6 + 3,\n 6 + 3,\n 6 + 4\n];\nTables$1.t33l = [\n 4 + 0,\n 4 + 1,\n 4 + 1,\n 4 + 2,\n 4 + 1,\n 4 + 2,\n 4 + 2,\n 4 + 3,\n 4 + 1,\n 4 + 2,\n 4 + 2,\n 4 + 3,\n 4 + 2,\n 4 + 3,\n 4 + 3,\n 4 + 4\n];\nTables$1.ht = [\n new HuffCodeTab(0, 0, null, null),\n new HuffCodeTab(2, 0, Tables$1.t1HB, Tables$1.t1l),\n new HuffCodeTab(3, 0, Tables$1.t2HB, Tables$1.t2l),\n new HuffCodeTab(3, 0, Tables$1.t3HB, Tables$1.t3l),\n new HuffCodeTab(0, 0, null, null),\n new HuffCodeTab(4, 0, Tables$1.t5HB, Tables$1.t5l),\n new HuffCodeTab(4, 0, Tables$1.t6HB, Tables$1.t6l),\n new HuffCodeTab(6, 0, Tables$1.t7HB, Tables$1.t7l),\n new HuffCodeTab(6, 0, Tables$1.t8HB, Tables$1.t8l),\n new HuffCodeTab(6, 0, Tables$1.t9HB, Tables$1.t9l),\n new HuffCodeTab(8, 0, Tables$1.t10HB, Tables$1.t10l),\n new HuffCodeTab(8, 0, Tables$1.t11HB, Tables$1.t11l),\n new HuffCodeTab(8, 0, Tables$1.t12HB, Tables$1.t12l),\n new HuffCodeTab(16, 0, Tables$1.t13HB, Tables$1.t13l),\n new HuffCodeTab(0, 0, null, Tables$1.t16_5l),\n new HuffCodeTab(16, 0, Tables$1.t15HB, Tables$1.t15l),\n new HuffCodeTab(1, 1, Tables$1.t16HB, Tables$1.t16l),\n new HuffCodeTab(2, 3, Tables$1.t16HB, Tables$1.t16l),\n new HuffCodeTab(3, 7, Tables$1.t16HB, Tables$1.t16l),\n new HuffCodeTab(4, 15, Tables$1.t16HB, Tables$1.t16l),\n new HuffCodeTab(6, 63, Tables$1.t16HB, Tables$1.t16l),\n new HuffCodeTab(8, 255, Tables$1.t16HB, Tables$1.t16l),\n new HuffCodeTab(10, 1023, Tables$1.t16HB, Tables$1.t16l),\n new HuffCodeTab(13, 8191, Tables$1.t16HB, Tables$1.t16l),\n new HuffCodeTab(4, 15, Tables$1.t24HB, Tables$1.t24l),\n new HuffCodeTab(5, 31, Tables$1.t24HB, Tables$1.t24l),\n new HuffCodeTab(6, 63, Tables$1.t24HB, Tables$1.t24l),\n new HuffCodeTab(7, 127, Tables$1.t24HB, Tables$1.t24l),\n new HuffCodeTab(8, 255, Tables$1.t24HB, Tables$1.t24l),\n new HuffCodeTab(9, 511, Tables$1.t24HB, Tables$1.t24l),\n new HuffCodeTab(11, 2047, Tables$1.t24HB, Tables$1.t24l),\n new HuffCodeTab(13, 8191, Tables$1.t24HB, Tables$1.t24l),\n new HuffCodeTab(0, 0, Tables$1.t32HB, Tables$1.t32l),\n new HuffCodeTab(0, 0, Tables$1.t33HB, Tables$1.t33l)\n];\nTables$1.largetbl = [\n 65540,\n 327685,\n 458759,\n 589832,\n 655369,\n 655370,\n 720906,\n 720907,\n 786443,\n 786444,\n 786444,\n 851980,\n 851980,\n 851980,\n 917517,\n 655370,\n 262149,\n 393222,\n 524295,\n 589832,\n 655369,\n 720906,\n 720906,\n 720907,\n 786443,\n 786443,\n 786444,\n 851980,\n 917516,\n 851980,\n 917516,\n 655370,\n 458759,\n 524295,\n 589832,\n 655369,\n 720905,\n 720906,\n 786442,\n 786443,\n 851979,\n 786443,\n 851979,\n 851980,\n 851980,\n 917516,\n 917517,\n 720905,\n 589832,\n 589832,\n 655369,\n 720905,\n 720906,\n 786442,\n 786442,\n 786443,\n 851979,\n 851979,\n 917515,\n 917516,\n 917516,\n 983052,\n 983052,\n 786441,\n 655369,\n 655369,\n 720905,\n 720906,\n 786442,\n 786442,\n 851978,\n 851979,\n 851979,\n 917515,\n 917516,\n 917516,\n 983052,\n 983052,\n 983053,\n 720905,\n 655370,\n 655369,\n 720906,\n 720906,\n 786442,\n 851978,\n 851979,\n 917515,\n 851979,\n 917515,\n 917516,\n 983052,\n 983052,\n 983052,\n 1048588,\n 786441,\n 720906,\n 720906,\n 720906,\n 786442,\n 851978,\n 851979,\n 851979,\n 851979,\n 917515,\n 917516,\n 917516,\n 917516,\n 983052,\n 983052,\n 1048589,\n 786441,\n 720907,\n 720906,\n 786442,\n 786442,\n 851979,\n 851979,\n 851979,\n 917515,\n 917516,\n 983052,\n 983052,\n 983052,\n 983052,\n 1114125,\n 1114125,\n 786442,\n 720907,\n 786443,\n 786443,\n 851979,\n 851979,\n 851979,\n 917515,\n 917515,\n 983051,\n 983052,\n 983052,\n 983052,\n 1048588,\n 1048589,\n 1048589,\n 786442,\n 786443,\n 786443,\n 786443,\n 851979,\n 851979,\n 917515,\n 917515,\n 983052,\n 983052,\n 983052,\n 983052,\n 1048588,\n 983053,\n 1048589,\n 983053,\n 851978,\n 786444,\n 851979,\n 786443,\n 851979,\n 917515,\n 917516,\n 917516,\n 917516,\n 983052,\n 1048588,\n 1048588,\n 1048589,\n 1114125,\n 1114125,\n 1048589,\n 786442,\n 851980,\n 851980,\n 851979,\n 851979,\n 917515,\n 917516,\n 983052,\n 1048588,\n 1048588,\n 1048588,\n 1048588,\n 1048589,\n 1048589,\n 983053,\n 1048589,\n 851978,\n 851980,\n 917516,\n 917516,\n 917516,\n 917516,\n 983052,\n 983052,\n 983052,\n 983052,\n 1114124,\n 1048589,\n 1048589,\n 1048589,\n 1048589,\n 1179661,\n 851978,\n 983052,\n 917516,\n 917516,\n 917516,\n 983052,\n 983052,\n 1048588,\n 1048588,\n 1048589,\n 1179661,\n 1114125,\n 1114125,\n 1114125,\n 1245197,\n 1114125,\n 851978,\n 917517,\n 983052,\n 851980,\n 917516,\n 1048588,\n 1048588,\n 983052,\n 1048589,\n 1048589,\n 1114125,\n 1179661,\n 1114125,\n 1245197,\n 1114125,\n 1048589,\n 851978,\n 655369,\n 655369,\n 655369,\n 720905,\n 720905,\n 786441,\n 786441,\n 786441,\n 851977,\n 851977,\n 851977,\n 851978,\n 851978,\n 851978,\n 851978,\n 655366\n];\nTables$1.table23 = [\n 65538,\n 262147,\n 458759,\n 262148,\n 327684,\n 458759,\n 393222,\n 458759,\n 524296\n];\nTables$1.table56 = [\n 65539,\n 262148,\n 458758,\n 524296,\n 262148,\n 327684,\n 524294,\n 589831,\n 458757,\n 524294,\n 589831,\n 655368,\n 524295,\n 524295,\n 589832,\n 655369\n];\nTables$1.bitrate_table = [\n [\n 0,\n 8,\n 16,\n 24,\n 32,\n 40,\n 48,\n 56,\n 64,\n 80,\n 96,\n 112,\n 128,\n 144,\n 160,\n -1\n ],\n [\n 0,\n 32,\n 40,\n 48,\n 56,\n 64,\n 80,\n 96,\n 112,\n 128,\n 160,\n 192,\n 224,\n 256,\n 320,\n -1\n ],\n [0, 8, 16, 24, 32, 40, 48, 56, 64, -1, -1, -1, -1, -1, -1, -1]\n];\nTables$1.samplerate_table = [\n [22050, 24e3, 16e3, -1],\n [44100, 48e3, 32e3, -1],\n [11025, 12e3, 8e3, -1]\n];\nTables$1.scfsi_band = [0, 6, 11, 16, 21];\nvar VbrMode$4 = common.VbrMode;\nvar Float = common.Float;\nvar Util$1 = common.Util;\nvar new_float$3 = common.new_float;\nvar new_int$3 = common.new_int;\nvar assert$7 = common.assert;\nQuantizePVT.Q_MAX = 256 + 1;\nQuantizePVT.Q_MAX2 = 116;\nQuantizePVT.LARGE_BITS = 1e5;\nQuantizePVT.IXMAX_VAL = 8206;\nfunction QuantizePVT() {\n var tak = null;\n var rv = null;\n var psy = null;\n this.setModules = function(_tk, _rv, _psy) {\n tak = _tk;\n rv = _rv;\n psy = _psy;\n };\n function POW20(x) {\n return pow20[x + QuantizePVT.Q_MAX2];\n }\n this.IPOW20 = function(x) {\n return ipow20[x];\n };\n var DBL_EPSILON = 2220446049250313e-31;\n var IXMAX_VAL = QuantizePVT.IXMAX_VAL;\n var PRECALC_SIZE = IXMAX_VAL + 2;\n var Q_MAX = QuantizePVT.Q_MAX;\n var Q_MAX2 = QuantizePVT.Q_MAX2;\n var NSATHSCALE = 100;\n this.nr_of_sfb_block = [\n [\n [6, 5, 5, 5],\n [9, 9, 9, 9],\n [6, 9, 9, 9]\n ],\n [\n [6, 5, 7, 3],\n [9, 9, 12, 6],\n [6, 9, 12, 6]\n ],\n [\n [11, 10, 0, 0],\n [18, 18, 0, 0],\n [15, 18, 0, 0]\n ],\n [\n [7, 7, 7, 0],\n [12, 12, 12, 0],\n [6, 15, 12, 0]\n ],\n [\n [6, 6, 6, 3],\n [12, 9, 9, 6],\n [6, 12, 9, 6]\n ],\n [\n [8, 8, 5, 0],\n [15, 12, 9, 0],\n [6, 18, 9, 0]\n ]\n ];\n var pretab = [\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 1,\n 1,\n 1,\n 2,\n 2,\n 3,\n 3,\n 3,\n 2,\n 0\n ];\n this.pretab = pretab;\n this.sfBandIndex = [\n new ScaleFac(\n [\n 0,\n 6,\n 12,\n 18,\n 24,\n 30,\n 36,\n 44,\n 54,\n 66,\n 80,\n 96,\n 116,\n 140,\n 168,\n 200,\n 238,\n 284,\n 336,\n 396,\n 464,\n 522,\n 576\n ],\n [0, 4, 8, 12, 18, 24, 32, 42, 56, 74, 100, 132, 174, 192],\n [0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0]\n ),\n new ScaleFac(\n [\n 0,\n 6,\n 12,\n 18,\n 24,\n 30,\n 36,\n 44,\n 54,\n 66,\n 80,\n 96,\n 114,\n 136,\n 162,\n 194,\n 232,\n 278,\n 332,\n 394,\n 464,\n 540,\n 576\n ],\n [0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 136, 180, 192],\n [0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0]\n ),\n new ScaleFac(\n [\n 0,\n 6,\n 12,\n 18,\n 24,\n 30,\n 36,\n 44,\n 54,\n 66,\n 80,\n 96,\n 116,\n 140,\n 168,\n 200,\n 238,\n 284,\n 336,\n 396,\n 464,\n 522,\n 576\n ],\n [0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 134, 174, 192],\n [0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0]\n ),\n new ScaleFac(\n [\n 0,\n 4,\n 8,\n 12,\n 16,\n 20,\n 24,\n 30,\n 36,\n 44,\n 52,\n 62,\n 74,\n 90,\n 110,\n 134,\n 162,\n 196,\n 238,\n 288,\n 342,\n 418,\n 576\n ],\n [0, 4, 8, 12, 16, 22, 30, 40, 52, 66, 84, 106, 136, 192],\n [0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0]\n ),\n new ScaleFac(\n [\n 0,\n 4,\n 8,\n 12,\n 16,\n 20,\n 24,\n 30,\n 36,\n 42,\n 50,\n 60,\n 72,\n 88,\n 106,\n 128,\n 156,\n 190,\n 230,\n 276,\n 330,\n 384,\n 576\n ],\n [0, 4, 8, 12, 16, 22, 28, 38, 50, 64, 80, 100, 126, 192],\n [0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0]\n ),\n new ScaleFac(\n [\n 0,\n 4,\n 8,\n 12,\n 16,\n 20,\n 24,\n 30,\n 36,\n 44,\n 54,\n 66,\n 82,\n 102,\n 126,\n 156,\n 194,\n 240,\n 296,\n 364,\n 448,\n 550,\n 576\n ],\n [0, 4, 8, 12, 16, 22, 30, 42, 58, 78, 104, 138, 180, 192],\n [0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0]\n ),\n new ScaleFac(\n [\n 0,\n 6,\n 12,\n 18,\n 24,\n 30,\n 36,\n 44,\n 54,\n 66,\n 80,\n 96,\n 116,\n 140,\n 168,\n 200,\n 238,\n 284,\n 336,\n 396,\n 464,\n 522,\n 576\n ],\n [\n 0 / 3,\n 12 / 3,\n 24 / 3,\n 36 / 3,\n 54 / 3,\n 78 / 3,\n 108 / 3,\n 144 / 3,\n 186 / 3,\n 240 / 3,\n 312 / 3,\n 402 / 3,\n 522 / 3,\n 576 / 3\n ],\n [0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0]\n ),\n new ScaleFac(\n [\n 0,\n 6,\n 12,\n 18,\n 24,\n 30,\n 36,\n 44,\n 54,\n 66,\n 80,\n 96,\n 116,\n 140,\n 168,\n 200,\n 238,\n 284,\n 336,\n 396,\n 464,\n 522,\n 576\n ],\n [\n 0 / 3,\n 12 / 3,\n 24 / 3,\n 36 / 3,\n 54 / 3,\n 78 / 3,\n 108 / 3,\n 144 / 3,\n 186 / 3,\n 240 / 3,\n 312 / 3,\n 402 / 3,\n 522 / 3,\n 576 / 3\n ],\n [0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0]\n ),\n new ScaleFac(\n [\n 0,\n 12,\n 24,\n 36,\n 48,\n 60,\n 72,\n 88,\n 108,\n 132,\n 160,\n 192,\n 232,\n 280,\n 336,\n 400,\n 476,\n 566,\n 568,\n 570,\n 572,\n 574,\n 576\n ],\n [\n 0 / 3,\n 24 / 3,\n 48 / 3,\n 72 / 3,\n 108 / 3,\n 156 / 3,\n 216 / 3,\n 288 / 3,\n 372 / 3,\n 480 / 3,\n 486 / 3,\n 492 / 3,\n 498 / 3,\n 576 / 3\n ],\n [0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0]\n )\n ];\n var pow20 = new_float$3(Q_MAX + Q_MAX2 + 1);\n var ipow20 = new_float$3(Q_MAX);\n var pow43 = new_float$3(PRECALC_SIZE);\n var adj43 = new_float$3(PRECALC_SIZE);\n this.adj43 = adj43;\n function ATHmdct(gfp, f) {\n var ath = psy.ATHformula(f, gfp);\n ath -= NSATHSCALE;\n ath = Math.pow(10, ath / 10 + gfp.ATHlower);\n return ath;\n }\n function compute_ath(gfp) {\n var ATH_l = gfp.internal_flags.ATH.l;\n var ATH_psfb21 = gfp.internal_flags.ATH.psfb21;\n var ATH_s = gfp.internal_flags.ATH.s;\n var ATH_psfb12 = gfp.internal_flags.ATH.psfb12;\n var gfc = gfp.internal_flags;\n var samp_freq = gfp.out_samplerate;\n for (var sfb = 0; sfb < Encoder.SBMAX_l; sfb++) {\n var start = gfc.scalefac_band.l[sfb];\n var end = gfc.scalefac_band.l[sfb + 1];\n ATH_l[sfb] = Float.MAX_VALUE;\n for (var i = start; i < end; i++) {\n var freq = i * samp_freq / (2 * 576);\n var ATH_f = ATHmdct(gfp, freq);\n ATH_l[sfb] = Math.min(ATH_l[sfb], ATH_f);\n }\n }\n for (var sfb = 0; sfb < Encoder.PSFB21; sfb++) {\n var start = gfc.scalefac_band.psfb21[sfb];\n var end = gfc.scalefac_band.psfb21[sfb + 1];\n ATH_psfb21[sfb] = Float.MAX_VALUE;\n for (var i = start; i < end; i++) {\n var freq = i * samp_freq / (2 * 576);\n var ATH_f = ATHmdct(gfp, freq);\n ATH_psfb21[sfb] = Math.min(ATH_psfb21[sfb], ATH_f);\n }\n }\n for (var sfb = 0; sfb < Encoder.SBMAX_s; sfb++) {\n var start = gfc.scalefac_band.s[sfb];\n var end = gfc.scalefac_band.s[sfb + 1];\n ATH_s[sfb] = Float.MAX_VALUE;\n for (var i = start; i < end; i++) {\n var freq = i * samp_freq / (2 * 192);\n var ATH_f = ATHmdct(gfp, freq);\n ATH_s[sfb] = Math.min(ATH_s[sfb], ATH_f);\n }\n ATH_s[sfb] *= gfc.scalefac_band.s[sfb + 1] - gfc.scalefac_band.s[sfb];\n }\n for (var sfb = 0; sfb < Encoder.PSFB12; sfb++) {\n var start = gfc.scalefac_band.psfb12[sfb];\n var end = gfc.scalefac_band.psfb12[sfb + 1];\n ATH_psfb12[sfb] = Float.MAX_VALUE;\n for (var i = start; i < end; i++) {\n var freq = i * samp_freq / (2 * 192);\n var ATH_f = ATHmdct(gfp, freq);\n ATH_psfb12[sfb] = Math.min(ATH_psfb12[sfb], ATH_f);\n }\n ATH_psfb12[sfb] *= gfc.scalefac_band.s[13] - gfc.scalefac_band.s[12];\n }\n if (gfp.noATH) {\n for (var sfb = 0; sfb < Encoder.SBMAX_l; sfb++) {\n ATH_l[sfb] = 1e-20;\n }\n for (var sfb = 0; sfb < Encoder.PSFB21; sfb++) {\n ATH_psfb21[sfb] = 1e-20;\n }\n for (var sfb = 0; sfb < Encoder.SBMAX_s; sfb++) {\n ATH_s[sfb] = 1e-20;\n }\n for (var sfb = 0; sfb < Encoder.PSFB12; sfb++) {\n ATH_psfb12[sfb] = 1e-20;\n }\n }\n gfc.ATH.floor = 10 * Math.log10(ATHmdct(gfp, -1));\n }\n this.iteration_init = function(gfp) {\n var gfc = gfp.internal_flags;\n var l3_side = gfc.l3_side;\n var i;\n if (gfc.iteration_init_init == 0) {\n gfc.iteration_init_init = 1;\n l3_side.main_data_begin = 0;\n compute_ath(gfp);\n pow43[0] = 0;\n for (i = 1; i < PRECALC_SIZE; i++)\n pow43[i] = Math.pow(i, 4 / 3);\n for (i = 0; i < PRECALC_SIZE - 1; i++) {\n adj43[i] = i + 1 - Math.pow(0.5 * (pow43[i] + pow43[i + 1]), 0.75);\n }\n adj43[i] = 0.5;\n for (i = 0; i < Q_MAX; i++)\n ipow20[i] = Math.pow(2, (i - 210) * -0.1875);\n for (i = 0; i <= Q_MAX + Q_MAX2; i++) {\n pow20[i] = Math.pow(2, (i - 210 - Q_MAX2) * 0.25);\n }\n tak.huffman_init(gfc);\n {\n var bass, alto, treble, sfb21;\n i = gfp.exp_nspsytune >> 2 & 63;\n if (i >= 32)\n i -= 64;\n bass = Math.pow(10, i / 4 / 10);\n i = gfp.exp_nspsytune >> 8 & 63;\n if (i >= 32)\n i -= 64;\n alto = Math.pow(10, i / 4 / 10);\n i = gfp.exp_nspsytune >> 14 & 63;\n if (i >= 32)\n i -= 64;\n treble = Math.pow(10, i / 4 / 10);\n i = gfp.exp_nspsytune >> 20 & 63;\n if (i >= 32)\n i -= 64;\n sfb21 = treble * Math.pow(10, i / 4 / 10);\n for (i = 0; i < Encoder.SBMAX_l; i++) {\n var f;\n if (i <= 6)\n f = bass;\n else if (i <= 13)\n f = alto;\n else if (i <= 20)\n f = treble;\n else\n f = sfb21;\n gfc.nsPsy.longfact[i] = f;\n }\n for (i = 0; i < Encoder.SBMAX_s; i++) {\n var f;\n if (i <= 5)\n f = bass;\n else if (i <= 10)\n f = alto;\n else if (i <= 11)\n f = treble;\n else\n f = sfb21;\n gfc.nsPsy.shortfact[i] = f;\n }\n }\n }\n };\n this.on_pe = function(gfp, pe, targ_bits, mean_bits, gr, cbr) {\n var gfc = gfp.internal_flags;\n var tbits = 0;\n var bits;\n var add_bits = new_int$3(2);\n var ch;\n var mb = new MeanBits$1(tbits);\n var extra_bits = rv.ResvMaxBits(gfp, mean_bits, mb, cbr);\n tbits = mb.bits;\n var max_bits = tbits + extra_bits;\n if (max_bits > LameInternalFlags$1.MAX_BITS_PER_GRANULE) {\n max_bits = LameInternalFlags$1.MAX_BITS_PER_GRANULE;\n }\n for (bits = 0, ch = 0; ch < gfc.channels_out; ++ch) {\n targ_bits[ch] = Math.min(\n LameInternalFlags$1.MAX_BITS_PER_CHANNEL,\n tbits / gfc.channels_out\n );\n add_bits[ch] = 0 | targ_bits[ch] * pe[gr][ch] / 700 - targ_bits[ch];\n if (add_bits[ch] > mean_bits * 3 / 4)\n add_bits[ch] = mean_bits * 3 / 4;\n if (add_bits[ch] < 0)\n add_bits[ch] = 0;\n if (add_bits[ch] + targ_bits[ch] > LameInternalFlags$1.MAX_BITS_PER_CHANNEL) {\n add_bits[ch] = Math.max(\n 0,\n LameInternalFlags$1.MAX_BITS_PER_CHANNEL - targ_bits[ch]\n );\n }\n bits += add_bits[ch];\n }\n if (bits > extra_bits) {\n for (ch = 0; ch < gfc.channels_out; ++ch) {\n add_bits[ch] = extra_bits * add_bits[ch] / bits;\n }\n }\n for (ch = 0; ch < gfc.channels_out; ++ch) {\n targ_bits[ch] += add_bits[ch];\n extra_bits -= add_bits[ch];\n }\n for (bits = 0, ch = 0; ch < gfc.channels_out; ++ch) {\n bits += targ_bits[ch];\n }\n if (bits > LameInternalFlags$1.MAX_BITS_PER_GRANULE) {\n var sum = 0;\n for (ch = 0; ch < gfc.channels_out; ++ch) {\n targ_bits[ch] *= LameInternalFlags$1.MAX_BITS_PER_GRANULE;\n targ_bits[ch] /= bits;\n sum += targ_bits[ch];\n }\n }\n return max_bits;\n };\n this.reduce_side = function(targ_bits, ms_ener_ratio, mean_bits, max_bits) {\n assert$7(\n targ_bits[0] + targ_bits[1] <= LameInternalFlags$1.MAX_BITS_PER_GRANULE\n );\n var fac = 0.33 * (0.5 - ms_ener_ratio) / 0.5;\n if (fac < 0)\n fac = 0;\n if (fac > 0.5)\n fac = 0.5;\n var move_bits = 0 | fac * 0.5 * (targ_bits[0] + targ_bits[1]);\n if (move_bits > LameInternalFlags$1.MAX_BITS_PER_CHANNEL - targ_bits[0]) {\n move_bits = LameInternalFlags$1.MAX_BITS_PER_CHANNEL - targ_bits[0];\n }\n if (move_bits < 0)\n move_bits = 0;\n if (targ_bits[1] >= 125) {\n if (targ_bits[1] - move_bits > 125) {\n if (targ_bits[0] < mean_bits)\n targ_bits[0] += move_bits;\n targ_bits[1] -= move_bits;\n } else {\n targ_bits[0] += targ_bits[1] - 125;\n targ_bits[1] = 125;\n }\n }\n move_bits = targ_bits[0] + targ_bits[1];\n if (move_bits > max_bits) {\n targ_bits[0] = max_bits * targ_bits[0] / move_bits;\n targ_bits[1] = max_bits * targ_bits[1] / move_bits;\n }\n assert$7(targ_bits[0] <= LameInternalFlags$1.MAX_BITS_PER_CHANNEL);\n assert$7(targ_bits[1] <= LameInternalFlags$1.MAX_BITS_PER_CHANNEL);\n assert$7(\n targ_bits[0] + targ_bits[1] <= LameInternalFlags$1.MAX_BITS_PER_GRANULE\n );\n };\n this.athAdjust = function(a, x, athFloor) {\n var o = 90.30873362;\n var p2 = 94.82444863;\n var u = Util$1.FAST_LOG10_X(x, 10);\n var v = a * a;\n var w = 0;\n u -= athFloor;\n if (v > 1e-20)\n w = 1 + Util$1.FAST_LOG10_X(v, 10 / o);\n if (w < 0)\n w = 0;\n u *= w;\n u += athFloor + o - p2;\n return Math.pow(10, 0.1 * u);\n };\n this.calc_xmin = function(gfp, ratio, cod_info, pxmin) {\n var pxminPos = 0;\n var gfc = gfp.internal_flags;\n var gsfb;\n var j = 0;\n var ath_over = 0;\n var ATH2 = gfc.ATH;\n var xr = cod_info.xr;\n var enable_athaa_fix = gfp.VBR == VbrMode$4.vbr_mtrh ? 1 : 0;\n var masking_lower = gfc.masking_lower;\n if (gfp.VBR == VbrMode$4.vbr_mtrh || gfp.VBR == VbrMode$4.vbr_mt) {\n masking_lower = 1;\n }\n for (gsfb = 0; gsfb < cod_info.psy_lmax; gsfb++) {\n var en0, xmin;\n var rh1, rh2;\n var width, l;\n if (gfp.VBR == VbrMode$4.vbr_rh || gfp.VBR == VbrMode$4.vbr_mtrh) {\n xmin = athAdjust(ATH2.adjust, ATH2.l[gsfb], ATH2.floor);\n } else\n xmin = ATH2.adjust * ATH2.l[gsfb];\n width = cod_info.width[gsfb];\n rh1 = xmin / width;\n rh2 = DBL_EPSILON;\n l = width >> 1;\n en0 = 0;\n do {\n var xa, xb;\n xa = xr[j] * xr[j];\n en0 += xa;\n rh2 += xa < rh1 ? xa : rh1;\n j++;\n xb = xr[j] * xr[j];\n en0 += xb;\n rh2 += xb < rh1 ? xb : rh1;\n j++;\n } while (--l > 0);\n if (en0 > xmin)\n ath_over++;\n if (gsfb == Encoder.SBPSY_l) {\n var x = xmin * gfc.nsPsy.longfact[gsfb];\n if (rh2 < x) {\n rh2 = x;\n }\n }\n if (enable_athaa_fix != 0) {\n xmin = rh2;\n }\n if (!gfp.ATHonly) {\n var e = ratio.en.l[gsfb];\n if (e > 0) {\n var x;\n x = en0 * ratio.thm.l[gsfb] * masking_lower / e;\n if (enable_athaa_fix != 0)\n x *= gfc.nsPsy.longfact[gsfb];\n if (xmin < x)\n xmin = x;\n }\n }\n if (enable_athaa_fix != 0)\n pxmin[pxminPos++] = xmin;\n else\n pxmin[pxminPos++] = xmin * gfc.nsPsy.longfact[gsfb];\n }\n var max_nonzero = 575;\n if (cod_info.block_type != Encoder.SHORT_TYPE) {\n var k = 576;\n while (k-- != 0 && BitStream$1.EQ(xr[k], 0)) {\n max_nonzero = k;\n }\n }\n cod_info.max_nonzero_coeff = max_nonzero;\n for (var sfb = cod_info.sfb_smin; gsfb < cod_info.psymax; sfb++, gsfb += 3) {\n var width, b;\n var tmpATH;\n if (gfp.VBR == VbrMode$4.vbr_rh || gfp.VBR == VbrMode$4.vbr_mtrh) {\n tmpATH = athAdjust(ATH2.adjust, ATH2.s[sfb], ATH2.floor);\n } else\n tmpATH = ATH2.adjust * ATH2.s[sfb];\n width = cod_info.width[gsfb];\n for (b = 0; b < 3; b++) {\n var en0 = 0;\n var xmin;\n var rh1, rh2;\n var l = width >> 1;\n rh1 = tmpATH / width;\n rh2 = DBL_EPSILON;\n do {\n var xa, xb;\n xa = xr[j] * xr[j];\n en0 += xa;\n rh2 += xa < rh1 ? xa : rh1;\n j++;\n xb = xr[j] * xr[j];\n en0 += xb;\n rh2 += xb < rh1 ? xb : rh1;\n j++;\n } while (--l > 0);\n if (en0 > tmpATH)\n ath_over++;\n if (sfb == Encoder.SBPSY_s) {\n var x = tmpATH * gfc.nsPsy.shortfact[sfb];\n if (rh2 < x) {\n rh2 = x;\n }\n }\n if (enable_athaa_fix != 0)\n xmin = rh2;\n else\n xmin = tmpATH;\n if (!gfp.ATHonly && !gfp.ATHshort) {\n var e = ratio.en.s[sfb][b];\n if (e > 0) {\n var x;\n x = en0 * ratio.thm.s[sfb][b] * masking_lower / e;\n if (enable_athaa_fix != 0)\n x *= gfc.nsPsy.shortfact[sfb];\n if (xmin < x)\n xmin = x;\n }\n }\n if (enable_athaa_fix != 0)\n pxmin[pxminPos++] = xmin;\n else\n pxmin[pxminPos++] = xmin * gfc.nsPsy.shortfact[sfb];\n }\n if (gfp.useTemporal) {\n if (pxmin[pxminPos - 3] > pxmin[pxminPos - 3 + 1]) {\n pxmin[pxminPos - 3 + 1] += (pxmin[pxminPos - 3] - pxmin[pxminPos - 3 + 1]) * gfc.decay;\n }\n if (pxmin[pxminPos - 3 + 1] > pxmin[pxminPos - 3 + 2]) {\n pxmin[pxminPos - 3 + 2] += (pxmin[pxminPos - 3 + 1] - pxmin[pxminPos - 3 + 2]) * gfc.decay;\n }\n }\n }\n return ath_over;\n };\n function StartLine(j) {\n this.s = j;\n }\n this.calc_noise_core = function(cod_info, startline, l, step) {\n var noise = 0;\n var j = startline.s;\n var ix = cod_info.l3_enc;\n if (j > cod_info.count1) {\n while (l-- != 0) {\n var temp;\n temp = cod_info.xr[j];\n j++;\n noise += temp * temp;\n temp = cod_info.xr[j];\n j++;\n noise += temp * temp;\n }\n } else if (j > cod_info.big_values) {\n var ix01 = new_float$3(2);\n ix01[0] = 0;\n ix01[1] = step;\n while (l-- != 0) {\n var temp;\n temp = Math.abs(cod_info.xr[j]) - ix01[ix[j]];\n j++;\n noise += temp * temp;\n temp = Math.abs(cod_info.xr[j]) - ix01[ix[j]];\n j++;\n noise += temp * temp;\n }\n } else {\n while (l-- != 0) {\n var temp;\n temp = Math.abs(cod_info.xr[j]) - pow43[ix[j]] * step;\n j++;\n noise += temp * temp;\n temp = Math.abs(cod_info.xr[j]) - pow43[ix[j]] * step;\n j++;\n noise += temp * temp;\n }\n }\n startline.s = j;\n return noise;\n };\n this.calc_noise = function(cod_info, l3_xmin, distort, res, prev_noise) {\n var distortPos = 0;\n var l3_xminPos = 0;\n var sfb;\n var l;\n var over = 0;\n var over_noise_db = 0;\n var tot_noise_db = 0;\n var max_noise = -20;\n var j = 0;\n var scalefac = cod_info.scalefac;\n var scalefacPos = 0;\n res.over_SSD = 0;\n for (sfb = 0; sfb < cod_info.psymax; sfb++) {\n var s = cod_info.global_gain - (scalefac[scalefacPos++] + (cod_info.preflag != 0 ? pretab[sfb] : 0) << cod_info.scalefac_scale + 1) - cod_info.subblock_gain[cod_info.window[sfb]] * 8;\n var noise = 0;\n if (prev_noise != null && prev_noise.step[sfb] == s) {\n noise = prev_noise.noise[sfb];\n j += cod_info.width[sfb];\n distort[distortPos++] = noise / l3_xmin[l3_xminPos++];\n noise = prev_noise.noise_log[sfb];\n } else {\n var step = POW20(s);\n l = cod_info.width[sfb] >> 1;\n if (j + cod_info.width[sfb] > cod_info.max_nonzero_coeff) {\n var usefullsize;\n usefullsize = cod_info.max_nonzero_coeff - j + 1;\n if (usefullsize > 0)\n l = usefullsize >> 1;\n else\n l = 0;\n }\n var sl = new StartLine(j);\n noise = this.calc_noise_core(cod_info, sl, l, step);\n j = sl.s;\n if (prev_noise != null) {\n prev_noise.step[sfb] = s;\n prev_noise.noise[sfb] = noise;\n }\n noise = distort[distortPos++] = noise / l3_xmin[l3_xminPos++];\n noise = Util$1.FAST_LOG10(Math.max(noise, 1e-20));\n if (prev_noise != null) {\n prev_noise.noise_log[sfb] = noise;\n }\n }\n if (prev_noise != null) {\n prev_noise.global_gain = cod_info.global_gain;\n }\n tot_noise_db += noise;\n if (noise > 0) {\n var tmp;\n tmp = Math.max(0 | noise * 10 + 0.5, 1);\n res.over_SSD += tmp * tmp;\n over++;\n over_noise_db += noise;\n }\n max_noise = Math.max(max_noise, noise);\n }\n res.over_count = over;\n res.tot_noise = tot_noise_db;\n res.over_noise = over_noise_db;\n res.max_noise = max_noise;\n return over;\n };\n this.set_pinfo = function(gfp, cod_info, ratio, gr, ch) {\n var gfc = gfp.internal_flags;\n var sfb, sfb2;\n var l;\n var en0, en1;\n var ifqstep = cod_info.scalefac_scale == 0 ? 0.5 : 1;\n var scalefac = cod_info.scalefac;\n var l3_xmin = new_float$3(L3Side.SFBMAX);\n var xfsf = new_float$3(L3Side.SFBMAX);\n var noise = new CalcNoiseResult();\n calc_xmin(gfp, ratio, cod_info, l3_xmin);\n calc_noise(cod_info, l3_xmin, xfsf, noise, null);\n var j = 0;\n sfb2 = cod_info.sfb_lmax;\n if (cod_info.block_type != Encoder.SHORT_TYPE && cod_info.mixed_block_flag == 0) {\n sfb2 = 22;\n }\n for (sfb = 0; sfb < sfb2; sfb++) {\n var start = gfc.scalefac_band.l[sfb];\n var end = gfc.scalefac_band.l[sfb + 1];\n var bw = end - start;\n for (en0 = 0; j < end; j++)\n en0 += cod_info.xr[j] * cod_info.xr[j];\n en0 /= bw;\n en1 = 1e15;\n gfc.pinfo.en[gr][ch][sfb] = en1 * en0;\n gfc.pinfo.xfsf[gr][ch][sfb] = en1 * l3_xmin[sfb] * xfsf[sfb] / bw;\n if (ratio.en.l[sfb] > 0 && !gfp.ATHonly)\n en0 = en0 / ratio.en.l[sfb];\n else\n en0 = 0;\n gfc.pinfo.thr[gr][ch][sfb] = en1 * Math.max(en0 * ratio.thm.l[sfb], gfc.ATH.l[sfb]);\n gfc.pinfo.LAMEsfb[gr][ch][sfb] = 0;\n if (cod_info.preflag != 0 && sfb >= 11) {\n gfc.pinfo.LAMEsfb[gr][ch][sfb] = -ifqstep * pretab[sfb];\n }\n if (sfb < Encoder.SBPSY_l) {\n assert$7(scalefac[sfb] >= 0);\n gfc.pinfo.LAMEsfb[gr][ch][sfb] -= ifqstep * scalefac[sfb];\n }\n }\n if (cod_info.block_type == Encoder.SHORT_TYPE) {\n sfb2 = sfb;\n for (sfb = cod_info.sfb_smin; sfb < Encoder.SBMAX_s; sfb++) {\n var start = gfc.scalefac_band.s[sfb];\n var end = gfc.scalefac_band.s[sfb + 1];\n var bw = end - start;\n for (var i = 0; i < 3; i++) {\n for (en0 = 0, l = start; l < end; l++) {\n en0 += cod_info.xr[j] * cod_info.xr[j];\n j++;\n }\n en0 = Math.max(en0 / bw, 1e-20);\n en1 = 1e15;\n gfc.pinfo.en_s[gr][ch][3 * sfb + i] = en1 * en0;\n gfc.pinfo.xfsf_s[gr][ch][3 * sfb + i] = en1 * l3_xmin[sfb2] * xfsf[sfb2] / bw;\n if (ratio.en.s[sfb][i] > 0)\n en0 = en0 / ratio.en.s[sfb][i];\n else\n en0 = 0;\n if (gfp.ATHonly || gfp.ATHshort)\n en0 = 0;\n gfc.pinfo.thr_s[gr][ch][3 * sfb + i] = en1 * Math.max(en0 * ratio.thm.s[sfb][i], gfc.ATH.s[sfb]);\n gfc.pinfo.LAMEsfb_s[gr][ch][3 * sfb + i] = -2 * cod_info.subblock_gain[i];\n if (sfb < Encoder.SBPSY_s) {\n gfc.pinfo.LAMEsfb_s[gr][ch][3 * sfb + i] -= ifqstep * scalefac[sfb2];\n }\n sfb2++;\n }\n }\n }\n gfc.pinfo.LAMEqss[gr][ch] = cod_info.global_gain;\n gfc.pinfo.LAMEmainbits[gr][ch] = cod_info.part2_3_length + cod_info.part2_length;\n gfc.pinfo.LAMEsfbits[gr][ch] = cod_info.part2_length;\n gfc.pinfo.over[gr][ch] = noise.over_count;\n gfc.pinfo.max_noise[gr][ch] = noise.max_noise * 10;\n gfc.pinfo.over_noise[gr][ch] = noise.over_noise * 10;\n gfc.pinfo.tot_noise[gr][ch] = noise.tot_noise * 10;\n gfc.pinfo.over_SSD[gr][ch] = noise.over_SSD;\n };\n}\nvar System$4 = common.System;\nvar Arrays$3 = common.Arrays;\nvar new_int$2 = common.new_int;\nvar assert$6 = common.assert;\nfunction Takehiro() {\n var qupvt = null;\n this.qupvt = null;\n this.setModules = function(_qupvt) {\n this.qupvt = _qupvt;\n qupvt = _qupvt;\n };\n function Bits(b) {\n this.bits = 0 | b;\n }\n var subdv_table = [\n [0, 0],\n [0, 0],\n [0, 0],\n [0, 0],\n [0, 0],\n [0, 1],\n [1, 1],\n [1, 1],\n [1, 2],\n [2, 2],\n [2, 3],\n [2, 3],\n [3, 4],\n [3, 4],\n [3, 4],\n [4, 5],\n [4, 5],\n [4, 6],\n [5, 6],\n [5, 6],\n [5, 7],\n [6, 7],\n [6, 7]\n ];\n function quantize_lines_xrpow_01(l, istep, xr, xrPos, ix, ixPos) {\n var compareval0 = (1 - 0.4054) / istep;\n l = l >> 1;\n while (l-- != 0) {\n ix[ixPos++] = compareval0 > xr[xrPos++] ? 0 : 1;\n ix[ixPos++] = compareval0 > xr[xrPos++] ? 0 : 1;\n }\n }\n function quantize_lines_xrpow(l, istep, xr, xrPos, ix, ixPos) {\n l = l >> 1;\n var remaining = l % 2;\n l = l >> 1;\n while (l-- != 0) {\n var x0, x1, x2, x3;\n var rx0, rx1, rx2, rx3;\n x0 = xr[xrPos++] * istep;\n x1 = xr[xrPos++] * istep;\n rx0 = 0 | x0;\n x2 = xr[xrPos++] * istep;\n rx1 = 0 | x1;\n x3 = xr[xrPos++] * istep;\n rx2 = 0 | x2;\n x0 += qupvt.adj43[rx0];\n rx3 = 0 | x3;\n x1 += qupvt.adj43[rx1];\n ix[ixPos++] = 0 | x0;\n x2 += qupvt.adj43[rx2];\n ix[ixPos++] = 0 | x1;\n x3 += qupvt.adj43[rx3];\n ix[ixPos++] = 0 | x2;\n ix[ixPos++] = 0 | x3;\n }\n if (remaining != 0) {\n var x0, x1;\n var rx0, rx1;\n x0 = xr[xrPos++] * istep;\n x1 = xr[xrPos++] * istep;\n rx0 = 0 | x0;\n rx1 = 0 | x1;\n x0 += qupvt.adj43[rx0];\n x1 += qupvt.adj43[rx1];\n ix[ixPos++] = 0 | x0;\n ix[ixPos++] = 0 | x1;\n }\n }\n function quantize_xrpow(xp, pi, istep, codInfo, prevNoise) {\n var sfb;\n var sfbmax;\n var j = 0;\n var prev_data_use;\n var accumulate = 0;\n var accumulate01 = 0;\n var xpPos = 0;\n var iData = pi;\n var iDataPos = 0;\n var acc_iData = iData;\n var acc_iDataPos = 0;\n var acc_xp = xp;\n var acc_xpPos = 0;\n prev_data_use = prevNoise != null && codInfo.global_gain == prevNoise.global_gain;\n if (codInfo.block_type == Encoder.SHORT_TYPE)\n sfbmax = 38;\n else\n sfbmax = 21;\n for (sfb = 0; sfb <= sfbmax; sfb++) {\n var step = -1;\n if (prev_data_use || codInfo.block_type == Encoder.NORM_TYPE) {\n step = codInfo.global_gain - (codInfo.scalefac[sfb] + (codInfo.preflag != 0 ? qupvt.pretab[sfb] : 0) << codInfo.scalefac_scale + 1) - codInfo.subblock_gain[codInfo.window[sfb]] * 8;\n }\n assert$6(codInfo.width[sfb] >= 0);\n if (prev_data_use && prevNoise.step[sfb] == step) {\n if (accumulate != 0) {\n quantize_lines_xrpow(\n accumulate,\n istep,\n acc_xp,\n acc_xpPos,\n acc_iData,\n acc_iDataPos\n );\n accumulate = 0;\n }\n if (accumulate01 != 0) {\n quantize_lines_xrpow_01(\n accumulate01,\n istep,\n acc_xp,\n acc_xpPos,\n acc_iData,\n acc_iDataPos\n );\n accumulate01 = 0;\n }\n } else {\n var l = codInfo.width[sfb];\n if (j + codInfo.width[sfb] > codInfo.max_nonzero_coeff) {\n var usefullsize;\n usefullsize = codInfo.max_nonzero_coeff - j + 1;\n Arrays$3.fill(pi, codInfo.max_nonzero_coeff, 576, 0);\n l = usefullsize;\n if (l < 0) {\n l = 0;\n }\n sfb = sfbmax + 1;\n }\n if (accumulate == 0 && accumulate01 == 0) {\n acc_iData = iData;\n acc_iDataPos = iDataPos;\n acc_xp = xp;\n acc_xpPos = xpPos;\n }\n if (prevNoise != null && prevNoise.sfb_count1 > 0 && sfb >= prevNoise.sfb_count1 && prevNoise.step[sfb] > 0 && step >= prevNoise.step[sfb]) {\n if (accumulate != 0) {\n quantize_lines_xrpow(\n accumulate,\n istep,\n acc_xp,\n acc_xpPos,\n acc_iData,\n acc_iDataPos\n );\n accumulate = 0;\n acc_iData = iData;\n acc_iDataPos = iDataPos;\n acc_xp = xp;\n acc_xpPos = xpPos;\n }\n accumulate01 += l;\n } else {\n if (accumulate01 != 0) {\n quantize_lines_xrpow_01(\n accumulate01,\n istep,\n acc_xp,\n acc_xpPos,\n acc_iData,\n acc_iDataPos\n );\n accumulate01 = 0;\n acc_iData = iData;\n acc_iDataPos = iDataPos;\n acc_xp = xp;\n acc_xpPos = xpPos;\n }\n accumulate += l;\n }\n if (l <= 0) {\n if (accumulate01 != 0) {\n quantize_lines_xrpow_01(\n accumulate01,\n istep,\n acc_xp,\n acc_xpPos,\n acc_iData,\n acc_iDataPos\n );\n accumulate01 = 0;\n }\n if (accumulate != 0) {\n quantize_lines_xrpow(\n accumulate,\n istep,\n acc_xp,\n acc_xpPos,\n acc_iData,\n acc_iDataPos\n );\n accumulate = 0;\n }\n break;\n }\n }\n if (sfb <= sfbmax) {\n iDataPos += codInfo.width[sfb];\n xpPos += codInfo.width[sfb];\n j += codInfo.width[sfb];\n }\n }\n if (accumulate != 0) {\n quantize_lines_xrpow(\n accumulate,\n istep,\n acc_xp,\n acc_xpPos,\n acc_iData,\n acc_iDataPos\n );\n accumulate = 0;\n }\n if (accumulate01 != 0) {\n quantize_lines_xrpow_01(\n accumulate01,\n istep,\n acc_xp,\n acc_xpPos,\n acc_iData,\n acc_iDataPos\n );\n accumulate01 = 0;\n }\n }\n function ix_max(ix, ixPos, endPos) {\n var max1 = 0;\n var max2 = 0;\n do {\n var x1 = ix[ixPos++];\n var x2 = ix[ixPos++];\n if (max1 < x1)\n max1 = x1;\n if (max2 < x2)\n max2 = x2;\n } while (ixPos < endPos);\n if (max1 < max2)\n max1 = max2;\n return max1;\n }\n function count_bit_ESC(ix, ixPos, end, t1, t2, s) {\n var linbits = Tables$1.ht[t1].xlen * 65536 + Tables$1.ht[t2].xlen;\n var sum = 0;\n var sum2;\n do {\n var x = ix[ixPos++];\n var y = ix[ixPos++];\n if (x != 0) {\n if (x > 14) {\n x = 15;\n sum += linbits;\n }\n x *= 16;\n }\n if (y != 0) {\n if (y > 14) {\n y = 15;\n sum += linbits;\n }\n x += y;\n }\n sum += Tables$1.largetbl[x];\n } while (ixPos < end);\n sum2 = sum & 65535;\n sum >>= 16;\n if (sum > sum2) {\n sum = sum2;\n t1 = t2;\n }\n s.bits += sum;\n return t1;\n }\n function count_bit_noESC(ix, ixPos, end, s) {\n var sum1 = 0;\n var hlen1 = Tables$1.ht[1].hlen;\n do {\n var x = ix[ixPos + 0] * 2 + ix[ixPos + 1];\n ixPos += 2;\n sum1 += hlen1[x];\n } while (ixPos < end);\n s.bits += sum1;\n return 1;\n }\n function count_bit_noESC_from2(ix, ixPos, end, t1, s) {\n var sum = 0;\n var sum2;\n var xlen = Tables$1.ht[t1].xlen;\n var hlen;\n if (t1 == 2)\n hlen = Tables$1.table23;\n else\n hlen = Tables$1.table56;\n do {\n var x = ix[ixPos + 0] * xlen + ix[ixPos + 1];\n ixPos += 2;\n sum += hlen[x];\n } while (ixPos < end);\n sum2 = sum & 65535;\n sum >>= 16;\n if (sum > sum2) {\n sum = sum2;\n t1++;\n }\n s.bits += sum;\n return t1;\n }\n function count_bit_noESC_from3(ix, ixPos, end, t1, s) {\n var sum1 = 0;\n var sum2 = 0;\n var sum3 = 0;\n var xlen = Tables$1.ht[t1].xlen;\n var hlen1 = Tables$1.ht[t1].hlen;\n var hlen2 = Tables$1.ht[t1 + 1].hlen;\n var hlen3 = Tables$1.ht[t1 + 2].hlen;\n do {\n var x = ix[ixPos + 0] * xlen + ix[ixPos + 1];\n ixPos += 2;\n sum1 += hlen1[x];\n sum2 += hlen2[x];\n sum3 += hlen3[x];\n } while (ixPos < end);\n var t = t1;\n if (sum1 > sum2) {\n sum1 = sum2;\n t++;\n }\n if (sum1 > sum3) {\n sum1 = sum3;\n t = t1 + 2;\n }\n s.bits += sum1;\n return t;\n }\n var huf_tbl_noESC = [1, 2, 5, 7, 7, 10, 10, 13, 13, 13, 13, 13, 13, 13, 13];\n function choose_table(ix, ixPos, endPos, s) {\n var max = ix_max(ix, ixPos, endPos);\n switch (max) {\n case 0:\n return max;\n case 1:\n return count_bit_noESC(ix, ixPos, endPos, s);\n case 2:\n case 3:\n return count_bit_noESC_from2(\n ix,\n ixPos,\n endPos,\n huf_tbl_noESC[max - 1],\n s\n );\n case 4:\n case 5:\n case 6:\n case 7:\n case 8:\n case 9:\n case 10:\n case 11:\n case 12:\n case 13:\n case 14:\n case 15:\n return count_bit_noESC_from3(\n ix,\n ixPos,\n endPos,\n huf_tbl_noESC[max - 1],\n s\n );\n default:\n if (max > QuantizePVT.IXMAX_VAL) {\n s.bits = QuantizePVT.LARGE_BITS;\n return -1;\n }\n max -= 15;\n var choice2;\n for (choice2 = 24; choice2 < 32; choice2++) {\n if (Tables$1.ht[choice2].linmax >= max) {\n break;\n }\n }\n var choice;\n for (choice = choice2 - 8; choice < 24; choice++) {\n if (Tables$1.ht[choice].linmax >= max) {\n break;\n }\n }\n return count_bit_ESC(ix, ixPos, endPos, choice, choice2, s);\n }\n }\n this.noquant_count_bits = function(gfc, gi, prev_noise) {\n var ix = gi.l3_enc;\n var i = Math.min(576, gi.max_nonzero_coeff + 2 >> 1 << 1);\n if (prev_noise != null)\n prev_noise.sfb_count1 = 0;\n for (; i > 1; i -= 2)\n if ((ix[i - 1] | ix[i - 2]) != 0)\n break;\n gi.count1 = i;\n var a1 = 0;\n var a2 = 0;\n for (; i > 3; i -= 4) {\n var p2;\n if (((ix[i - 1] | ix[i - 2] | ix[i - 3] | ix[i - 4]) & 2147483647) > 1) {\n break;\n }\n p2 = ((ix[i - 4] * 2 + ix[i - 3]) * 2 + ix[i - 2]) * 2 + ix[i - 1];\n a1 += Tables$1.t32l[p2];\n a2 += Tables$1.t33l[p2];\n }\n var bits = a1;\n gi.count1table_select = 0;\n if (a1 > a2) {\n bits = a2;\n gi.count1table_select = 1;\n }\n gi.count1bits = bits;\n gi.big_values = i;\n if (i == 0)\n return bits;\n if (gi.block_type == Encoder.SHORT_TYPE) {\n a1 = 3 * gfc.scalefac_band.s[3];\n if (a1 > gi.big_values)\n a1 = gi.big_values;\n a2 = gi.big_values;\n } else if (gi.block_type == Encoder.NORM_TYPE) {\n a1 = gi.region0_count = gfc.bv_scf[i - 2];\n a2 = gi.region1_count = gfc.bv_scf[i - 1];\n a2 = gfc.scalefac_band.l[a1 + a2 + 2];\n a1 = gfc.scalefac_band.l[a1 + 1];\n if (a2 < i) {\n var bi = new Bits(bits);\n gi.table_select[2] = choose_table(ix, a2, i, bi);\n bits = bi.bits;\n }\n } else {\n gi.region0_count = 7;\n gi.region1_count = Encoder.SBMAX_l - 1 - 7 - 1;\n a1 = gfc.scalefac_band.l[7 + 1];\n a2 = i;\n if (a1 > a2) {\n a1 = a2;\n }\n }\n a1 = Math.min(a1, i);\n a2 = Math.min(a2, i);\n if (a1 > 0) {\n var bi = new Bits(bits);\n gi.table_select[0] = choose_table(ix, 0, a1, bi);\n bits = bi.bits;\n }\n if (a1 < a2) {\n var bi = new Bits(bits);\n gi.table_select[1] = choose_table(ix, a1, a2, bi);\n bits = bi.bits;\n }\n if (gfc.use_best_huffman == 2) {\n gi.part2_3_length = bits;\n best_huffman_divide(gfc, gi);\n bits = gi.part2_3_length;\n }\n if (prev_noise != null) {\n if (gi.block_type == Encoder.NORM_TYPE) {\n var sfb = 0;\n while (gfc.scalefac_band.l[sfb] < gi.big_values) {\n sfb++;\n }\n prev_noise.sfb_count1 = sfb;\n }\n }\n return bits;\n };\n this.count_bits = function(gfc, xr, gi, prev_noise) {\n var ix = gi.l3_enc;\n var w = QuantizePVT.IXMAX_VAL / qupvt.IPOW20(gi.global_gain);\n if (gi.xrpow_max > w)\n return QuantizePVT.LARGE_BITS;\n quantize_xrpow(xr, ix, qupvt.IPOW20(gi.global_gain), gi, prev_noise);\n if ((gfc.substep_shaping & 2) != 0) {\n var j = 0;\n var gain = gi.global_gain + gi.scalefac_scale;\n var roundfac = 0.634521682242439 / qupvt.IPOW20(gain);\n for (var sfb = 0; sfb < gi.sfbmax; sfb++) {\n var width = gi.width[sfb];\n if (gfc.pseudohalf[sfb] == 0) {\n j += width;\n } else {\n var k;\n for (k = j, j += width; k < j; ++k) {\n ix[k] = xr[k] >= roundfac ? ix[k] : 0;\n }\n }\n }\n }\n return this.noquant_count_bits(gfc, gi, prev_noise);\n };\n function recalc_divide_init(gfc, cod_info, ix, r01_bits, r01_div, r0_tbl, r1_tbl) {\n var bigv = cod_info.big_values;\n for (var r0 = 0; r0 <= 7 + 15; r0++) {\n r01_bits[r0] = QuantizePVT.LARGE_BITS;\n }\n for (var r0 = 0; r0 < 16; r0++) {\n var a1 = gfc.scalefac_band.l[r0 + 1];\n if (a1 >= bigv)\n break;\n var r0bits = 0;\n var bi = new Bits(r0bits);\n var r0t = choose_table(ix, 0, a1, bi);\n r0bits = bi.bits;\n for (var r1 = 0; r1 < 8; r1++) {\n var a2 = gfc.scalefac_band.l[r0 + r1 + 2];\n if (a2 >= bigv)\n break;\n var bits = r0bits;\n bi = new Bits(bits);\n var r1t = choose_table(ix, a1, a2, bi);\n bits = bi.bits;\n if (r01_bits[r0 + r1] > bits) {\n r01_bits[r0 + r1] = bits;\n r01_div[r0 + r1] = r0;\n r0_tbl[r0 + r1] = r0t;\n r1_tbl[r0 + r1] = r1t;\n }\n }\n }\n }\n function recalc_divide_sub(gfc, cod_info2, gi, ix, r01_bits, r01_div, r0_tbl, r1_tbl) {\n var bigv = cod_info2.big_values;\n for (var r2 = 2; r2 < Encoder.SBMAX_l + 1; r2++) {\n var a2 = gfc.scalefac_band.l[r2];\n if (a2 >= bigv)\n break;\n var bits = r01_bits[r2 - 2] + cod_info2.count1bits;\n if (gi.part2_3_length <= bits)\n break;\n var bi = new Bits(bits);\n var r2t = choose_table(ix, a2, bigv, bi);\n bits = bi.bits;\n if (gi.part2_3_length <= bits)\n continue;\n gi.assign(cod_info2);\n gi.part2_3_length = bits;\n gi.region0_count = r01_div[r2 - 2];\n gi.region1_count = r2 - 2 - r01_div[r2 - 2];\n gi.table_select[0] = r0_tbl[r2 - 2];\n gi.table_select[1] = r1_tbl[r2 - 2];\n gi.table_select[2] = r2t;\n }\n }\n this.best_huffman_divide = function(gfc, gi) {\n var cod_info2 = new GrInfo();\n var ix = gi.l3_enc;\n var r01_bits = new_int$2(7 + 15 + 1);\n var r01_div = new_int$2(7 + 15 + 1);\n var r0_tbl = new_int$2(7 + 15 + 1);\n var r1_tbl = new_int$2(7 + 15 + 1);\n if (gi.block_type == Encoder.SHORT_TYPE && gfc.mode_gr == 1)\n return;\n cod_info2.assign(gi);\n if (gi.block_type == Encoder.NORM_TYPE) {\n recalc_divide_init(gfc, gi, ix, r01_bits, r01_div, r0_tbl, r1_tbl);\n recalc_divide_sub(\n gfc,\n cod_info2,\n gi,\n ix,\n r01_bits,\n r01_div,\n r0_tbl,\n r1_tbl\n );\n }\n var i = cod_info2.big_values;\n if (i == 0 || (ix[i - 2] | ix[i - 1]) > 1)\n return;\n i = gi.count1 + 2;\n if (i > 576)\n return;\n cod_info2.assign(gi);\n cod_info2.count1 = i;\n var a1 = 0;\n var a2 = 0;\n for (; i > cod_info2.big_values; i -= 4) {\n var p2 = ((ix[i - 4] * 2 + ix[i - 3]) * 2 + ix[i - 2]) * 2 + ix[i - 1];\n a1 += Tables$1.t32l[p2];\n a2 += Tables$1.t33l[p2];\n }\n cod_info2.big_values = i;\n cod_info2.count1table_select = 0;\n if (a1 > a2) {\n a1 = a2;\n cod_info2.count1table_select = 1;\n }\n cod_info2.count1bits = a1;\n if (cod_info2.block_type == Encoder.NORM_TYPE) {\n recalc_divide_sub(\n gfc,\n cod_info2,\n gi,\n ix,\n r01_bits,\n r01_div,\n r0_tbl,\n r1_tbl\n );\n } else {\n cod_info2.part2_3_length = a1;\n a1 = gfc.scalefac_band.l[7 + 1];\n if (a1 > i) {\n a1 = i;\n }\n if (a1 > 0) {\n var bi = new Bits(cod_info2.part2_3_length);\n cod_info2.table_select[0] = choose_table(ix, 0, a1, bi);\n cod_info2.part2_3_length = bi.bits;\n }\n if (i > a1) {\n var bi = new Bits(cod_info2.part2_3_length);\n cod_info2.table_select[1] = choose_table(ix, a1, i, bi);\n cod_info2.part2_3_length = bi.bits;\n }\n if (gi.part2_3_length > cod_info2.part2_3_length)\n gi.assign(cod_info2);\n }\n };\n var slen1_n = [1, 1, 1, 1, 8, 2, 2, 2, 4, 4, 4, 8, 8, 8, 16, 16];\n var slen2_n = [1, 2, 4, 8, 1, 2, 4, 8, 2, 4, 8, 2, 4, 8, 4, 8];\n var slen1_tab = [0, 0, 0, 0, 3, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4];\n var slen2_tab = [0, 1, 2, 3, 0, 1, 2, 3, 1, 2, 3, 1, 2, 3, 2, 3];\n Takehiro.slen1_tab = slen1_tab;\n Takehiro.slen2_tab = slen2_tab;\n function scfsi_calc(ch, l3_side) {\n var sfb;\n var gi = l3_side.tt[1][ch];\n var g0 = l3_side.tt[0][ch];\n for (var i = 0; i < Tables$1.scfsi_band.length - 1; i++) {\n for (sfb = Tables$1.scfsi_band[i]; sfb < Tables$1.scfsi_band[i + 1]; sfb++) {\n if (g0.scalefac[sfb] != gi.scalefac[sfb] && gi.scalefac[sfb] >= 0)\n break;\n }\n if (sfb == Tables$1.scfsi_band[i + 1]) {\n for (sfb = Tables$1.scfsi_band[i]; sfb < Tables$1.scfsi_band[i + 1]; sfb++) {\n gi.scalefac[sfb] = -1;\n }\n l3_side.scfsi[ch][i] = 1;\n }\n }\n var s1 = 0;\n var c1 = 0;\n for (sfb = 0; sfb < 11; sfb++) {\n if (gi.scalefac[sfb] == -1)\n continue;\n c1++;\n if (s1 < gi.scalefac[sfb])\n s1 = gi.scalefac[sfb];\n }\n var s2 = 0;\n var c2 = 0;\n for (; sfb < Encoder.SBPSY_l; sfb++) {\n if (gi.scalefac[sfb] == -1)\n continue;\n c2++;\n if (s2 < gi.scalefac[sfb])\n s2 = gi.scalefac[sfb];\n }\n for (var i = 0; i < 16; i++) {\n if (s1 < slen1_n[i] && s2 < slen2_n[i]) {\n var c = slen1_tab[i] * c1 + slen2_tab[i] * c2;\n if (gi.part2_length > c) {\n gi.part2_length = c;\n gi.scalefac_compress = i;\n }\n }\n }\n }\n this.best_scalefac_store = function(gfc, gr, ch, l3_side) {\n var gi = l3_side.tt[gr][ch];\n var sfb, i, j, l;\n var recalc = 0;\n j = 0;\n for (sfb = 0; sfb < gi.sfbmax; sfb++) {\n var width = gi.width[sfb];\n j += width;\n for (l = -width; l < 0; l++) {\n if (gi.l3_enc[l + j] != 0)\n break;\n }\n if (l == 0)\n gi.scalefac[sfb] = recalc = -2;\n }\n if (gi.scalefac_scale == 0 && gi.preflag == 0) {\n var s = 0;\n for (sfb = 0; sfb < gi.sfbmax; sfb++) {\n if (gi.scalefac[sfb] > 0)\n s |= gi.scalefac[sfb];\n }\n if ((s & 1) == 0 && s != 0) {\n for (sfb = 0; sfb < gi.sfbmax; sfb++) {\n if (gi.scalefac[sfb] > 0)\n gi.scalefac[sfb] >>= 1;\n }\n gi.scalefac_scale = recalc = 1;\n }\n }\n if (gi.preflag == 0 && gi.block_type != Encoder.SHORT_TYPE && gfc.mode_gr == 2) {\n for (sfb = 11; sfb < Encoder.SBPSY_l; sfb++) {\n if (gi.scalefac[sfb] < qupvt.pretab[sfb] && gi.scalefac[sfb] != -2) {\n break;\n }\n }\n if (sfb == Encoder.SBPSY_l) {\n for (sfb = 11; sfb < Encoder.SBPSY_l; sfb++) {\n if (gi.scalefac[sfb] > 0)\n gi.scalefac[sfb] -= qupvt.pretab[sfb];\n }\n gi.preflag = recalc = 1;\n }\n }\n for (i = 0; i < 4; i++)\n l3_side.scfsi[ch][i] = 0;\n if (gfc.mode_gr == 2 && gr == 1 && l3_side.tt[0][ch].block_type != Encoder.SHORT_TYPE && l3_side.tt[1][ch].block_type != Encoder.SHORT_TYPE) {\n scfsi_calc(ch, l3_side);\n recalc = 0;\n }\n for (sfb = 0; sfb < gi.sfbmax; sfb++) {\n if (gi.scalefac[sfb] == -2) {\n gi.scalefac[sfb] = 0;\n }\n }\n if (recalc != 0) {\n if (gfc.mode_gr == 2) {\n this.scale_bitcount(gi);\n } else {\n this.scale_bitcount_lsf(gfc, gi);\n }\n }\n };\n function all_scalefactors_not_negative(scalefac, n) {\n for (var i = 0; i < n; ++i) {\n if (scalefac[i] < 0)\n return false;\n }\n return true;\n }\n var scale_short = [\n 0,\n 18,\n 36,\n 54,\n 54,\n 36,\n 54,\n 72,\n 54,\n 72,\n 90,\n 72,\n 90,\n 108,\n 108,\n 126\n ];\n var scale_mixed = [\n 0,\n 18,\n 36,\n 54,\n 51,\n 35,\n 53,\n 71,\n 52,\n 70,\n 88,\n 69,\n 87,\n 105,\n 104,\n 122\n ];\n var scale_long = [\n 0,\n 10,\n 20,\n 30,\n 33,\n 21,\n 31,\n 41,\n 32,\n 42,\n 52,\n 43,\n 53,\n 63,\n 64,\n 74\n ];\n this.scale_bitcount = function(cod_info) {\n var k;\n var sfb;\n var max_slen1 = 0;\n var max_slen2 = 0;\n var tab;\n var scalefac = cod_info.scalefac;\n assert$6(all_scalefactors_not_negative(scalefac, cod_info.sfbmax));\n if (cod_info.block_type == Encoder.SHORT_TYPE) {\n tab = scale_short;\n if (cod_info.mixed_block_flag != 0)\n tab = scale_mixed;\n } else {\n tab = scale_long;\n if (cod_info.preflag == 0) {\n for (sfb = 11; sfb < Encoder.SBPSY_l; sfb++) {\n if (scalefac[sfb] < qupvt.pretab[sfb])\n break;\n }\n if (sfb == Encoder.SBPSY_l) {\n cod_info.preflag = 1;\n for (sfb = 11; sfb < Encoder.SBPSY_l; sfb++) {\n scalefac[sfb] -= qupvt.pretab[sfb];\n }\n }\n }\n }\n for (sfb = 0; sfb < cod_info.sfbdivide; sfb++) {\n if (max_slen1 < scalefac[sfb])\n max_slen1 = scalefac[sfb];\n }\n for (; sfb < cod_info.sfbmax; sfb++) {\n if (max_slen2 < scalefac[sfb])\n max_slen2 = scalefac[sfb];\n }\n cod_info.part2_length = QuantizePVT.LARGE_BITS;\n for (k = 0; k < 16; k++) {\n if (max_slen1 < slen1_n[k] && max_slen2 < slen2_n[k] && cod_info.part2_length > tab[k]) {\n cod_info.part2_length = tab[k];\n cod_info.scalefac_compress = k;\n }\n }\n return cod_info.part2_length == QuantizePVT.LARGE_BITS;\n };\n var max_range_sfac_tab = [\n [15, 15, 7, 7],\n [15, 15, 7, 0],\n [7, 3, 0, 0],\n [15, 31, 31, 0],\n [7, 7, 7, 0],\n [3, 3, 0, 0]\n ];\n this.scale_bitcount_lsf = function(gfc, cod_info) {\n var table_number, row_in_table, partition, nr_sfb, window2;\n var over;\n var i, sfb;\n var max_sfac = new_int$2(4);\n var scalefac = cod_info.scalefac;\n if (cod_info.preflag != 0)\n table_number = 2;\n else\n table_number = 0;\n for (i = 0; i < 4; i++)\n max_sfac[i] = 0;\n if (cod_info.block_type == Encoder.SHORT_TYPE) {\n row_in_table = 1;\n var partition_table = qupvt.nr_of_sfb_block[table_number][row_in_table];\n for (sfb = 0, partition = 0; partition < 4; partition++) {\n nr_sfb = partition_table[partition] / 3;\n for (i = 0; i < nr_sfb; i++, sfb++) {\n for (window2 = 0; window2 < 3; window2++) {\n if (scalefac[sfb * 3 + window2] > max_sfac[partition]) {\n max_sfac[partition] = scalefac[sfb * 3 + window2];\n }\n }\n }\n }\n } else {\n row_in_table = 0;\n var partition_table = qupvt.nr_of_sfb_block[table_number][row_in_table];\n for (sfb = 0, partition = 0; partition < 4; partition++) {\n nr_sfb = partition_table[partition];\n for (i = 0; i < nr_sfb; i++, sfb++) {\n if (scalefac[sfb] > max_sfac[partition]) {\n max_sfac[partition] = scalefac[sfb];\n }\n }\n }\n }\n for (over = false, partition = 0; partition < 4; partition++) {\n if (max_sfac[partition] > max_range_sfac_tab[table_number][partition]) {\n over = true;\n }\n }\n if (!over) {\n var slen1, slen2, slen3, slen4;\n cod_info.sfb_partition_table = qupvt.nr_of_sfb_block[table_number][row_in_table];\n for (partition = 0; partition < 4; partition++) {\n cod_info.slen[partition] = log2tab[max_sfac[partition]];\n }\n slen1 = cod_info.slen[0];\n slen2 = cod_info.slen[1];\n slen3 = cod_info.slen[2];\n slen4 = cod_info.slen[3];\n switch (table_number) {\n case 0:\n cod_info.scalefac_compress = (slen1 * 5 + slen2 << 4) + (slen3 << 2) + slen4;\n break;\n case 1:\n cod_info.scalefac_compress = 400 + (slen1 * 5 + slen2 << 2) + slen3;\n break;\n case 2:\n cod_info.scalefac_compress = 500 + slen1 * 3 + slen2;\n break;\n default:\n System$4.err.printf(\"intensity stereo not implemented yet\\n\");\n break;\n }\n }\n if (!over) {\n assert$6(cod_info.sfb_partition_table != null);\n cod_info.part2_length = 0;\n for (partition = 0; partition < 4; partition++) {\n cod_info.part2_length += cod_info.slen[partition] * cod_info.sfb_partition_table[partition];\n }\n }\n return over;\n };\n var log2tab = [0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4];\n this.huffman_init = function(gfc) {\n for (var i = 2; i <= 576; i += 2) {\n var scfb_anz = 0;\n var bv_index;\n while (gfc.scalefac_band.l[++scfb_anz] < i)\n ;\n bv_index = subdv_table[scfb_anz][0];\n while (gfc.scalefac_band.l[bv_index + 1] > i)\n bv_index--;\n if (bv_index < 0) {\n bv_index = subdv_table[scfb_anz][0];\n }\n gfc.bv_scf[i - 2] = bv_index;\n bv_index = subdv_table[scfb_anz][1];\n while (gfc.scalefac_band.l[bv_index + gfc.bv_scf[i - 2] + 2] > i) {\n bv_index--;\n }\n if (bv_index < 0) {\n bv_index = subdv_table[scfb_anz][1];\n }\n gfc.bv_scf[i - 1] = bv_index;\n }\n };\n}\nvar System$3 = common.System;\nvar Arrays$2 = common.Arrays;\nvar new_byte$2 = common.new_byte;\nvar new_float_n = common.new_float_n;\nvar new_int$1 = common.new_int;\nvar assert$5 = common.assert;\nBitStream$1.EQ = function(a, b) {\n return Math.abs(a) > Math.abs(b) ? Math.abs(a - b) <= Math.abs(a) * 1e-6 : Math.abs(a - b) <= Math.abs(b) * 1e-6;\n};\nBitStream$1.NEQ = function(a, b) {\n return !BitStream$1.EQ(a, b);\n};\nfunction BitStream$1() {\n var self2 = this;\n var CRC16_POLYNOMIAL = 32773;\n var ga = null;\n var mpg = null;\n var ver = null;\n var vbr = null;\n this.setModules = function(_ga, _mpg, _ver, _vbr) {\n ga = _ga;\n mpg = _mpg;\n ver = _ver;\n vbr = _vbr;\n };\n var buf = null;\n var totbit = 0;\n var bufByteIdx = 0;\n var bufBitIdx = 0;\n this.getframebits = function(gfp) {\n var gfc = gfp.internal_flags;\n var bit_rate;\n if (gfc.bitrate_index != 0) {\n bit_rate = Tables$1.bitrate_table[gfp.version][gfc.bitrate_index];\n } else\n bit_rate = gfp.brate;\n var bytes = 0 | (gfp.version + 1) * 72e3 * bit_rate / gfp.out_samplerate + gfc.padding;\n return 8 * bytes;\n };\n function putheader_bits(gfc) {\n System$3.arraycopy(\n gfc.header[gfc.w_ptr].buf,\n 0,\n buf,\n bufByteIdx,\n gfc.sideinfo_len\n );\n bufByteIdx += gfc.sideinfo_len;\n totbit += gfc.sideinfo_len * 8;\n gfc.w_ptr = gfc.w_ptr + 1 & LameInternalFlags$1.MAX_HEADER_BUF - 1;\n }\n function putbits2(gfc, val, j) {\n while (j > 0) {\n var k;\n if (bufBitIdx == 0) {\n bufBitIdx = 8;\n bufByteIdx++;\n assert$5(gfc.header[gfc.w_ptr].write_timing >= totbit);\n if (gfc.header[gfc.w_ptr].write_timing == totbit) {\n putheader_bits(gfc);\n }\n buf[bufByteIdx] = 0;\n }\n k = Math.min(j, bufBitIdx);\n j -= k;\n bufBitIdx -= k;\n buf[bufByteIdx] |= val >> j << bufBitIdx;\n totbit += k;\n }\n }\n function putbits_noheaders(gfc, val, j) {\n while (j > 0) {\n var k;\n if (bufBitIdx == 0) {\n bufBitIdx = 8;\n bufByteIdx++;\n buf[bufByteIdx] = 0;\n }\n k = Math.min(j, bufBitIdx);\n j -= k;\n bufBitIdx -= k;\n buf[bufByteIdx] |= val >> j << bufBitIdx;\n totbit += k;\n }\n }\n function drain_into_ancillary(gfp, remainingBits) {\n var gfc = gfp.internal_flags;\n var i;\n if (remainingBits >= 8) {\n putbits2(gfc, 76, 8);\n remainingBits -= 8;\n }\n if (remainingBits >= 8) {\n putbits2(gfc, 65, 8);\n remainingBits -= 8;\n }\n if (remainingBits >= 8) {\n putbits2(gfc, 77, 8);\n remainingBits -= 8;\n }\n if (remainingBits >= 8) {\n putbits2(gfc, 69, 8);\n remainingBits -= 8;\n }\n if (remainingBits >= 32) {\n var version2 = ver.getLameShortVersion();\n if (remainingBits >= 32) {\n for (i = 0; i < version2.length && remainingBits >= 8; ++i) {\n remainingBits -= 8;\n putbits2(gfc, version2.charAt(i), 8);\n }\n }\n }\n for (; remainingBits >= 1; remainingBits -= 1) {\n putbits2(gfc, gfc.ancillary_flag, 1);\n gfc.ancillary_flag ^= !gfp.disable_reservoir ? 1 : 0;\n }\n }\n function writeheader(gfc, val, j) {\n var ptr = gfc.header[gfc.h_ptr].ptr;\n while (j > 0) {\n var k = Math.min(j, 8 - (ptr & 7));\n j -= k;\n gfc.header[gfc.h_ptr].buf[ptr >> 3] |= val >> j << 8 - (ptr & 7) - k;\n ptr += k;\n }\n gfc.header[gfc.h_ptr].ptr = ptr;\n }\n function CRC_update(value, crc) {\n value <<= 8;\n for (var i = 0; i < 8; i++) {\n value <<= 1;\n crc <<= 1;\n if (((crc ^ value) & 65536) != 0)\n crc ^= CRC16_POLYNOMIAL;\n }\n return crc;\n }\n this.CRC_writeheader = function(gfc, header) {\n var crc = 65535;\n crc = CRC_update(header[2] & 255, crc);\n crc = CRC_update(header[3] & 255, crc);\n for (var i = 6; i < gfc.sideinfo_len; i++) {\n crc = CRC_update(header[i] & 255, crc);\n }\n header[4] = byte(crc >> 8);\n header[5] = byte(crc & 255);\n };\n function encodeSideInfo2(gfp, bitsPerFrame) {\n var gfc = gfp.internal_flags;\n var l3_side;\n var gr, ch;\n l3_side = gfc.l3_side;\n gfc.header[gfc.h_ptr].ptr = 0;\n Arrays$2.fill(gfc.header[gfc.h_ptr].buf, 0, gfc.sideinfo_len, 0);\n if (gfp.out_samplerate < 16e3)\n writeheader(gfc, 4094, 12);\n else\n writeheader(gfc, 4095, 12);\n writeheader(gfc, gfp.version, 1);\n writeheader(gfc, 4 - 3, 2);\n writeheader(gfc, !gfp.error_protection ? 1 : 0, 1);\n writeheader(gfc, gfc.bitrate_index, 4);\n writeheader(gfc, gfc.samplerate_index, 2);\n writeheader(gfc, gfc.padding, 1);\n writeheader(gfc, gfp.extension, 1);\n writeheader(gfc, gfp.mode.ordinal(), 2);\n writeheader(gfc, gfc.mode_ext, 2);\n writeheader(gfc, gfp.copyright, 1);\n writeheader(gfc, gfp.original, 1);\n writeheader(gfc, gfp.emphasis, 2);\n if (gfp.error_protection) {\n writeheader(gfc, 0, 16);\n }\n if (gfp.version == 1) {\n assert$5(l3_side.main_data_begin >= 0);\n writeheader(gfc, l3_side.main_data_begin, 9);\n if (gfc.channels_out == 2)\n writeheader(gfc, l3_side.private_bits, 3);\n else\n writeheader(gfc, l3_side.private_bits, 5);\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var band;\n for (band = 0; band < 4; band++) {\n writeheader(gfc, l3_side.scfsi[ch][band], 1);\n }\n }\n for (gr = 0; gr < 2; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var gi = l3_side.tt[gr][ch];\n writeheader(gfc, gi.part2_3_length + gi.part2_length, 12);\n writeheader(gfc, gi.big_values / 2, 9);\n writeheader(gfc, gi.global_gain, 8);\n writeheader(gfc, gi.scalefac_compress, 4);\n if (gi.block_type != Encoder.NORM_TYPE) {\n writeheader(gfc, 1, 1);\n writeheader(gfc, gi.block_type, 2);\n writeheader(gfc, gi.mixed_block_flag, 1);\n if (gi.table_select[0] == 14)\n gi.table_select[0] = 16;\n writeheader(gfc, gi.table_select[0], 5);\n if (gi.table_select[1] == 14)\n gi.table_select[1] = 16;\n writeheader(gfc, gi.table_select[1], 5);\n writeheader(gfc, gi.subblock_gain[0], 3);\n writeheader(gfc, gi.subblock_gain[1], 3);\n writeheader(gfc, gi.subblock_gain[2], 3);\n } else {\n writeheader(gfc, 0, 1);\n if (gi.table_select[0] == 14)\n gi.table_select[0] = 16;\n writeheader(gfc, gi.table_select[0], 5);\n if (gi.table_select[1] == 14)\n gi.table_select[1] = 16;\n writeheader(gfc, gi.table_select[1], 5);\n if (gi.table_select[2] == 14)\n gi.table_select[2] = 16;\n writeheader(gfc, gi.table_select[2], 5);\n assert$5(gi.region0_count >= 0 && gi.region0_count < 16);\n assert$5(gi.region1_count >= 0 && gi.region1_count < 8);\n writeheader(gfc, gi.region0_count, 4);\n writeheader(gfc, gi.region1_count, 3);\n }\n writeheader(gfc, gi.preflag, 1);\n writeheader(gfc, gi.scalefac_scale, 1);\n writeheader(gfc, gi.count1table_select, 1);\n }\n }\n } else {\n assert$5(l3_side.main_data_begin >= 0);\n writeheader(gfc, l3_side.main_data_begin, 8);\n writeheader(gfc, l3_side.private_bits, gfc.channels_out);\n gr = 0;\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var gi = l3_side.tt[gr][ch];\n writeheader(gfc, gi.part2_3_length + gi.part2_length, 12);\n writeheader(gfc, gi.big_values / 2, 9);\n writeheader(gfc, gi.global_gain, 8);\n writeheader(gfc, gi.scalefac_compress, 9);\n if (gi.block_type != Encoder.NORM_TYPE) {\n writeheader(gfc, 1, 1);\n writeheader(gfc, gi.block_type, 2);\n writeheader(gfc, gi.mixed_block_flag, 1);\n if (gi.table_select[0] == 14)\n gi.table_select[0] = 16;\n writeheader(gfc, gi.table_select[0], 5);\n if (gi.table_select[1] == 14)\n gi.table_select[1] = 16;\n writeheader(gfc, gi.table_select[1], 5);\n writeheader(gfc, gi.subblock_gain[0], 3);\n writeheader(gfc, gi.subblock_gain[1], 3);\n writeheader(gfc, gi.subblock_gain[2], 3);\n } else {\n writeheader(gfc, 0, 1);\n if (gi.table_select[0] == 14)\n gi.table_select[0] = 16;\n writeheader(gfc, gi.table_select[0], 5);\n if (gi.table_select[1] == 14)\n gi.table_select[1] = 16;\n writeheader(gfc, gi.table_select[1], 5);\n if (gi.table_select[2] == 14)\n gi.table_select[2] = 16;\n writeheader(gfc, gi.table_select[2], 5);\n assert$5(gi.region0_count >= 0 && gi.region0_count < 16);\n assert$5(gi.region1_count >= 0 && gi.region1_count < 8);\n writeheader(gfc, gi.region0_count, 4);\n writeheader(gfc, gi.region1_count, 3);\n }\n writeheader(gfc, gi.scalefac_scale, 1);\n writeheader(gfc, gi.count1table_select, 1);\n }\n }\n if (gfp.error_protection) {\n CRC_writeheader(gfc, gfc.header[gfc.h_ptr].buf);\n }\n {\n var old = gfc.h_ptr;\n assert$5(gfc.header[old].ptr == gfc.sideinfo_len * 8);\n gfc.h_ptr = old + 1 & LameInternalFlags$1.MAX_HEADER_BUF - 1;\n gfc.header[gfc.h_ptr].write_timing = gfc.header[old].write_timing + bitsPerFrame;\n if (gfc.h_ptr == gfc.w_ptr) {\n System$3.err.println(\"Error: MAX_HEADER_BUF too small in bitstream.c \\n\");\n }\n }\n }\n function huffman_coder_count1(gfc, gi) {\n var h2 = Tables$1.ht[gi.count1table_select + 32];\n var i;\n var bits = 0;\n var ix = gi.big_values;\n var xr = gi.big_values;\n assert$5(gi.count1table_select < 2);\n for (i = (gi.count1 - gi.big_values) / 4; i > 0; --i) {\n var huffbits = 0;\n var p2 = 0;\n var v;\n v = gi.l3_enc[ix + 0];\n if (v != 0) {\n p2 += 8;\n if (gi.xr[xr + 0] < 0)\n huffbits++;\n }\n v = gi.l3_enc[ix + 1];\n if (v != 0) {\n p2 += 4;\n huffbits *= 2;\n if (gi.xr[xr + 1] < 0)\n huffbits++;\n }\n v = gi.l3_enc[ix + 2];\n if (v != 0) {\n p2 += 2;\n huffbits *= 2;\n if (gi.xr[xr + 2] < 0)\n huffbits++;\n }\n v = gi.l3_enc[ix + 3];\n if (v != 0) {\n p2++;\n huffbits *= 2;\n if (gi.xr[xr + 3] < 0)\n huffbits++;\n }\n ix += 4;\n xr += 4;\n putbits2(gfc, huffbits + h2.table[p2], h2.hlen[p2]);\n bits += h2.hlen[p2];\n }\n return bits;\n }\n function Huffmancode(gfc, tableindex, start, end, gi) {\n var h2 = Tables$1.ht[tableindex];\n var bits = 0;\n if (tableindex == 0)\n return bits;\n for (var i = start; i < end; i += 2) {\n var cbits = 0;\n var xbits = 0;\n var linbits = h2.xlen;\n var xlen = h2.xlen;\n var ext = 0;\n var x1 = gi.l3_enc[i];\n var x2 = gi.l3_enc[i + 1];\n if (x1 != 0) {\n if (gi.xr[i] < 0)\n ext++;\n cbits--;\n }\n if (tableindex > 15) {\n if (x1 > 14) {\n var linbits_x1 = x1 - 15;\n assert$5(linbits_x1 <= h2.linmax);\n ext |= linbits_x1 << 1;\n xbits = linbits;\n x1 = 15;\n }\n if (x2 > 14) {\n var linbits_x2 = x2 - 15;\n assert$5(linbits_x2 <= h2.linmax);\n ext <<= linbits;\n ext |= linbits_x2;\n xbits += linbits;\n x2 = 15;\n }\n xlen = 16;\n }\n if (x2 != 0) {\n ext <<= 1;\n if (gi.xr[i + 1] < 0)\n ext++;\n cbits--;\n }\n x1 = x1 * xlen + x2;\n xbits -= cbits;\n cbits += h2.hlen[x1];\n putbits2(gfc, h2.table[x1], cbits);\n putbits2(gfc, ext, xbits);\n bits += cbits + xbits;\n }\n return bits;\n }\n function ShortHuffmancodebits(gfc, gi) {\n var region1Start = 3 * gfc.scalefac_band.s[3];\n if (region1Start > gi.big_values)\n region1Start = gi.big_values;\n var bits = Huffmancode(gfc, gi.table_select[0], 0, region1Start, gi);\n bits += Huffmancode(\n gfc,\n gi.table_select[1],\n region1Start,\n gi.big_values,\n gi\n );\n return bits;\n }\n function LongHuffmancodebits(gfc, gi) {\n var bigvalues, bits;\n var region1Start, region2Start;\n bigvalues = gi.big_values;\n var i = gi.region0_count + 1;\n assert$5(i < gfc.scalefac_band.l.length);\n region1Start = gfc.scalefac_band.l[i];\n i += gi.region1_count + 1;\n assert$5(i < gfc.scalefac_band.l.length);\n region2Start = gfc.scalefac_band.l[i];\n if (region1Start > bigvalues)\n region1Start = bigvalues;\n if (region2Start > bigvalues)\n region2Start = bigvalues;\n bits = Huffmancode(gfc, gi.table_select[0], 0, region1Start, gi);\n bits += Huffmancode(gfc, gi.table_select[1], region1Start, region2Start, gi);\n bits += Huffmancode(gfc, gi.table_select[2], region2Start, bigvalues, gi);\n return bits;\n }\n function writeMainData(gfp) {\n var gr;\n var ch;\n var sfb;\n var data_bits;\n var tot_bits = 0;\n var gfc = gfp.internal_flags;\n var l3_side = gfc.l3_side;\n if (gfp.version == 1) {\n for (gr = 0; gr < 2; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var gi = l3_side.tt[gr][ch];\n var slen1 = Takehiro.slen1_tab[gi.scalefac_compress];\n var slen2 = Takehiro.slen2_tab[gi.scalefac_compress];\n data_bits = 0;\n for (sfb = 0; sfb < gi.sfbdivide; sfb++) {\n if (gi.scalefac[sfb] == -1)\n continue;\n putbits2(gfc, gi.scalefac[sfb], slen1);\n data_bits += slen1;\n }\n for (; sfb < gi.sfbmax; sfb++) {\n if (gi.scalefac[sfb] == -1)\n continue;\n putbits2(gfc, gi.scalefac[sfb], slen2);\n data_bits += slen2;\n }\n assert$5(data_bits == gi.part2_length);\n if (gi.block_type == Encoder.SHORT_TYPE) {\n data_bits += ShortHuffmancodebits(gfc, gi);\n } else {\n data_bits += LongHuffmancodebits(gfc, gi);\n }\n data_bits += huffman_coder_count1(gfc, gi);\n assert$5(data_bits == gi.part2_3_length + gi.part2_length);\n tot_bits += data_bits;\n }\n }\n } else {\n gr = 0;\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var gi = l3_side.tt[gr][ch];\n var i;\n var sfb_partition;\n var scale_bits = 0;\n assert$5(gi.sfb_partition_table != null);\n data_bits = 0;\n sfb = 0;\n sfb_partition = 0;\n if (gi.block_type == Encoder.SHORT_TYPE) {\n for (; sfb_partition < 4; sfb_partition++) {\n var sfbs = gi.sfb_partition_table[sfb_partition] / 3;\n var slen = gi.slen[sfb_partition];\n for (i = 0; i < sfbs; i++, sfb++) {\n putbits2(gfc, Math.max(gi.scalefac[sfb * 3 + 0], 0), slen);\n putbits2(gfc, Math.max(gi.scalefac[sfb * 3 + 1], 0), slen);\n putbits2(gfc, Math.max(gi.scalefac[sfb * 3 + 2], 0), slen);\n scale_bits += 3 * slen;\n }\n }\n data_bits += ShortHuffmancodebits(gfc, gi);\n } else {\n for (; sfb_partition < 4; sfb_partition++) {\n var sfbs = gi.sfb_partition_table[sfb_partition];\n var slen = gi.slen[sfb_partition];\n for (i = 0; i < sfbs; i++, sfb++) {\n putbits2(gfc, Math.max(gi.scalefac[sfb], 0), slen);\n scale_bits += slen;\n }\n }\n data_bits += LongHuffmancodebits(gfc, gi);\n }\n data_bits += huffman_coder_count1(gfc, gi);\n assert$5(data_bits == gi.part2_3_length);\n assert$5(scale_bits == gi.part2_length);\n tot_bits += scale_bits + data_bits;\n }\n }\n return tot_bits;\n }\n function TotalBytes() {\n this.total = 0;\n }\n function compute_flushbits(gfp, total_bytes_output) {\n var gfc = gfp.internal_flags;\n var flushbits, remaining_headers;\n var bitsPerFrame;\n var last_ptr, first_ptr;\n first_ptr = gfc.w_ptr;\n last_ptr = gfc.h_ptr - 1;\n if (last_ptr == -1)\n last_ptr = LameInternalFlags$1.MAX_HEADER_BUF - 1;\n flushbits = gfc.header[last_ptr].write_timing - totbit;\n total_bytes_output.total = flushbits;\n if (flushbits >= 0) {\n remaining_headers = 1 + last_ptr - first_ptr;\n if (last_ptr < first_ptr) {\n remaining_headers = 1 + last_ptr - first_ptr + LameInternalFlags$1.MAX_HEADER_BUF;\n }\n flushbits -= remaining_headers * 8 * gfc.sideinfo_len;\n }\n bitsPerFrame = self2.getframebits(gfp);\n flushbits += bitsPerFrame;\n total_bytes_output.total += bitsPerFrame;\n if (total_bytes_output.total % 8 != 0) {\n total_bytes_output.total = 1 + total_bytes_output.total / 8;\n } else\n total_bytes_output.total = total_bytes_output.total / 8;\n total_bytes_output.total += bufByteIdx + 1;\n if (flushbits < 0) {\n System$3.err.println(\"strange error flushing buffer ... \\n\");\n }\n return flushbits;\n }\n this.flush_bitstream = function(gfp) {\n var gfc = gfp.internal_flags;\n var l3_side;\n var flushbits;\n var last_ptr = gfc.h_ptr - 1;\n if (last_ptr == -1)\n last_ptr = LameInternalFlags$1.MAX_HEADER_BUF - 1;\n l3_side = gfc.l3_side;\n if ((flushbits = compute_flushbits(gfp, new TotalBytes())) < 0)\n return;\n drain_into_ancillary(gfp, flushbits);\n assert$5(gfc.header[last_ptr].write_timing + this.getframebits(gfp) == totbit);\n gfc.ResvSize = 0;\n l3_side.main_data_begin = 0;\n if (gfc.findReplayGain) {\n var RadioGain = ga.GetTitleGain(gfc.rgdata);\n assert$5(NEQ(RadioGain, GainAnalysis.GAIN_NOT_ENOUGH_SAMPLES));\n gfc.RadioGain = Math.floor(RadioGain * 10 + 0.5) | 0;\n }\n if (gfc.findPeakSample) {\n gfc.noclipGainChange = Math.ceil(Math.log10(gfc.PeakSample / 32767) * 20 * 10) | 0;\n if (gfc.noclipGainChange > 0) {\n if (EQ(gfp.scale, 1) || EQ(gfp.scale, 0)) {\n gfc.noclipScale = Math.floor(32767 / gfc.PeakSample * 100) / 100;\n } else {\n gfc.noclipScale = -1;\n }\n } else {\n gfc.noclipScale = -1;\n }\n }\n };\n this.add_dummy_byte = function(gfp, val, n) {\n var gfc = gfp.internal_flags;\n var i;\n while (n-- > 0) {\n putbits_noheaders(gfc, val, 8);\n for (i = 0; i < LameInternalFlags$1.MAX_HEADER_BUF; ++i) {\n gfc.header[i].write_timing += 8;\n }\n }\n };\n this.format_bitstream = function(gfp) {\n var gfc = gfp.internal_flags;\n var l3_side;\n l3_side = gfc.l3_side;\n var bitsPerFrame = this.getframebits(gfp);\n drain_into_ancillary(gfp, l3_side.resvDrain_pre);\n encodeSideInfo2(gfp, bitsPerFrame);\n var bits = 8 * gfc.sideinfo_len;\n bits += writeMainData(gfp);\n drain_into_ancillary(gfp, l3_side.resvDrain_post);\n bits += l3_side.resvDrain_post;\n l3_side.main_data_begin += (bitsPerFrame - bits) / 8;\n if (compute_flushbits(gfp, new TotalBytes()) != gfc.ResvSize) {\n System$3.err.println(\"Internal buffer inconsistency. flushbits <> ResvSize\");\n }\n if (l3_side.main_data_begin * 8 != gfc.ResvSize) {\n System$3.err.printf(\n \"bit reservoir error: \\nl3_side.main_data_begin: %d \\nResvoir size: %d \\nresv drain (post) %d \\nresv drain (pre) %d \\nheader and sideinfo: %d \\ndata bits: %d \\ntotal bits: %d (remainder: %d) \\nbitsperframe: %d \\n\",\n 8 * l3_side.main_data_begin,\n gfc.ResvSize,\n l3_side.resvDrain_post,\n l3_side.resvDrain_pre,\n 8 * gfc.sideinfo_len,\n bits - l3_side.resvDrain_post - 8 * gfc.sideinfo_len,\n bits,\n bits % 8,\n bitsPerFrame\n );\n System$3.err.println(\n \"This is a fatal error. It has several possible causes:\"\n );\n System$3.err.println(\n \"90%% LAME compiled with buggy version of gcc using advanced optimizations\"\n );\n System$3.err.println(\" 9%% Your system is overclocked\");\n System$3.err.println(\" 1%% bug in LAME encoding library\");\n gfc.ResvSize = l3_side.main_data_begin * 8;\n }\n if (totbit > 1e9) {\n var i;\n for (i = 0; i < LameInternalFlags$1.MAX_HEADER_BUF; ++i) {\n gfc.header[i].write_timing -= totbit;\n }\n totbit = 0;\n }\n return 0;\n };\n this.copy_buffer = function(gfc, buffer, bufferPos, size2, mp3data) {\n var minimum = bufByteIdx + 1;\n if (minimum <= 0)\n return 0;\n if (size2 != 0 && minimum > size2) {\n return -1;\n }\n System$3.arraycopy(buf, 0, buffer, bufferPos, minimum);\n bufByteIdx = -1;\n bufBitIdx = 0;\n if (mp3data != 0) {\n var crc = new_int$1(1);\n crc[0] = gfc.nMusicCRC;\n vbr.updateMusicCRC(crc, buffer, bufferPos, minimum);\n gfc.nMusicCRC = crc[0];\n if (minimum > 0) {\n gfc.VBR_seek_table.nBytesWritten += minimum;\n }\n if (gfc.decode_on_the_fly) {\n var pcm_buf = new_float_n([2, 1152]);\n var mp3_in = minimum;\n var samples_out = -1;\n var i;\n while (samples_out != 0) {\n samples_out = mpg.hip_decode1_unclipped(\n gfc.hip,\n buffer,\n bufferPos,\n mp3_in,\n pcm_buf[0],\n pcm_buf[1]\n );\n mp3_in = 0;\n if (samples_out == -1) {\n samples_out = 0;\n }\n if (samples_out > 0) {\n if (gfc.findPeakSample) {\n for (i = 0; i < samples_out; i++) {\n if (pcm_buf[0][i] > gfc.PeakSample) {\n gfc.PeakSample = pcm_buf[0][i];\n } else if (-pcm_buf[0][i] > gfc.PeakSample) {\n gfc.PeakSample = -pcm_buf[0][i];\n }\n }\n if (gfc.channels_out > 1) {\n for (i = 0; i < samples_out; i++) {\n if (pcm_buf[1][i] > gfc.PeakSample) {\n gfc.PeakSample = pcm_buf[1][i];\n } else if (-pcm_buf[1][i] > gfc.PeakSample) {\n gfc.PeakSample = -pcm_buf[1][i];\n }\n }\n }\n }\n if (gfc.findReplayGain) {\n if (ga.AnalyzeSamples(\n gfc.rgdata,\n pcm_buf[0],\n 0,\n pcm_buf[1],\n 0,\n samples_out,\n gfc.channels_out\n ) == GainAnalysis.GAIN_ANALYSIS_ERROR) {\n return -6;\n }\n }\n }\n }\n }\n }\n return minimum;\n };\n this.init_bit_stream_w = function(gfc) {\n buf = new_byte$2(Lame$1.LAME_MAXMP3BUFFER);\n gfc.h_ptr = gfc.w_ptr = 0;\n gfc.header[gfc.h_ptr].write_timing = 0;\n bufByteIdx = -1;\n bufBitIdx = 0;\n totbit = 0;\n };\n}\nvar System$2 = common.System;\nvar VbrMode$3 = common.VbrMode;\nvar ShortBlock$1 = common.ShortBlock;\nvar new_float$2 = common.new_float;\nvar new_int_n = common.new_int_n;\nvar new_short_n = common.new_short_n;\nvar assert$4 = common.assert;\nfunction Lame$1() {\n var self2 = this;\n var LAME_MAXALBUMART = 128 * 1024;\n Lame$1.V9 = 410;\n Lame$1.V8 = 420;\n Lame$1.V7 = 430;\n Lame$1.V6 = 440;\n Lame$1.V5 = 450;\n Lame$1.V4 = 460;\n Lame$1.V3 = 470;\n Lame$1.V2 = 480;\n Lame$1.V1 = 490;\n Lame$1.V0 = 500;\n Lame$1.R3MIX = 1e3;\n Lame$1.STANDARD = 1001;\n Lame$1.EXTREME = 1002;\n Lame$1.INSANE = 1003;\n Lame$1.STANDARD_FAST = 1004;\n Lame$1.EXTREME_FAST = 1005;\n Lame$1.MEDIUM = 1006;\n Lame$1.MEDIUM_FAST = 1007;\n var LAME_MAXMP3BUFFER = 16384 + LAME_MAXALBUMART;\n Lame$1.LAME_MAXMP3BUFFER = LAME_MAXMP3BUFFER;\n var ga;\n var bs;\n var p2;\n var qupvt;\n var qu;\n var psy = new PsyModel();\n var vbr;\n var id3;\n var mpglib;\n this.enc = new Encoder();\n this.setModules = function(_ga, _bs, _p, _qupvt, _qu, _vbr, _ver, _id3, _mpglib) {\n ga = _ga;\n bs = _bs;\n p2 = _p;\n qupvt = _qupvt;\n qu = _qu;\n vbr = _vbr;\n id3 = _id3;\n mpglib = _mpglib;\n this.enc.setModules(bs, psy, qupvt, vbr);\n };\n function PSY() {\n this.mask_adjust = 0;\n this.mask_adjust_short = 0;\n this.bo_l_weight = new_float$2(Encoder.SBMAX_l);\n this.bo_s_weight = new_float$2(Encoder.SBMAX_s);\n }\n function LowPassHighPass() {\n this.lowerlimit = 0;\n }\n function BandPass(bitrate, lPass) {\n this.lowpass = lPass;\n }\n var LAME_ID = 4294479419;\n function lame_init_old(gfp) {\n var gfc;\n gfp.class_id = LAME_ID;\n gfc = gfp.internal_flags = new LameInternalFlags$1();\n gfp.mode = MPEGMode.NOT_SET;\n gfp.original = 1;\n gfp.in_samplerate = 44100;\n gfp.num_channels = 2;\n gfp.num_samples = -1;\n gfp.bWriteVbrTag = true;\n gfp.quality = -1;\n gfp.short_blocks = null;\n gfc.subblock_gain = -1;\n gfp.lowpassfreq = 0;\n gfp.highpassfreq = 0;\n gfp.lowpasswidth = -1;\n gfp.highpasswidth = -1;\n gfp.VBR = VbrMode$3.vbr_off;\n gfp.VBR_q = 4;\n gfp.ATHcurve = -1;\n gfp.VBR_mean_bitrate_kbps = 128;\n gfp.VBR_min_bitrate_kbps = 0;\n gfp.VBR_max_bitrate_kbps = 0;\n gfp.VBR_hard_min = 0;\n gfc.VBR_min_bitrate = 1;\n gfc.VBR_max_bitrate = 13;\n gfp.quant_comp = -1;\n gfp.quant_comp_short = -1;\n gfp.msfix = -1;\n gfc.resample_ratio = 1;\n gfc.OldValue[0] = 180;\n gfc.OldValue[1] = 180;\n gfc.CurrentStep[0] = 4;\n gfc.CurrentStep[1] = 4;\n gfc.masking_lower = 1;\n gfc.nsPsy.attackthre = -1;\n gfc.nsPsy.attackthre_s = -1;\n gfp.scale = -1;\n gfp.athaa_type = -1;\n gfp.ATHtype = -1;\n gfp.athaa_loudapprox = -1;\n gfp.athaa_sensitivity = 0;\n gfp.useTemporal = null;\n gfp.interChRatio = -1;\n gfc.mf_samples_to_encode = Encoder.ENCDELAY + Encoder.POSTDELAY;\n gfp.encoder_padding = 0;\n gfc.mf_size = Encoder.ENCDELAY - Encoder.MDCTDELAY;\n gfp.findReplayGain = false;\n gfp.decode_on_the_fly = false;\n gfc.decode_on_the_fly = false;\n gfc.findReplayGain = false;\n gfc.findPeakSample = false;\n gfc.RadioGain = 0;\n gfc.AudiophileGain = 0;\n gfc.noclipGainChange = 0;\n gfc.noclipScale = -1;\n gfp.preset = 0;\n gfp.write_id3tag_automatic = true;\n return 0;\n }\n this.lame_init = function() {\n var gfp = new LameGlobalFlags();\n lame_init_old(gfp);\n gfp.lame_allocated_gfp = 1;\n return gfp;\n };\n function filter_coef(x) {\n if (x > 1)\n return 0;\n if (x <= 0)\n return 1;\n return Math.cos(Math.PI / 2 * x);\n }\n this.nearestBitrateFullIndex = function(bitrate) {\n var full_bitrate_table = [\n 8,\n 16,\n 24,\n 32,\n 40,\n 48,\n 56,\n 64,\n 80,\n 96,\n 112,\n 128,\n 160,\n 192,\n 224,\n 256,\n 320\n ];\n var lower_range = 0;\n var lower_range_kbps = 0;\n var upper_range = 0;\n var upper_range_kbps = 0;\n upper_range_kbps = full_bitrate_table[16];\n upper_range = 16;\n lower_range_kbps = full_bitrate_table[16];\n lower_range = 16;\n for (var b = 0; b < 16; b++) {\n if (Math.max(bitrate, full_bitrate_table[b + 1]) != bitrate) {\n upper_range_kbps = full_bitrate_table[b + 1];\n upper_range = b + 1;\n lower_range_kbps = full_bitrate_table[b];\n lower_range = b;\n break;\n }\n }\n if (upper_range_kbps - bitrate > bitrate - lower_range_kbps) {\n return lower_range;\n }\n return upper_range;\n };\n function optimum_samplefreq(lowpassfreq, input_samplefreq) {\n var suggested_samplefreq = 44100;\n if (input_samplefreq >= 48e3)\n suggested_samplefreq = 48e3;\n else if (input_samplefreq >= 44100)\n suggested_samplefreq = 44100;\n else if (input_samplefreq >= 32e3)\n suggested_samplefreq = 32e3;\n else if (input_samplefreq >= 24e3)\n suggested_samplefreq = 24e3;\n else if (input_samplefreq >= 22050)\n suggested_samplefreq = 22050;\n else if (input_samplefreq >= 16e3)\n suggested_samplefreq = 16e3;\n else if (input_samplefreq >= 12e3)\n suggested_samplefreq = 12e3;\n else if (input_samplefreq >= 11025)\n suggested_samplefreq = 11025;\n else if (input_samplefreq >= 8e3)\n suggested_samplefreq = 8e3;\n if (lowpassfreq == -1)\n return suggested_samplefreq;\n if (lowpassfreq <= 15960)\n suggested_samplefreq = 44100;\n if (lowpassfreq <= 15250)\n suggested_samplefreq = 32e3;\n if (lowpassfreq <= 11220)\n suggested_samplefreq = 24e3;\n if (lowpassfreq <= 9970)\n suggested_samplefreq = 22050;\n if (lowpassfreq <= 7230)\n suggested_samplefreq = 16e3;\n if (lowpassfreq <= 5420)\n suggested_samplefreq = 12e3;\n if (lowpassfreq <= 4510)\n suggested_samplefreq = 11025;\n if (lowpassfreq <= 3970)\n suggested_samplefreq = 8e3;\n if (input_samplefreq < suggested_samplefreq) {\n if (input_samplefreq > 44100) {\n return 48e3;\n }\n if (input_samplefreq > 32e3) {\n return 44100;\n }\n if (input_samplefreq > 24e3) {\n return 32e3;\n }\n if (input_samplefreq > 22050) {\n return 24e3;\n }\n if (input_samplefreq > 16e3) {\n return 22050;\n }\n if (input_samplefreq > 12e3) {\n return 16e3;\n }\n if (input_samplefreq > 11025) {\n return 12e3;\n }\n if (input_samplefreq > 8e3) {\n return 11025;\n }\n return 8e3;\n }\n return suggested_samplefreq;\n }\n function SmpFrqIndex(sample_freq, gpf) {\n switch (sample_freq) {\n case 44100:\n gpf.version = 1;\n return 0;\n case 48e3:\n gpf.version = 1;\n return 1;\n case 32e3:\n gpf.version = 1;\n return 2;\n case 22050:\n gpf.version = 0;\n return 0;\n case 24e3:\n gpf.version = 0;\n return 1;\n case 16e3:\n gpf.version = 0;\n return 2;\n case 11025:\n gpf.version = 0;\n return 0;\n case 12e3:\n gpf.version = 0;\n return 1;\n case 8e3:\n gpf.version = 0;\n return 2;\n default:\n gpf.version = 0;\n return -1;\n }\n }\n function FindNearestBitrate(bRate, version2, samplerate) {\n if (samplerate < 16e3)\n version2 = 2;\n var bitrate = Tables$1.bitrate_table[version2][1];\n for (var i = 2; i <= 14; i++) {\n if (Tables$1.bitrate_table[version2][i] > 0) {\n if (Math.abs(Tables$1.bitrate_table[version2][i] - bRate) < Math.abs(bitrate - bRate)) {\n bitrate = Tables$1.bitrate_table[version2][i];\n }\n }\n }\n return bitrate;\n }\n function BitrateIndex(bRate, version2, samplerate) {\n if (samplerate < 16e3)\n version2 = 2;\n for (var i = 0; i <= 14; i++) {\n if (Tables$1.bitrate_table[version2][i] > 0) {\n if (Tables$1.bitrate_table[version2][i] == bRate) {\n return i;\n }\n }\n }\n return -1;\n }\n function optimum_bandwidth(lh, bitrate) {\n var freq_map = [\n new BandPass(8, 2e3),\n new BandPass(16, 3700),\n new BandPass(24, 3900),\n new BandPass(32, 5500),\n new BandPass(40, 7e3),\n new BandPass(48, 7500),\n new BandPass(56, 1e4),\n new BandPass(64, 11e3),\n new BandPass(80, 13500),\n new BandPass(96, 15100),\n new BandPass(112, 15600),\n new BandPass(128, 17e3),\n new BandPass(160, 17500),\n new BandPass(192, 18600),\n new BandPass(224, 19400),\n new BandPass(256, 19700),\n new BandPass(320, 20500)\n ];\n var table_index = self2.nearestBitrateFullIndex(bitrate);\n lh.lowerlimit = freq_map[table_index].lowpass;\n }\n function lame_init_params_ppflt(gfp) {\n var gfc = gfp.internal_flags;\n var lowpass_band = 32;\n var highpass_band = -1;\n if (gfc.lowpass1 > 0) {\n var minband = 999;\n for (var band = 0; band <= 31; band++) {\n var freq = band / 31;\n if (freq >= gfc.lowpass2) {\n lowpass_band = Math.min(lowpass_band, band);\n }\n if (gfc.lowpass1 < freq && freq < gfc.lowpass2) {\n minband = Math.min(minband, band);\n }\n }\n if (minband == 999) {\n gfc.lowpass1 = (lowpass_band - 0.75) / 31;\n } else {\n gfc.lowpass1 = (minband - 0.75) / 31;\n }\n gfc.lowpass2 = lowpass_band / 31;\n }\n if (gfc.highpass2 > 0) {\n if (gfc.highpass2 < 0.9 * (0.75 / 31)) {\n gfc.highpass1 = 0;\n gfc.highpass2 = 0;\n System$2.err.println(\n \"Warning: highpass filter disabled. highpass frequency too small\\n\"\n );\n }\n }\n if (gfc.highpass2 > 0) {\n var maxband = -1;\n for (var band = 0; band <= 31; band++) {\n var freq = band / 31;\n if (freq <= gfc.highpass1) {\n highpass_band = Math.max(highpass_band, band);\n }\n if (gfc.highpass1 < freq && freq < gfc.highpass2) {\n maxband = Math.max(maxband, band);\n }\n }\n gfc.highpass1 = highpass_band / 31;\n if (maxband == -1) {\n gfc.highpass2 = (highpass_band + 0.75) / 31;\n } else {\n gfc.highpass2 = (maxband + 0.75) / 31;\n }\n }\n for (var band = 0; band < 32; band++) {\n var fc1, fc2;\n var freq = band / 31;\n if (gfc.highpass2 > gfc.highpass1) {\n fc1 = filter_coef(\n (gfc.highpass2 - freq) / (gfc.highpass2 - gfc.highpass1 + 1e-20)\n );\n } else {\n fc1 = 1;\n }\n if (gfc.lowpass2 > gfc.lowpass1) {\n fc2 = filter_coef(\n (freq - gfc.lowpass1) / (gfc.lowpass2 - gfc.lowpass1 + 1e-20)\n );\n } else {\n fc2 = 1;\n }\n gfc.amp_filter[band] = fc1 * fc2;\n }\n }\n function lame_init_qval(gfp) {\n var gfc = gfp.internal_flags;\n switch (gfp.quality) {\n default:\n case 9:\n gfc.psymodel = 0;\n gfc.noise_shaping = 0;\n gfc.noise_shaping_amp = 0;\n gfc.noise_shaping_stop = 0;\n gfc.use_best_huffman = 0;\n gfc.full_outer_loop = 0;\n break;\n case 8:\n gfp.quality = 7;\n case 7:\n gfc.psymodel = 1;\n gfc.noise_shaping = 0;\n gfc.noise_shaping_amp = 0;\n gfc.noise_shaping_stop = 0;\n gfc.use_best_huffman = 0;\n gfc.full_outer_loop = 0;\n break;\n case 6:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0)\n gfc.noise_shaping = 1;\n gfc.noise_shaping_amp = 0;\n gfc.noise_shaping_stop = 0;\n if (gfc.subblock_gain == -1)\n gfc.subblock_gain = 1;\n gfc.use_best_huffman = 0;\n gfc.full_outer_loop = 0;\n break;\n case 5:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0)\n gfc.noise_shaping = 1;\n gfc.noise_shaping_amp = 0;\n gfc.noise_shaping_stop = 0;\n if (gfc.subblock_gain == -1)\n gfc.subblock_gain = 1;\n gfc.use_best_huffman = 0;\n gfc.full_outer_loop = 0;\n break;\n case 4:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0)\n gfc.noise_shaping = 1;\n gfc.noise_shaping_amp = 0;\n gfc.noise_shaping_stop = 0;\n if (gfc.subblock_gain == -1)\n gfc.subblock_gain = 1;\n gfc.use_best_huffman = 1;\n gfc.full_outer_loop = 0;\n break;\n case 3:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0)\n gfc.noise_shaping = 1;\n gfc.noise_shaping_amp = 1;\n gfc.noise_shaping_stop = 1;\n if (gfc.subblock_gain == -1)\n gfc.subblock_gain = 1;\n gfc.use_best_huffman = 1;\n gfc.full_outer_loop = 0;\n break;\n case 2:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0)\n gfc.noise_shaping = 1;\n if (gfc.substep_shaping == 0)\n gfc.substep_shaping = 2;\n gfc.noise_shaping_amp = 1;\n gfc.noise_shaping_stop = 1;\n if (gfc.subblock_gain == -1)\n gfc.subblock_gain = 1;\n gfc.use_best_huffman = 1;\n gfc.full_outer_loop = 0;\n break;\n case 1:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0)\n gfc.noise_shaping = 1;\n if (gfc.substep_shaping == 0)\n gfc.substep_shaping = 2;\n gfc.noise_shaping_amp = 2;\n gfc.noise_shaping_stop = 1;\n if (gfc.subblock_gain == -1)\n gfc.subblock_gain = 1;\n gfc.use_best_huffman = 1;\n gfc.full_outer_loop = 0;\n break;\n case 0:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0)\n gfc.noise_shaping = 1;\n if (gfc.substep_shaping == 0)\n gfc.substep_shaping = 2;\n gfc.noise_shaping_amp = 2;\n gfc.noise_shaping_stop = 1;\n if (gfc.subblock_gain == -1)\n gfc.subblock_gain = 1;\n gfc.use_best_huffman = 1;\n gfc.full_outer_loop = 0;\n break;\n }\n }\n function lame_init_bitstream(gfp) {\n var gfc = gfp.internal_flags;\n gfp.frameNum = 0;\n if (gfp.write_id3tag_automatic) {\n id3.id3tag_write_v2(gfp);\n }\n gfc.bitrate_stereoMode_Hist = new_int_n([16, 4 + 1]);\n gfc.bitrate_blockType_Hist = new_int_n([16, 4 + 1 + 1]);\n gfc.PeakSample = 0;\n if (gfp.bWriteVbrTag)\n vbr.InitVbrTag(gfp);\n }\n this.lame_init_params = function(gfp) {\n var gfc = gfp.internal_flags;\n gfc.Class_ID = 0;\n if (gfc.ATH == null)\n gfc.ATH = new ATH();\n if (gfc.PSY == null)\n gfc.PSY = new PSY();\n if (gfc.rgdata == null)\n gfc.rgdata = new ReplayGain();\n gfc.channels_in = gfp.num_channels;\n if (gfc.channels_in == 1)\n gfp.mode = MPEGMode.MONO;\n gfc.channels_out = gfp.mode == MPEGMode.MONO ? 1 : 2;\n gfc.mode_ext = Encoder.MPG_MD_MS_LR;\n if (gfp.mode == MPEGMode.MONO)\n gfp.force_ms = false;\n if (gfp.VBR == VbrMode$3.vbr_off && gfp.VBR_mean_bitrate_kbps != 128 && gfp.brate == 0) {\n gfp.brate = gfp.VBR_mean_bitrate_kbps;\n }\n if (gfp.VBR == VbrMode$3.vbr_off || gfp.VBR == VbrMode$3.vbr_mtrh || gfp.VBR == VbrMode$3.vbr_mt)\n ;\n else {\n gfp.free_format = false;\n }\n if (gfp.VBR == VbrMode$3.vbr_off && gfp.brate == 0) {\n if (BitStream$1.EQ(gfp.compression_ratio, 0))\n gfp.compression_ratio = 11.025;\n }\n if (gfp.VBR == VbrMode$3.vbr_off && gfp.compression_ratio > 0) {\n if (gfp.out_samplerate == 0) {\n gfp.out_samplerate = map2MP3Frequency(int(0.97 * gfp.in_samplerate));\n }\n gfp.brate = 0 | gfp.out_samplerate * 16 * gfc.channels_out / (1e3 * gfp.compression_ratio);\n gfc.samplerate_index = SmpFrqIndex(gfp.out_samplerate, gfp);\n if (!gfp.free_format) {\n gfp.brate = FindNearestBitrate(\n gfp.brate,\n gfp.version,\n gfp.out_samplerate\n );\n }\n }\n if (gfp.out_samplerate != 0) {\n if (gfp.out_samplerate < 16e3) {\n gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps, 8);\n gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps, 64);\n } else if (gfp.out_samplerate < 32e3) {\n gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps, 8);\n gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps, 160);\n } else {\n gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps, 32);\n gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps, 320);\n }\n }\n if (gfp.lowpassfreq == 0) {\n var lowpass = 16e3;\n switch (gfp.VBR) {\n case VbrMode$3.vbr_off: {\n var lh = new LowPassHighPass();\n optimum_bandwidth(lh, gfp.brate);\n lowpass = lh.lowerlimit;\n break;\n }\n case VbrMode$3.vbr_abr: {\n var lh = new LowPassHighPass();\n optimum_bandwidth(lh, gfp.VBR_mean_bitrate_kbps);\n lowpass = lh.lowerlimit;\n break;\n }\n case VbrMode$3.vbr_rh: {\n var x = [\n 19500,\n 19e3,\n 18600,\n 18e3,\n 17500,\n 16e3,\n 15600,\n 14900,\n 12500,\n 1e4,\n 3950\n ];\n if (gfp.VBR_q >= 0 && gfp.VBR_q <= 9) {\n var a = x[gfp.VBR_q];\n var b = x[gfp.VBR_q + 1];\n var m = gfp.VBR_q_frac;\n lowpass = linear_int(a, b, m);\n } else {\n lowpass = 19500;\n }\n break;\n }\n default: {\n var x = [\n 19500,\n 19e3,\n 18500,\n 18e3,\n 17500,\n 16500,\n 15500,\n 14500,\n 12500,\n 9500,\n 3950\n ];\n if (gfp.VBR_q >= 0 && gfp.VBR_q <= 9) {\n var a = x[gfp.VBR_q];\n var b = x[gfp.VBR_q + 1];\n var m = gfp.VBR_q_frac;\n lowpass = linear_int(a, b, m);\n } else {\n lowpass = 19500;\n }\n }\n }\n if (gfp.mode == MPEGMode.MONO && (gfp.VBR == VbrMode$3.vbr_off || gfp.VBR == VbrMode$3.vbr_abr)) {\n lowpass *= 1.5;\n }\n gfp.lowpassfreq = lowpass | 0;\n }\n if (gfp.out_samplerate == 0) {\n if (2 * gfp.lowpassfreq > gfp.in_samplerate) {\n gfp.lowpassfreq = gfp.in_samplerate / 2;\n }\n gfp.out_samplerate = optimum_samplefreq(\n gfp.lowpassfreq | 0,\n gfp.in_samplerate\n );\n }\n gfp.lowpassfreq = Math.min(20500, gfp.lowpassfreq);\n gfp.lowpassfreq = Math.min(gfp.out_samplerate / 2, gfp.lowpassfreq);\n if (gfp.VBR == VbrMode$3.vbr_off) {\n gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out / (1e3 * gfp.brate);\n }\n if (gfp.VBR == VbrMode$3.vbr_abr) {\n gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out / (1e3 * gfp.VBR_mean_bitrate_kbps);\n }\n if (!gfp.bWriteVbrTag) {\n gfp.findReplayGain = false;\n gfp.decode_on_the_fly = false;\n gfc.findPeakSample = false;\n }\n gfc.findReplayGain = gfp.findReplayGain;\n gfc.decode_on_the_fly = gfp.decode_on_the_fly;\n if (gfc.decode_on_the_fly)\n gfc.findPeakSample = true;\n if (gfc.findReplayGain) {\n if (ga.InitGainAnalysis(gfc.rgdata, gfp.out_samplerate) == GainAnalysis.INIT_GAIN_ANALYSIS_ERROR) {\n gfp.internal_flags = null;\n return -6;\n }\n }\n if (gfc.decode_on_the_fly && !gfp.decode_only) {\n if (gfc.hip != null) {\n mpglib.hip_decode_exit(gfc.hip);\n }\n gfc.hip = mpglib.hip_decode_init();\n }\n gfc.mode_gr = gfp.out_samplerate <= 24e3 ? 1 : 2;\n gfp.framesize = 576 * gfc.mode_gr;\n gfp.encoder_delay = Encoder.ENCDELAY;\n gfc.resample_ratio = gfp.in_samplerate / gfp.out_samplerate;\n switch (gfp.VBR) {\n case VbrMode$3.vbr_mt:\n case VbrMode$3.vbr_rh:\n case VbrMode$3.vbr_mtrh:\n {\n var cmp = [5.7, 6.5, 7.3, 8.2, 10, 11.9, 13, 14, 15, 16.5];\n gfp.compression_ratio = cmp[gfp.VBR_q];\n }\n break;\n case VbrMode$3.vbr_abr:\n gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out / (1e3 * gfp.VBR_mean_bitrate_kbps);\n break;\n default:\n gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out / (1e3 * gfp.brate);\n break;\n }\n if (gfp.mode == MPEGMode.NOT_SET) {\n gfp.mode = MPEGMode.JOINT_STEREO;\n }\n if (gfp.highpassfreq > 0) {\n gfc.highpass1 = 2 * gfp.highpassfreq;\n if (gfp.highpasswidth >= 0) {\n gfc.highpass2 = 2 * (gfp.highpassfreq + gfp.highpasswidth);\n } else {\n gfc.highpass2 = (1 + 0) * 2 * gfp.highpassfreq;\n }\n gfc.highpass1 /= gfp.out_samplerate;\n gfc.highpass2 /= gfp.out_samplerate;\n } else {\n gfc.highpass1 = 0;\n gfc.highpass2 = 0;\n }\n if (gfp.lowpassfreq > 0) {\n gfc.lowpass2 = 2 * gfp.lowpassfreq;\n if (gfp.lowpasswidth >= 0) {\n gfc.lowpass1 = 2 * (gfp.lowpassfreq - gfp.lowpasswidth);\n if (gfc.lowpass1 < 0)\n gfc.lowpass1 = 0;\n } else {\n gfc.lowpass1 = (1 - 0) * 2 * gfp.lowpassfreq;\n }\n gfc.lowpass1 /= gfp.out_samplerate;\n gfc.lowpass2 /= gfp.out_samplerate;\n } else {\n gfc.lowpass1 = 0;\n gfc.lowpass2 = 0;\n }\n lame_init_params_ppflt(gfp);\n gfc.samplerate_index = SmpFrqIndex(gfp.out_samplerate, gfp);\n if (gfc.samplerate_index < 0) {\n gfp.internal_flags = null;\n return -1;\n }\n if (gfp.VBR == VbrMode$3.vbr_off) {\n if (gfp.free_format) {\n gfc.bitrate_index = 0;\n } else {\n gfp.brate = FindNearestBitrate(\n gfp.brate,\n gfp.version,\n gfp.out_samplerate\n );\n gfc.bitrate_index = BitrateIndex(\n gfp.brate,\n gfp.version,\n gfp.out_samplerate\n );\n if (gfc.bitrate_index <= 0) {\n gfp.internal_flags = null;\n return -1;\n }\n }\n } else {\n gfc.bitrate_index = 1;\n }\n if (gfp.analysis)\n gfp.bWriteVbrTag = false;\n if (gfc.pinfo != null)\n gfp.bWriteVbrTag = false;\n bs.init_bit_stream_w(gfc);\n var j = gfc.samplerate_index + 3 * gfp.version + 6 * (gfp.out_samplerate < 16e3 ? 1 : 0);\n for (var i = 0; i < Encoder.SBMAX_l + 1; i++) {\n gfc.scalefac_band.l[i] = qupvt.sfBandIndex[j].l[i];\n }\n for (var i = 0; i < Encoder.PSFB21 + 1; i++) {\n var size2 = (gfc.scalefac_band.l[22] - gfc.scalefac_band.l[21]) / Encoder.PSFB21;\n var start = gfc.scalefac_band.l[21] + i * size2;\n gfc.scalefac_band.psfb21[i] = start;\n }\n gfc.scalefac_band.psfb21[Encoder.PSFB21] = 576;\n for (var i = 0; i < Encoder.SBMAX_s + 1; i++) {\n gfc.scalefac_band.s[i] = qupvt.sfBandIndex[j].s[i];\n }\n for (var i = 0; i < Encoder.PSFB12 + 1; i++) {\n var size2 = (gfc.scalefac_band.s[13] - gfc.scalefac_band.s[12]) / Encoder.PSFB12;\n var start = gfc.scalefac_band.s[12] + i * size2;\n gfc.scalefac_band.psfb12[i] = start;\n }\n gfc.scalefac_band.psfb12[Encoder.PSFB12] = 192;\n if (gfp.version == 1) {\n gfc.sideinfo_len = gfc.channels_out == 1 ? 4 + 17 : 4 + 32;\n } else\n gfc.sideinfo_len = gfc.channels_out == 1 ? 4 + 9 : 4 + 17;\n if (gfp.error_protection)\n gfc.sideinfo_len += 2;\n lame_init_bitstream(gfp);\n gfc.Class_ID = LAME_ID;\n {\n var k;\n for (k = 0; k < 19; k++) {\n gfc.nsPsy.pefirbuf[k] = 700 * gfc.mode_gr * gfc.channels_out;\n }\n if (gfp.ATHtype == -1)\n gfp.ATHtype = 4;\n }\n assert$4(gfp.VBR_q <= 9);\n assert$4(gfp.VBR_q >= 0);\n switch (gfp.VBR) {\n case VbrMode$3.vbr_mt:\n gfp.VBR = VbrMode$3.vbr_mtrh;\n case VbrMode$3.vbr_mtrh: {\n if (gfp.useTemporal == null) {\n gfp.useTemporal = false;\n }\n p2.apply_preset(gfp, 500 - gfp.VBR_q * 10, 0);\n if (gfp.quality < 0)\n gfp.quality = LAME_DEFAULT_QUALITY;\n if (gfp.quality < 5)\n gfp.quality = 0;\n if (gfp.quality > 5)\n gfp.quality = 5;\n gfc.PSY.mask_adjust = gfp.maskingadjust;\n gfc.PSY.mask_adjust_short = gfp.maskingadjust_short;\n if (gfp.experimentalY)\n gfc.sfb21_extra = false;\n else\n gfc.sfb21_extra = gfp.out_samplerate > 44e3;\n gfc.iteration_loop = new VBRNewIterationLoop(qu);\n break;\n }\n case VbrMode$3.vbr_rh: {\n p2.apply_preset(gfp, 500 - gfp.VBR_q * 10, 0);\n gfc.PSY.mask_adjust = gfp.maskingadjust;\n gfc.PSY.mask_adjust_short = gfp.maskingadjust_short;\n if (gfp.experimentalY)\n gfc.sfb21_extra = false;\n else\n gfc.sfb21_extra = gfp.out_samplerate > 44e3;\n if (gfp.quality > 6)\n gfp.quality = 6;\n if (gfp.quality < 0)\n gfp.quality = LAME_DEFAULT_QUALITY;\n gfc.iteration_loop = new VBROldIterationLoop(qu);\n break;\n }\n default: {\n var vbrmode;\n gfc.sfb21_extra = false;\n if (gfp.quality < 0)\n gfp.quality = LAME_DEFAULT_QUALITY;\n vbrmode = gfp.VBR;\n if (vbrmode == VbrMode$3.vbr_off)\n gfp.VBR_mean_bitrate_kbps = gfp.brate;\n p2.apply_preset(gfp, gfp.VBR_mean_bitrate_kbps, 0);\n gfp.VBR = vbrmode;\n gfc.PSY.mask_adjust = gfp.maskingadjust;\n gfc.PSY.mask_adjust_short = gfp.maskingadjust_short;\n if (vbrmode == VbrMode$3.vbr_off) {\n gfc.iteration_loop = new CBRNewIterationLoop(qu);\n } else {\n gfc.iteration_loop = new ABRIterationLoop(qu);\n }\n break;\n }\n }\n assert$4(gfp.scale >= 0);\n if (gfp.VBR != VbrMode$3.vbr_off) {\n gfc.VBR_min_bitrate = 1;\n gfc.VBR_max_bitrate = 14;\n if (gfp.out_samplerate < 16e3)\n gfc.VBR_max_bitrate = 8;\n if (gfp.VBR_min_bitrate_kbps != 0) {\n gfp.VBR_min_bitrate_kbps = FindNearestBitrate(\n gfp.VBR_min_bitrate_kbps,\n gfp.version,\n gfp.out_samplerate\n );\n gfc.VBR_min_bitrate = BitrateIndex(\n gfp.VBR_min_bitrate_kbps,\n gfp.version,\n gfp.out_samplerate\n );\n if (gfc.VBR_min_bitrate < 0)\n return -1;\n }\n if (gfp.VBR_max_bitrate_kbps != 0) {\n gfp.VBR_max_bitrate_kbps = FindNearestBitrate(\n gfp.VBR_max_bitrate_kbps,\n gfp.version,\n gfp.out_samplerate\n );\n gfc.VBR_max_bitrate = BitrateIndex(\n gfp.VBR_max_bitrate_kbps,\n gfp.version,\n gfp.out_samplerate\n );\n if (gfc.VBR_max_bitrate < 0)\n return -1;\n }\n gfp.VBR_min_bitrate_kbps = Tables$1.bitrate_table[gfp.version][gfc.VBR_min_bitrate];\n gfp.VBR_max_bitrate_kbps = Tables$1.bitrate_table[gfp.version][gfc.VBR_max_bitrate];\n gfp.VBR_mean_bitrate_kbps = Math.min(\n Tables$1.bitrate_table[gfp.version][gfc.VBR_max_bitrate],\n gfp.VBR_mean_bitrate_kbps\n );\n gfp.VBR_mean_bitrate_kbps = Math.max(\n Tables$1.bitrate_table[gfp.version][gfc.VBR_min_bitrate],\n gfp.VBR_mean_bitrate_kbps\n );\n }\n if (gfp.tune) {\n gfc.PSY.mask_adjust += gfp.tune_value_a;\n gfc.PSY.mask_adjust_short += gfp.tune_value_a;\n }\n lame_init_qval(gfp);\n assert$4(gfp.scale >= 0);\n if (gfp.athaa_type < 0)\n gfc.ATH.useAdjust = 3;\n else\n gfc.ATH.useAdjust = gfp.athaa_type;\n gfc.ATH.aaSensitivityP = Math.pow(10, gfp.athaa_sensitivity / -10);\n if (gfp.short_blocks == null) {\n gfp.short_blocks = ShortBlock$1.short_block_allowed;\n }\n if (gfp.short_blocks == ShortBlock$1.short_block_allowed && (gfp.mode == MPEGMode.JOINT_STEREO || gfp.mode == MPEGMode.STEREO)) {\n gfp.short_blocks = ShortBlock$1.short_block_coupled;\n }\n if (gfp.quant_comp < 0)\n gfp.quant_comp = 1;\n if (gfp.quant_comp_short < 0)\n gfp.quant_comp_short = 0;\n if (gfp.msfix < 0)\n gfp.msfix = 0;\n gfp.exp_nspsytune = gfp.exp_nspsytune | 1;\n if (gfp.internal_flags.nsPsy.attackthre < 0) {\n gfp.internal_flags.nsPsy.attackthre = PsyModel.NSATTACKTHRE;\n }\n if (gfp.internal_flags.nsPsy.attackthre_s < 0) {\n gfp.internal_flags.nsPsy.attackthre_s = PsyModel.NSATTACKTHRE_S;\n }\n assert$4(gfp.scale >= 0);\n if (gfp.scale < 0)\n gfp.scale = 1;\n if (gfp.ATHtype < 0)\n gfp.ATHtype = 4;\n if (gfp.ATHcurve < 0)\n gfp.ATHcurve = 4;\n if (gfp.athaa_loudapprox < 0)\n gfp.athaa_loudapprox = 2;\n if (gfp.interChRatio < 0)\n gfp.interChRatio = 0;\n if (gfp.useTemporal == null)\n gfp.useTemporal = true;\n gfc.slot_lag = gfc.frac_SpF = 0;\n if (gfp.VBR == VbrMode$3.vbr_off) {\n gfc.slot_lag = gfc.frac_SpF = (gfp.version + 1) * 72e3 * gfp.brate % gfp.out_samplerate | 0;\n }\n qupvt.iteration_init(gfp);\n psy.psymodel_init(gfp);\n assert$4(gfp.scale >= 0);\n return 0;\n };\n function update_inbuffer_size(gfc, nsamples) {\n if (gfc.in_buffer_0 == null || gfc.in_buffer_nsamples < nsamples) {\n gfc.in_buffer_0 = new_float$2(nsamples);\n gfc.in_buffer_1 = new_float$2(nsamples);\n gfc.in_buffer_nsamples = nsamples;\n }\n }\n this.lame_encode_flush = function(gfp, mp3buffer, mp3bufferPos, mp3buffer_size) {\n var gfc = gfp.internal_flags;\n var buffer = new_short_n([2, 1152]);\n var imp3 = 0;\n var mp3count;\n var mp3buffer_size_remaining;\n var end_padding;\n var frames_left;\n var samples_to_encode = gfc.mf_samples_to_encode - Encoder.POSTDELAY;\n var mf_needed = calcNeeded(gfp);\n if (gfc.mf_samples_to_encode < 1) {\n return 0;\n }\n mp3count = 0;\n if (gfp.in_samplerate != gfp.out_samplerate) {\n samples_to_encode += 16 * gfp.out_samplerate / gfp.in_samplerate;\n }\n end_padding = gfp.framesize - samples_to_encode % gfp.framesize;\n if (end_padding < 576)\n end_padding += gfp.framesize;\n gfp.encoder_padding = end_padding;\n frames_left = (samples_to_encode + end_padding) / gfp.framesize;\n while (frames_left > 0 && imp3 >= 0) {\n var bunch = mf_needed - gfc.mf_size;\n var frame_num = gfp.frameNum;\n bunch *= gfp.in_samplerate;\n bunch /= gfp.out_samplerate;\n if (bunch > 1152)\n bunch = 1152;\n if (bunch < 1)\n bunch = 1;\n mp3buffer_size_remaining = mp3buffer_size - mp3count;\n if (mp3buffer_size == 0)\n mp3buffer_size_remaining = 0;\n imp3 = this.lame_encode_buffer(\n gfp,\n buffer[0],\n buffer[1],\n bunch,\n mp3buffer,\n mp3bufferPos,\n mp3buffer_size_remaining\n );\n mp3bufferPos += imp3;\n mp3count += imp3;\n frames_left -= frame_num != gfp.frameNum ? 1 : 0;\n }\n gfc.mf_samples_to_encode = 0;\n if (imp3 < 0) {\n return imp3;\n }\n mp3buffer_size_remaining = mp3buffer_size - mp3count;\n if (mp3buffer_size == 0)\n mp3buffer_size_remaining = 0;\n bs.flush_bitstream(gfp);\n imp3 = bs.copy_buffer(\n gfc,\n mp3buffer,\n mp3bufferPos,\n mp3buffer_size_remaining,\n 1\n );\n if (imp3 < 0) {\n return imp3;\n }\n mp3bufferPos += imp3;\n mp3count += imp3;\n mp3buffer_size_remaining = mp3buffer_size - mp3count;\n if (mp3buffer_size == 0)\n mp3buffer_size_remaining = 0;\n if (gfp.write_id3tag_automatic) {\n id3.id3tag_write_v1(gfp);\n imp3 = bs.copy_buffer(\n gfc,\n mp3buffer,\n mp3bufferPos,\n mp3buffer_size_remaining,\n 0\n );\n if (imp3 < 0) {\n return imp3;\n }\n mp3count += imp3;\n }\n return mp3count;\n };\n this.lame_encode_buffer = function(gfp, buffer_l, buffer_r, nsamples, mp3buf, mp3bufPos, mp3buf_size) {\n var gfc = gfp.internal_flags;\n var in_buffer = [null, null];\n if (gfc.Class_ID != LAME_ID)\n return -3;\n if (nsamples == 0)\n return 0;\n update_inbuffer_size(gfc, nsamples);\n in_buffer[0] = gfc.in_buffer_0;\n in_buffer[1] = gfc.in_buffer_1;\n for (var i = 0; i < nsamples; i++) {\n in_buffer[0][i] = buffer_l[i];\n if (gfc.channels_in > 1)\n in_buffer[1][i] = buffer_r[i];\n }\n return lame_encode_buffer_sample(\n gfp,\n in_buffer[0],\n in_buffer[1],\n nsamples,\n mp3buf,\n mp3bufPos,\n mp3buf_size\n );\n };\n function calcNeeded(gfp) {\n var mf_needed = Encoder.BLKSIZE + gfp.framesize - Encoder.FFTOFFSET;\n mf_needed = Math.max(mf_needed, 512 + gfp.framesize - 32);\n return mf_needed;\n }\n function lame_encode_buffer_sample(gfp, buffer_l, buffer_r, nsamples, mp3buf, mp3bufPos, mp3buf_size) {\n var gfc = gfp.internal_flags;\n var mp3size = 0;\n var ret;\n var i;\n var ch;\n var mf_needed;\n var mp3out;\n var mfbuf = [null, null];\n var in_buffer = [null, null];\n if (gfc.Class_ID != LAME_ID)\n return -3;\n if (nsamples == 0)\n return 0;\n mp3out = bs.copy_buffer(gfc, mp3buf, mp3bufPos, mp3buf_size, 0);\n if (mp3out < 0)\n return mp3out;\n mp3bufPos += mp3out;\n mp3size += mp3out;\n in_buffer[0] = buffer_l;\n in_buffer[1] = buffer_r;\n if (BitStream$1.NEQ(gfp.scale, 0) && BitStream$1.NEQ(gfp.scale, 1)) {\n for (i = 0; i < nsamples; ++i) {\n in_buffer[0][i] *= gfp.scale;\n if (gfc.channels_out == 2)\n in_buffer[1][i] *= gfp.scale;\n }\n }\n if (BitStream$1.NEQ(gfp.scale_left, 0) && BitStream$1.NEQ(gfp.scale_left, 1)) {\n for (i = 0; i < nsamples; ++i) {\n in_buffer[0][i] *= gfp.scale_left;\n }\n }\n if (BitStream$1.NEQ(gfp.scale_right, 0) && BitStream$1.NEQ(gfp.scale_right, 1)) {\n for (i = 0; i < nsamples; ++i) {\n in_buffer[1][i] *= gfp.scale_right;\n }\n }\n if (gfp.num_channels == 2 && gfc.channels_out == 1) {\n for (i = 0; i < nsamples; ++i) {\n in_buffer[0][i] = 0.5 * (in_buffer[0][i] + in_buffer[1][i]);\n in_buffer[1][i] = 0;\n }\n }\n mf_needed = calcNeeded(gfp);\n mfbuf[0] = gfc.mfbuf[0];\n mfbuf[1] = gfc.mfbuf[1];\n var in_bufferPos = 0;\n while (nsamples > 0) {\n var in_buffer_ptr = [null, null];\n var n_in = 0;\n var n_out = 0;\n in_buffer_ptr[0] = in_buffer[0];\n in_buffer_ptr[1] = in_buffer[1];\n var inOut = new InOut();\n fill_buffer(gfp, mfbuf, in_buffer_ptr, in_bufferPos, nsamples, inOut);\n n_in = inOut.n_in;\n n_out = inOut.n_out;\n if (gfc.findReplayGain && !gfc.decode_on_the_fly) {\n if (ga.AnalyzeSamples(\n gfc.rgdata,\n mfbuf[0],\n gfc.mf_size,\n mfbuf[1],\n gfc.mf_size,\n n_out,\n gfc.channels_out\n ) == GainAnalysis.GAIN_ANALYSIS_ERROR) {\n return -6;\n }\n }\n nsamples -= n_in;\n in_bufferPos += n_in;\n if (gfc.channels_out == 2)\n ;\n gfc.mf_size += n_out;\n assert$4(gfc.mf_size <= LameInternalFlags$1.MFSIZE);\n if (gfc.mf_samples_to_encode < 1) {\n gfc.mf_samples_to_encode = Encoder.ENCDELAY + Encoder.POSTDELAY;\n }\n gfc.mf_samples_to_encode += n_out;\n if (gfc.mf_size >= mf_needed) {\n var buf_size = mp3buf_size - mp3size;\n if (mp3buf_size == 0)\n buf_size = 0;\n ret = lame_encode_frame(\n gfp,\n mfbuf[0],\n mfbuf[1],\n mp3buf,\n mp3bufPos,\n buf_size\n );\n if (ret < 0)\n return ret;\n mp3bufPos += ret;\n mp3size += ret;\n gfc.mf_size -= gfp.framesize;\n gfc.mf_samples_to_encode -= gfp.framesize;\n for (ch = 0; ch < gfc.channels_out; ch++) {\n for (i = 0; i < gfc.mf_size; i++) {\n mfbuf[ch][i] = mfbuf[ch][i + gfp.framesize];\n }\n }\n }\n }\n return mp3size;\n }\n function lame_encode_frame(gfp, inbuf_l, inbuf_r, mp3buf, mp3bufPos, mp3buf_size) {\n var ret = self2.enc.lame_encode_mp3_frame(\n gfp,\n inbuf_l,\n inbuf_r,\n mp3buf,\n mp3bufPos,\n mp3buf_size\n );\n gfp.frameNum++;\n return ret;\n }\n function InOut() {\n this.n_in = 0;\n this.n_out = 0;\n }\n function NumUsed() {\n this.num_used = 0;\n }\n function gcd(i, j) {\n return j != 0 ? gcd(j, i % j) : i;\n }\n function blackman(x, fcn, l) {\n var wcn = Math.PI * fcn;\n x /= l;\n if (x < 0)\n x = 0;\n if (x > 1)\n x = 1;\n var x2 = x - 0.5;\n var bkwn = 0.42 - 0.5 * Math.cos(2 * x * Math.PI) + 0.08 * Math.cos(4 * x * Math.PI);\n if (Math.abs(x2) < 1e-9)\n return wcn / Math.PI;\n else\n return bkwn * Math.sin(l * wcn * x2) / (Math.PI * l * x2);\n }\n function fill_buffer_resample(gfp, outbuf, outbufPos, desired_len, inbuf, in_bufferPos, len, num_used, ch) {\n var gfc = gfp.internal_flags;\n var i;\n var j = 0;\n var k;\n var bpc = gfp.out_samplerate / gcd(gfp.out_samplerate, gfp.in_samplerate);\n if (bpc > LameInternalFlags$1.BPC)\n bpc = LameInternalFlags$1.BPC;\n var intratio = Math.abs(gfc.resample_ratio - Math.floor(0.5 + gfc.resample_ratio)) < 1e-4 ? 1 : 0;\n var fcn = 1 / gfc.resample_ratio;\n if (fcn > 1)\n fcn = 1;\n var filter_l = 31;\n if (filter_l % 2 == 0)\n --filter_l;\n filter_l += intratio;\n var BLACKSIZE = filter_l + 1;\n if (gfc.fill_buffer_resample_init == 0) {\n gfc.inbuf_old[0] = new_float$2(BLACKSIZE);\n gfc.inbuf_old[1] = new_float$2(BLACKSIZE);\n for (i = 0; i <= 2 * bpc; ++i)\n gfc.blackfilt[i] = new_float$2(BLACKSIZE);\n gfc.itime[0] = 0;\n gfc.itime[1] = 0;\n for (j = 0; j <= 2 * bpc; j++) {\n var sum = 0;\n var offset = (j - bpc) / (2 * bpc);\n for (i = 0; i <= filter_l; i++) {\n sum += gfc.blackfilt[j][i] = blackman(i - offset, fcn, filter_l);\n }\n for (i = 0; i <= filter_l; i++)\n gfc.blackfilt[j][i] /= sum;\n }\n gfc.fill_buffer_resample_init = 1;\n }\n var inbuf_old = gfc.inbuf_old[ch];\n for (k = 0; k < desired_len; k++) {\n var time0;\n var joff;\n time0 = k * gfc.resample_ratio;\n j = 0 | Math.floor(time0 - gfc.itime[ch]);\n if (filter_l + j - filter_l / 2 >= len)\n break;\n var offset = time0 - gfc.itime[ch] - (j + 0.5 * (filter_l % 2));\n joff = 0 | Math.floor(offset * 2 * bpc + bpc + 0.5);\n var xvalue = 0;\n for (i = 0; i <= filter_l; ++i) {\n var j2 = 0 | i + j - filter_l / 2;\n var y;\n y = j2 < 0 ? inbuf_old[BLACKSIZE + j2] : inbuf[in_bufferPos + j2];\n xvalue += y * gfc.blackfilt[joff][i];\n }\n outbuf[outbufPos + k] = xvalue;\n }\n num_used.num_used = Math.min(len, filter_l + j - filter_l / 2);\n gfc.itime[ch] += num_used.num_used - k * gfc.resample_ratio;\n if (num_used.num_used >= BLACKSIZE) {\n for (i = 0; i < BLACKSIZE; i++) {\n inbuf_old[i] = inbuf[in_bufferPos + num_used.num_used + i - BLACKSIZE];\n }\n } else {\n var n_shift = BLACKSIZE - num_used.num_used;\n for (i = 0; i < n_shift; ++i) {\n inbuf_old[i] = inbuf_old[i + num_used.num_used];\n }\n for (j = 0; i < BLACKSIZE; ++i, ++j) {\n inbuf_old[i] = inbuf[in_bufferPos + j];\n }\n assert$4(j == num_used.num_used);\n }\n return k;\n }\n function fill_buffer(gfp, mfbuf, in_buffer, in_bufferPos, nsamples, io) {\n var gfc = gfp.internal_flags;\n if (gfc.resample_ratio < 0.9999 || gfc.resample_ratio > 1.0001) {\n for (var ch = 0; ch < gfc.channels_out; ch++) {\n var numUsed = new NumUsed();\n io.n_out = fill_buffer_resample(\n gfp,\n mfbuf[ch],\n gfc.mf_size,\n gfp.framesize,\n in_buffer[ch],\n in_bufferPos,\n nsamples,\n numUsed,\n ch\n );\n io.n_in = numUsed.num_used;\n }\n } else {\n io.n_out = Math.min(gfp.framesize, nsamples);\n io.n_in = io.n_out;\n for (var i = 0; i < io.n_out; ++i) {\n mfbuf[0][gfc.mf_size + i] = in_buffer[0][in_bufferPos + i];\n if (gfc.channels_out == 2) {\n mfbuf[1][gfc.mf_size + i] = in_buffer[1][in_bufferPos + i];\n }\n }\n }\n }\n}\nvar VbrMode$2 = common.VbrMode;\nfunction Presets() {\n function VBRPresets(qual, comp, compS, y, shThreshold, shThresholdS, adj, adjShort, lower, curve, sens, inter, joint, mod, fix) {\n this.vbr_q = qual;\n this.quant_comp = comp;\n this.quant_comp_s = compS;\n this.expY = y;\n this.st_lrm = shThreshold;\n this.st_s = shThresholdS;\n this.masking_adj = adj;\n this.masking_adj_short = adjShort;\n this.ath_lower = lower;\n this.ath_curve = curve;\n this.ath_sensitivity = sens;\n this.interch = inter;\n this.safejoint = joint;\n this.sfb21mod = mod;\n this.msfix = fix;\n }\n function ABRPresets(kbps, comp, compS, joint, fix, shThreshold, shThresholdS, bass, sc, mask, lower, curve, interCh, sfScale) {\n this.quant_comp = comp;\n this.quant_comp_s = compS;\n this.safejoint = joint;\n this.nsmsfix = fix;\n this.st_lrm = shThreshold;\n this.st_s = shThresholdS;\n this.nsbass = bass;\n this.scale = sc;\n this.masking_adj = mask;\n this.ath_lower = lower;\n this.ath_curve = curve;\n this.interch = interCh;\n this.sfscale = sfScale;\n }\n var lame;\n this.setModules = function(_lame) {\n lame = _lame;\n };\n var vbr_old_switch_map = [\n new VBRPresets(\n 0,\n 9,\n 9,\n 0,\n 5.2,\n 125,\n -4.2,\n -6.3,\n 4.8,\n 1,\n 0,\n 0,\n 2,\n 21,\n 0.97\n ),\n new VBRPresets(\n 1,\n 9,\n 9,\n 0,\n 5.3,\n 125,\n -3.6,\n -5.6,\n 4.5,\n 1.5,\n 0,\n 0,\n 2,\n 21,\n 1.35\n ),\n new VBRPresets(\n 2,\n 9,\n 9,\n 0,\n 5.6,\n 125,\n -2.2,\n -3.5,\n 2.8,\n 2,\n 0,\n 0,\n 2,\n 21,\n 1.49\n ),\n new VBRPresets(\n 3,\n 9,\n 9,\n 1,\n 5.8,\n 130,\n -1.8,\n -2.8,\n 2.6,\n 3,\n -4,\n 0,\n 2,\n 20,\n 1.64\n ),\n new VBRPresets(\n 4,\n 9,\n 9,\n 1,\n 6,\n 135,\n -0.7,\n -1.1,\n 1.1,\n 3.5,\n -8,\n 0,\n 2,\n 0,\n 1.79\n ),\n new VBRPresets(\n 5,\n 9,\n 9,\n 1,\n 6.4,\n 140,\n 0.5,\n 0.4,\n -7.5,\n 4,\n -12,\n 2e-4,\n 0,\n 0,\n 1.95\n ),\n new VBRPresets(\n 6,\n 9,\n 9,\n 1,\n 6.6,\n 145,\n 0.67,\n 0.65,\n -14.7,\n 6.5,\n -19,\n 4e-4,\n 0,\n 0,\n 2.3\n ),\n new VBRPresets(\n 7,\n 9,\n 9,\n 1,\n 6.6,\n 145,\n 0.8,\n 0.75,\n -19.7,\n 8,\n -22,\n 6e-4,\n 0,\n 0,\n 2.7\n ),\n new VBRPresets(\n 8,\n 9,\n 9,\n 1,\n 6.6,\n 145,\n 1.2,\n 1.15,\n -27.5,\n 10,\n -23,\n 7e-4,\n 0,\n 0,\n 0\n ),\n new VBRPresets(\n 9,\n 9,\n 9,\n 1,\n 6.6,\n 145,\n 1.6,\n 1.6,\n -36,\n 11,\n -25,\n 8e-4,\n 0,\n 0,\n 0\n ),\n new VBRPresets(\n 10,\n 9,\n 9,\n 1,\n 6.6,\n 145,\n 2,\n 2,\n -36,\n 12,\n -25,\n 8e-4,\n 0,\n 0,\n 0\n )\n ];\n var vbr_psy_switch_map = [\n new VBRPresets(\n 0,\n 9,\n 9,\n 0,\n 4.2,\n 25,\n -7,\n -4,\n 7.5,\n 1,\n 0,\n 0,\n 2,\n 26,\n 0.97\n ),\n new VBRPresets(\n 1,\n 9,\n 9,\n 0,\n 4.2,\n 25,\n -5.6,\n -3.6,\n 4.5,\n 1.5,\n 0,\n 0,\n 2,\n 21,\n 1.35\n ),\n new VBRPresets(2, 9, 9, 0, 4.2, 25, -4.4, -1.8, 2, 2, 0, 0, 2, 18, 1.49),\n new VBRPresets(\n 3,\n 9,\n 9,\n 1,\n 4.2,\n 25,\n -3.4,\n -1.25,\n 1.1,\n 3,\n -4,\n 0,\n 2,\n 15,\n 1.64\n ),\n new VBRPresets(4, 9, 9, 1, 4.2, 25, -2.2, 0.1, 0, 3.5, -8, 0, 2, 0, 1.79),\n new VBRPresets(\n 5,\n 9,\n 9,\n 1,\n 4.2,\n 25,\n -1,\n 1.65,\n -7.7,\n 4,\n -12,\n 2e-4,\n 0,\n 0,\n 1.95\n ),\n new VBRPresets(\n 6,\n 9,\n 9,\n 1,\n 4.2,\n 25,\n -0,\n 2.47,\n -7.7,\n 6.5,\n -19,\n 4e-4,\n 0,\n 0,\n 2\n ),\n new VBRPresets(\n 7,\n 9,\n 9,\n 1,\n 4.2,\n 25,\n 0.5,\n 2,\n -14.5,\n 8,\n -22,\n 6e-4,\n 0,\n 0,\n 2\n ),\n new VBRPresets(\n 8,\n 9,\n 9,\n 1,\n 4.2,\n 25,\n 1,\n 2.4,\n -22,\n 10,\n -23,\n 7e-4,\n 0,\n 0,\n 2\n ),\n new VBRPresets(\n 9,\n 9,\n 9,\n 1,\n 4.2,\n 25,\n 1.5,\n 2.95,\n -30,\n 11,\n -25,\n 8e-4,\n 0,\n 0,\n 2\n ),\n new VBRPresets(\n 10,\n 9,\n 9,\n 1,\n 4.2,\n 25,\n 2,\n 2.95,\n -36,\n 12,\n -30,\n 8e-4,\n 0,\n 0,\n 2\n )\n ];\n function apply_vbr_preset(gfp, a, enforce) {\n var vbr_preset = gfp.VBR == VbrMode$2.vbr_rh ? vbr_old_switch_map : vbr_psy_switch_map;\n var x = gfp.VBR_q_frac;\n var p2 = vbr_preset[a];\n var q = vbr_preset[a + 1];\n var set2 = p2;\n p2.st_lrm = p2.st_lrm + x * (q.st_lrm - p2.st_lrm);\n p2.st_s = p2.st_s + x * (q.st_s - p2.st_s);\n p2.masking_adj = p2.masking_adj + x * (q.masking_adj - p2.masking_adj);\n p2.masking_adj_short = p2.masking_adj_short + x * (q.masking_adj_short - p2.masking_adj_short);\n p2.ath_lower = p2.ath_lower + x * (q.ath_lower - p2.ath_lower);\n p2.ath_curve = p2.ath_curve + x * (q.ath_curve - p2.ath_curve);\n p2.ath_sensitivity = p2.ath_sensitivity + x * (q.ath_sensitivity - p2.ath_sensitivity);\n p2.interch = p2.interch + x * (q.interch - p2.interch);\n p2.msfix = p2.msfix + x * (q.msfix - p2.msfix);\n lame_set_VBR_q(gfp, set2.vbr_q);\n if (enforce != 0)\n gfp.quant_comp = set2.quant_comp;\n else if (!(Math.abs(gfp.quant_comp - -1) > 0)) {\n gfp.quant_comp = set2.quant_comp;\n }\n if (enforce != 0)\n gfp.quant_comp_short = set2.quant_comp_s;\n else if (!(Math.abs(gfp.quant_comp_short - -1) > 0)) {\n gfp.quant_comp_short = set2.quant_comp_s;\n }\n if (set2.expY != 0) {\n gfp.experimentalY = set2.expY != 0;\n }\n if (enforce != 0)\n gfp.internal_flags.nsPsy.attackthre = set2.st_lrm;\n else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre - -1) > 0)) {\n gfp.internal_flags.nsPsy.attackthre = set2.st_lrm;\n }\n if (enforce != 0)\n gfp.internal_flags.nsPsy.attackthre_s = set2.st_s;\n else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre_s - -1) > 0)) {\n gfp.internal_flags.nsPsy.attackthre_s = set2.st_s;\n }\n if (enforce != 0)\n gfp.maskingadjust = set2.masking_adj;\n else if (!(Math.abs(gfp.maskingadjust - 0) > 0)) {\n gfp.maskingadjust = set2.masking_adj;\n }\n if (enforce != 0)\n gfp.maskingadjust_short = set2.masking_adj_short;\n else if (!(Math.abs(gfp.maskingadjust_short - 0) > 0)) {\n gfp.maskingadjust_short = set2.masking_adj_short;\n }\n if (enforce != 0)\n gfp.ATHlower = -set2.ath_lower / 10;\n else if (!(Math.abs(-gfp.ATHlower * 10 - 0) > 0)) {\n gfp.ATHlower = -set2.ath_lower / 10;\n }\n if (enforce != 0)\n gfp.ATHcurve = set2.ath_curve;\n else if (!(Math.abs(gfp.ATHcurve - -1) > 0))\n gfp.ATHcurve = set2.ath_curve;\n if (enforce != 0)\n gfp.athaa_sensitivity = set2.ath_sensitivity;\n else if (!(Math.abs(gfp.athaa_sensitivity - -1) > 0)) {\n gfp.athaa_sensitivity = set2.ath_sensitivity;\n }\n if (set2.interch > 0) {\n if (enforce != 0)\n gfp.interChRatio = set2.interch;\n else if (!(Math.abs(gfp.interChRatio - -1) > 0)) {\n gfp.interChRatio = set2.interch;\n }\n }\n if (set2.safejoint > 0) {\n gfp.exp_nspsytune = gfp.exp_nspsytune | set2.safejoint;\n }\n if (set2.sfb21mod > 0) {\n gfp.exp_nspsytune = gfp.exp_nspsytune | set2.sfb21mod << 20;\n }\n if (enforce != 0)\n gfp.msfix = set2.msfix;\n else if (!(Math.abs(gfp.msfix - -1) > 0))\n gfp.msfix = set2.msfix;\n if (enforce == 0) {\n gfp.VBR_q = a;\n gfp.VBR_q_frac = x;\n }\n }\n var abr_switch_map = [\n new ABRPresets(\n 8,\n 9,\n 9,\n 0,\n 0,\n 6.6,\n 145,\n 0,\n 0.95,\n 0,\n -30,\n 11,\n 12e-4,\n 1\n ),\n new ABRPresets(\n 16,\n 9,\n 9,\n 0,\n 0,\n 6.6,\n 145,\n 0,\n 0.95,\n 0,\n -25,\n 11,\n 1e-3,\n 1\n ),\n new ABRPresets(\n 24,\n 9,\n 9,\n 0,\n 0,\n 6.6,\n 145,\n 0,\n 0.95,\n 0,\n -20,\n 11,\n 1e-3,\n 1\n ),\n new ABRPresets(\n 32,\n 9,\n 9,\n 0,\n 0,\n 6.6,\n 145,\n 0,\n 0.95,\n 0,\n -15,\n 11,\n 1e-3,\n 1\n ),\n new ABRPresets(\n 40,\n 9,\n 9,\n 0,\n 0,\n 6.6,\n 145,\n 0,\n 0.95,\n 0,\n -10,\n 11,\n 9e-4,\n 1\n ),\n new ABRPresets(\n 48,\n 9,\n 9,\n 0,\n 0,\n 6.6,\n 145,\n 0,\n 0.95,\n 0,\n -10,\n 11,\n 9e-4,\n 1\n ),\n new ABRPresets(\n 56,\n 9,\n 9,\n 0,\n 0,\n 6.6,\n 145,\n 0,\n 0.95,\n 0,\n -6,\n 11,\n 8e-4,\n 1\n ),\n new ABRPresets(\n 64,\n 9,\n 9,\n 0,\n 0,\n 6.6,\n 145,\n 0,\n 0.95,\n 0,\n -2,\n 11,\n 8e-4,\n 1\n ),\n new ABRPresets(\n 80,\n 9,\n 9,\n 0,\n 0,\n 6.6,\n 145,\n 0,\n 0.95,\n 0,\n 0,\n 8,\n 7e-4,\n 1\n ),\n new ABRPresets(\n 96,\n 9,\n 9,\n 0,\n 2.5,\n 6.6,\n 145,\n 0,\n 0.95,\n 0,\n 1,\n 5.5,\n 6e-4,\n 1\n ),\n new ABRPresets(\n 112,\n 9,\n 9,\n 0,\n 2.25,\n 6.6,\n 145,\n 0,\n 0.95,\n 0,\n 2,\n 4.5,\n 5e-4,\n 1\n ),\n new ABRPresets(\n 128,\n 9,\n 9,\n 0,\n 1.95,\n 6.4,\n 140,\n 0,\n 0.95,\n 0,\n 3,\n 4,\n 2e-4,\n 1\n ),\n new ABRPresets(\n 160,\n 9,\n 9,\n 1,\n 1.79,\n 6,\n 135,\n 0,\n 0.95,\n -2,\n 5,\n 3.5,\n 0,\n 1\n ),\n new ABRPresets(\n 192,\n 9,\n 9,\n 1,\n 1.49,\n 5.6,\n 125,\n 0,\n 0.97,\n -4,\n 7,\n 3,\n 0,\n 0\n ),\n new ABRPresets(\n 224,\n 9,\n 9,\n 1,\n 1.25,\n 5.2,\n 125,\n 0,\n 0.98,\n -6,\n 9,\n 2,\n 0,\n 0\n ),\n new ABRPresets(\n 256,\n 9,\n 9,\n 1,\n 0.97,\n 5.2,\n 125,\n 0,\n 1,\n -8,\n 10,\n 1,\n 0,\n 0\n ),\n new ABRPresets(\n 320,\n 9,\n 9,\n 1,\n 0.9,\n 5.2,\n 125,\n 0,\n 1,\n -10,\n 12,\n 0,\n 0,\n 0\n )\n ];\n function apply_abr_preset(gfp, preset, enforce) {\n var actual_bitrate = preset;\n var r = lame.nearestBitrateFullIndex(preset);\n gfp.VBR = VbrMode$2.vbr_abr;\n gfp.VBR_mean_bitrate_kbps = actual_bitrate;\n gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps, 320);\n gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps, 8);\n gfp.brate = gfp.VBR_mean_bitrate_kbps;\n if (gfp.VBR_mean_bitrate_kbps > 320) {\n gfp.disable_reservoir = true;\n }\n if (abr_switch_map[r].safejoint > 0) {\n gfp.exp_nspsytune = gfp.exp_nspsytune | 2;\n }\n if (abr_switch_map[r].sfscale > 0) {\n gfp.internal_flags.noise_shaping = 2;\n }\n if (Math.abs(abr_switch_map[r].nsbass) > 0) {\n var k = int(abr_switch_map[r].nsbass * 4);\n if (k < 0)\n k += 64;\n gfp.exp_nspsytune = gfp.exp_nspsytune | k << 2;\n }\n if (enforce != 0)\n gfp.quant_comp = abr_switch_map[r].quant_comp;\n else if (!(Math.abs(gfp.quant_comp - -1) > 0)) {\n gfp.quant_comp = abr_switch_map[r].quant_comp;\n }\n if (enforce != 0)\n gfp.quant_comp_short = abr_switch_map[r].quant_comp_s;\n else if (!(Math.abs(gfp.quant_comp_short - -1) > 0)) {\n gfp.quant_comp_short = abr_switch_map[r].quant_comp_s;\n }\n if (enforce != 0)\n gfp.msfix = abr_switch_map[r].nsmsfix;\n else if (!(Math.abs(gfp.msfix - -1) > 0)) {\n gfp.msfix = abr_switch_map[r].nsmsfix;\n }\n if (enforce != 0) {\n gfp.internal_flags.nsPsy.attackthre = abr_switch_map[r].st_lrm;\n } else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre - -1) > 0)) {\n gfp.internal_flags.nsPsy.attackthre = abr_switch_map[r].st_lrm;\n }\n if (enforce != 0) {\n gfp.internal_flags.nsPsy.attackthre_s = abr_switch_map[r].st_s;\n } else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre_s - -1) > 0)) {\n gfp.internal_flags.nsPsy.attackthre_s = abr_switch_map[r].st_s;\n }\n if (enforce != 0)\n gfp.scale = abr_switch_map[r].scale;\n else if (!(Math.abs(gfp.scale - -1) > 0)) {\n gfp.scale = abr_switch_map[r].scale;\n }\n if (enforce != 0)\n gfp.maskingadjust = abr_switch_map[r].masking_adj;\n else if (!(Math.abs(gfp.maskingadjust - 0) > 0)) {\n gfp.maskingadjust = abr_switch_map[r].masking_adj;\n }\n if (abr_switch_map[r].masking_adj > 0) {\n if (enforce != 0) {\n gfp.maskingadjust_short = abr_switch_map[r].masking_adj * 0.9;\n } else if (!(Math.abs(gfp.maskingadjust_short - 0) > 0)) {\n gfp.maskingadjust_short = abr_switch_map[r].masking_adj * 0.9;\n }\n } else {\n if (enforce != 0) {\n gfp.maskingadjust_short = abr_switch_map[r].masking_adj * 1.1;\n } else if (!(Math.abs(gfp.maskingadjust_short - 0) > 0)) {\n gfp.maskingadjust_short = abr_switch_map[r].masking_adj * 1.1;\n }\n }\n if (enforce != 0)\n gfp.ATHlower = -abr_switch_map[r].ath_lower / 10;\n else if (!(Math.abs(-gfp.ATHlower * 10 - 0) > 0)) {\n gfp.ATHlower = -abr_switch_map[r].ath_lower / 10;\n }\n if (enforce != 0)\n gfp.ATHcurve = abr_switch_map[r].ath_curve;\n else if (!(Math.abs(gfp.ATHcurve - -1) > 0)) {\n gfp.ATHcurve = abr_switch_map[r].ath_curve;\n }\n if (enforce != 0)\n gfp.interChRatio = abr_switch_map[r].interch;\n else if (!(Math.abs(gfp.interChRatio - -1) > 0)) {\n gfp.interChRatio = abr_switch_map[r].interch;\n }\n return preset;\n }\n this.apply_preset = function(gfp, preset, enforce) {\n switch (preset) {\n case Lame$1.R3MIX: {\n preset = Lame$1.V3;\n gfp.VBR = VbrMode$2.vbr_mtrh;\n break;\n }\n case Lame$1.MEDIUM: {\n preset = Lame$1.V4;\n gfp.VBR = VbrMode$2.vbr_rh;\n break;\n }\n case Lame$1.MEDIUM_FAST: {\n preset = Lame$1.V4;\n gfp.VBR = VbrMode$2.vbr_mtrh;\n break;\n }\n case Lame$1.STANDARD: {\n preset = Lame$1.V2;\n gfp.VBR = VbrMode$2.vbr_rh;\n break;\n }\n case Lame$1.STANDARD_FAST: {\n preset = Lame$1.V2;\n gfp.VBR = VbrMode$2.vbr_mtrh;\n break;\n }\n case Lame$1.EXTREME: {\n preset = Lame$1.V0;\n gfp.VBR = VbrMode$2.vbr_rh;\n break;\n }\n case Lame$1.EXTREME_FAST: {\n preset = Lame$1.V0;\n gfp.VBR = VbrMode$2.vbr_mtrh;\n break;\n }\n case Lame$1.INSANE: {\n preset = 320;\n gfp.preset = preset;\n apply_abr_preset(gfp, preset, enforce);\n gfp.VBR = VbrMode$2.vbr_off;\n return preset;\n }\n }\n gfp.preset = preset;\n {\n switch (preset) {\n case Lame$1.V9:\n apply_vbr_preset(gfp, 9, enforce);\n return preset;\n case Lame$1.V8:\n apply_vbr_preset(gfp, 8, enforce);\n return preset;\n case Lame$1.V7:\n apply_vbr_preset(gfp, 7, enforce);\n return preset;\n case Lame$1.V6:\n apply_vbr_preset(gfp, 6, enforce);\n return preset;\n case Lame$1.V5:\n apply_vbr_preset(gfp, 5, enforce);\n return preset;\n case Lame$1.V4:\n apply_vbr_preset(gfp, 4, enforce);\n return preset;\n case Lame$1.V3:\n apply_vbr_preset(gfp, 3, enforce);\n return preset;\n case Lame$1.V2:\n apply_vbr_preset(gfp, 2, enforce);\n return preset;\n case Lame$1.V1:\n apply_vbr_preset(gfp, 1, enforce);\n return preset;\n case Lame$1.V0:\n apply_vbr_preset(gfp, 0, enforce);\n return preset;\n }\n }\n if (preset >= 8 && preset <= 320) {\n return apply_abr_preset(gfp, preset, enforce);\n }\n gfp.preset = 0;\n return preset;\n };\n function lame_set_VBR_q(gfp, VBR_q) {\n var ret = 0;\n if (VBR_q < 0) {\n ret = -1;\n VBR_q = 0;\n }\n if (VBR_q > 9) {\n ret = -1;\n VBR_q = 9;\n }\n gfp.VBR_q = VBR_q;\n gfp.VBR_q_frac = 0;\n return ret;\n }\n}\nfunction VBRQuantize() {\n this.setModules = function(_qupvt, _tk) {\n };\n}\nfunction CalcNoiseResult$1() {\n this.over_noise = 0;\n this.tot_noise = 0;\n this.max_noise = 0;\n this.over_count = 0;\n this.over_SSD = 0;\n this.bits = 0;\n}\nvar new_float$1 = common.new_float;\nvar new_int = common.new_int;\nfunction CalcNoiseData() {\n this.global_gain = 0;\n this.sfb_count1 = 0;\n this.step = new_int(39);\n this.noise = new_float$1(39);\n this.noise_log = new_float$1(39);\n}\nvar System$1 = common.System;\nvar VbrMode$1 = common.VbrMode;\nvar Util = common.Util;\nvar Arrays$1 = common.Arrays;\nvar new_float = common.new_float;\nvar assert$3 = common.assert;\nfunction Quantize() {\n var bs;\n this.rv = null;\n var rv;\n this.qupvt = null;\n var qupvt;\n var vbr = new VBRQuantize();\n var tk;\n this.setModules = function(_bs, _rv, _qupvt, _tk) {\n bs = _bs;\n rv = _rv;\n this.rv = _rv;\n qupvt = _qupvt;\n this.qupvt = _qupvt;\n tk = _tk;\n vbr.setModules(qupvt, tk);\n };\n this.ms_convert = function(l3_side, gr) {\n for (var i = 0; i < 576; ++i) {\n var l = l3_side.tt[gr][0].xr[i];\n var r = l3_side.tt[gr][1].xr[i];\n l3_side.tt[gr][0].xr[i] = (l + r) * (Util.SQRT2 * 0.5);\n l3_side.tt[gr][1].xr[i] = (l - r) * (Util.SQRT2 * 0.5);\n }\n };\n function init_xrpow_core(cod_info, xrpow, upper, sum) {\n sum = 0;\n for (var i = 0; i <= upper; ++i) {\n var tmp = Math.abs(cod_info.xr[i]);\n sum += tmp;\n xrpow[i] = Math.sqrt(tmp * Math.sqrt(tmp));\n if (xrpow[i] > cod_info.xrpow_max)\n cod_info.xrpow_max = xrpow[i];\n }\n return sum;\n }\n this.init_xrpow = function(gfc, cod_info, xrpow) {\n var sum = 0;\n var upper = 0 | cod_info.max_nonzero_coeff;\n cod_info.xrpow_max = 0;\n Arrays$1.fill(xrpow, upper, 576, 0);\n sum = init_xrpow_core(cod_info, xrpow, upper, sum);\n if (sum > 1e-20) {\n var j = 0;\n if ((gfc.substep_shaping & 2) != 0)\n j = 1;\n for (var i = 0; i < cod_info.psymax; i++)\n gfc.pseudohalf[i] = j;\n return true;\n }\n Arrays$1.fill(cod_info.l3_enc, 0, 576, 0);\n return false;\n };\n function psfb21_analogsilence(gfc, cod_info) {\n var ath = gfc.ATH;\n var xr = cod_info.xr;\n if (cod_info.block_type != Encoder.SHORT_TYPE) {\n var stop = false;\n for (var gsfb = Encoder.PSFB21 - 1; gsfb >= 0 && !stop; gsfb--) {\n var start = gfc.scalefac_band.psfb21[gsfb];\n var end = gfc.scalefac_band.psfb21[gsfb + 1];\n var ath21 = qupvt.athAdjust(ath.adjust, ath.psfb21[gsfb], ath.floor);\n if (gfc.nsPsy.longfact[21] > 1e-12)\n ath21 *= gfc.nsPsy.longfact[21];\n for (var j = end - 1; j >= start; j--) {\n if (Math.abs(xr[j]) < ath21)\n xr[j] = 0;\n else {\n stop = true;\n break;\n }\n }\n }\n } else {\n for (var block = 0; block < 3; block++) {\n var stop = false;\n for (var gsfb = Encoder.PSFB12 - 1; gsfb >= 0 && !stop; gsfb--) {\n var start = gfc.scalefac_band.s[12] * 3 + (gfc.scalefac_band.s[13] - gfc.scalefac_band.s[12]) * block + (gfc.scalefac_band.psfb12[gsfb] - gfc.scalefac_band.psfb12[0]);\n var end = start + (gfc.scalefac_band.psfb12[gsfb + 1] - gfc.scalefac_band.psfb12[gsfb]);\n var ath12 = qupvt.athAdjust(ath.adjust, ath.psfb12[gsfb], ath.floor);\n if (gfc.nsPsy.shortfact[12] > 1e-12)\n ath12 *= gfc.nsPsy.shortfact[12];\n for (var j = end - 1; j >= start; j--) {\n if (Math.abs(xr[j]) < ath12)\n xr[j] = 0;\n else {\n stop = true;\n break;\n }\n }\n }\n }\n }\n }\n this.init_outer_loop = function(gfc, cod_info) {\n cod_info.part2_3_length = 0;\n cod_info.big_values = 0;\n cod_info.count1 = 0;\n cod_info.global_gain = 210;\n cod_info.scalefac_compress = 0;\n cod_info.table_select[0] = 0;\n cod_info.table_select[1] = 0;\n cod_info.table_select[2] = 0;\n cod_info.subblock_gain[0] = 0;\n cod_info.subblock_gain[1] = 0;\n cod_info.subblock_gain[2] = 0;\n cod_info.subblock_gain[3] = 0;\n cod_info.region0_count = 0;\n cod_info.region1_count = 0;\n cod_info.preflag = 0;\n cod_info.scalefac_scale = 0;\n cod_info.count1table_select = 0;\n cod_info.part2_length = 0;\n cod_info.sfb_lmax = Encoder.SBPSY_l;\n cod_info.sfb_smin = Encoder.SBPSY_s;\n cod_info.psy_lmax = gfc.sfb21_extra ? Encoder.SBMAX_l : Encoder.SBPSY_l;\n cod_info.psymax = cod_info.psy_lmax;\n cod_info.sfbmax = cod_info.sfb_lmax;\n cod_info.sfbdivide = 11;\n for (var sfb = 0; sfb < Encoder.SBMAX_l; sfb++) {\n cod_info.width[sfb] = gfc.scalefac_band.l[sfb + 1] - gfc.scalefac_band.l[sfb];\n cod_info.window[sfb] = 3;\n }\n if (cod_info.block_type == Encoder.SHORT_TYPE) {\n var ixwork = new_float(576);\n cod_info.sfb_smin = 0;\n cod_info.sfb_lmax = 0;\n if (cod_info.mixed_block_flag != 0) {\n cod_info.sfb_smin = 3;\n cod_info.sfb_lmax = gfc.mode_gr * 2 + 4;\n }\n cod_info.psymax = cod_info.sfb_lmax + 3 * ((gfc.sfb21_extra ? Encoder.SBMAX_s : Encoder.SBPSY_s) - cod_info.sfb_smin);\n cod_info.sfbmax = cod_info.sfb_lmax + 3 * (Encoder.SBPSY_s - cod_info.sfb_smin);\n cod_info.sfbdivide = cod_info.sfbmax - 18;\n cod_info.psy_lmax = cod_info.sfb_lmax;\n var ix = gfc.scalefac_band.l[cod_info.sfb_lmax];\n System$1.arraycopy(cod_info.xr, 0, ixwork, 0, 576);\n for (var sfb = cod_info.sfb_smin; sfb < Encoder.SBMAX_s; sfb++) {\n var start = gfc.scalefac_band.s[sfb];\n var end = gfc.scalefac_band.s[sfb + 1];\n for (var window2 = 0; window2 < 3; window2++) {\n for (var l = start; l < end; l++) {\n cod_info.xr[ix++] = ixwork[3 * l + window2];\n }\n }\n }\n var j = cod_info.sfb_lmax;\n for (var sfb = cod_info.sfb_smin; sfb < Encoder.SBMAX_s; sfb++) {\n cod_info.width[j] = cod_info.width[j + 1] = cod_info.width[j + 2] = gfc.scalefac_band.s[sfb + 1] - gfc.scalefac_band.s[sfb];\n cod_info.window[j] = 0;\n cod_info.window[j + 1] = 1;\n cod_info.window[j + 2] = 2;\n j += 3;\n }\n }\n cod_info.count1bits = 0;\n cod_info.sfb_partition_table = qupvt.nr_of_sfb_block[0][0];\n cod_info.slen[0] = 0;\n cod_info.slen[1] = 0;\n cod_info.slen[2] = 0;\n cod_info.slen[3] = 0;\n cod_info.max_nonzero_coeff = 575;\n Arrays$1.fill(cod_info.scalefac, 0);\n psfb21_analogsilence(gfc, cod_info);\n };\n function BinSearchDirection(ordinal) {\n this.ordinal = ordinal;\n }\n BinSearchDirection.BINSEARCH_NONE = new BinSearchDirection(0);\n BinSearchDirection.BINSEARCH_UP = new BinSearchDirection(1);\n BinSearchDirection.BINSEARCH_DOWN = new BinSearchDirection(2);\n function bin_search_StepSize(gfc, cod_info, desired_rate, ch, xrpow) {\n var nBits;\n var CurrentStep = gfc.CurrentStep[ch];\n var flagGoneOver = false;\n var start = gfc.OldValue[ch];\n var Direction = BinSearchDirection.BINSEARCH_NONE;\n cod_info.global_gain = start;\n desired_rate -= cod_info.part2_length;\n for (; ; ) {\n var step;\n nBits = tk.count_bits(gfc, xrpow, cod_info, null);\n if (CurrentStep == 1 || nBits == desired_rate)\n break;\n if (nBits > desired_rate) {\n if (Direction == BinSearchDirection.BINSEARCH_DOWN)\n flagGoneOver = true;\n if (flagGoneOver)\n CurrentStep /= 2;\n Direction = BinSearchDirection.BINSEARCH_UP;\n step = CurrentStep;\n } else {\n if (Direction == BinSearchDirection.BINSEARCH_UP)\n flagGoneOver = true;\n if (flagGoneOver)\n CurrentStep /= 2;\n Direction = BinSearchDirection.BINSEARCH_DOWN;\n step = -CurrentStep;\n }\n cod_info.global_gain += step;\n if (cod_info.global_gain < 0) {\n cod_info.global_gain = 0;\n flagGoneOver = true;\n }\n if (cod_info.global_gain > 255) {\n cod_info.global_gain = 255;\n flagGoneOver = true;\n }\n }\n assert$3(cod_info.global_gain >= 0);\n assert$3(cod_info.global_gain < 256);\n while (nBits > desired_rate && cod_info.global_gain < 255) {\n cod_info.global_gain++;\n nBits = tk.count_bits(gfc, xrpow, cod_info, null);\n }\n gfc.CurrentStep[ch] = start - cod_info.global_gain >= 4 ? 4 : 2;\n gfc.OldValue[ch] = cod_info.global_gain;\n cod_info.part2_3_length = nBits;\n return nBits;\n }\n this.trancate_smallspectrums = function(gfc, gi, l3_xmin, work) {\n var distort = new_float(L3Side$1.SFBMAX);\n if ((gfc.substep_shaping & 4) == 0 && gi.block_type == Encoder.SHORT_TYPE || (gfc.substep_shaping & 128) != 0) {\n return;\n }\n qupvt.calc_noise(gi, l3_xmin, distort, new CalcNoiseResult$1(), null);\n for (var j = 0; j < 576; j++) {\n var xr = 0;\n if (gi.l3_enc[j] != 0)\n xr = Math.abs(gi.xr[j]);\n work[j] = xr;\n }\n var j = 0;\n var sfb = 8;\n if (gi.block_type == Encoder.SHORT_TYPE)\n sfb = 6;\n do {\n var allowedNoise, trancateThreshold;\n var nsame, start;\n var width = gi.width[sfb];\n j += width;\n if (distort[sfb] >= 1)\n continue;\n Arrays$1.sort(work, j - width, width);\n if (BitStream.EQ(work[j - 1], 0))\n continue;\n allowedNoise = (1 - distort[sfb]) * l3_xmin[sfb];\n trancateThreshold = 0;\n start = 0;\n do {\n var noise;\n for (nsame = 1; start + nsame < width; nsame++) {\n if (BitStream.NEQ(\n work[start + j - width],\n work[start + j + nsame - width]\n )) {\n break;\n }\n }\n noise = work[start + j - width] * work[start + j - width] * nsame;\n if (allowedNoise < noise) {\n if (start != 0)\n trancateThreshold = work[start + j - width - 1];\n break;\n }\n allowedNoise -= noise;\n start += nsame;\n } while (start < width);\n if (BitStream.EQ(trancateThreshold, 0))\n continue;\n do {\n if (Math.abs(gi.xr[j - width]) <= trancateThreshold) {\n gi.l3_enc[j - width] = 0;\n }\n } while (--width > 0);\n } while (++sfb < gi.psymax);\n gi.part2_3_length = tk.noquant_count_bits(gfc, gi, null);\n };\n function loop_break(cod_info) {\n for (var sfb = 0; sfb < cod_info.sfbmax; sfb++) {\n if (cod_info.scalefac[sfb] + cod_info.subblock_gain[cod_info.window[sfb]] == 0) {\n return false;\n }\n }\n return true;\n }\n function penalties(noise) {\n return Util.FAST_LOG10(0.368 + 0.632 * noise * noise * noise);\n }\n function get_klemm_noise(distort, gi) {\n var klemm_noise = 1e-37;\n for (var sfb = 0; sfb < gi.psymax; sfb++) {\n klemm_noise += penalties(distort[sfb]);\n }\n return Math.max(1e-20, klemm_noise);\n }\n function quant_compare(quant_comp, best, calc, gi, distort) {\n var better;\n switch (quant_comp) {\n default:\n case 9: {\n if (best.over_count > 0) {\n better = calc.over_SSD <= best.over_SSD;\n if (calc.over_SSD == best.over_SSD)\n better = calc.bits < best.bits;\n } else {\n better = calc.max_noise < 0 && calc.max_noise * 10 + calc.bits <= best.max_noise * 10 + best.bits;\n }\n break;\n }\n case 0:\n better = calc.over_count < best.over_count || calc.over_count == best.over_count && calc.over_noise < best.over_noise || calc.over_count == best.over_count && BitStream.EQ(calc.over_noise, best.over_noise) && calc.tot_noise < best.tot_noise;\n break;\n case 8:\n calc.max_noise = get_klemm_noise(distort, gi);\n case 1:\n better = calc.max_noise < best.max_noise;\n break;\n case 2:\n better = calc.tot_noise < best.tot_noise;\n break;\n case 3:\n better = calc.tot_noise < best.tot_noise && calc.max_noise < best.max_noise;\n break;\n case 4:\n better = calc.max_noise <= 0 && best.max_noise > 0.2 || calc.max_noise <= 0 && best.max_noise < 0 && best.max_noise > calc.max_noise - 0.2 && calc.tot_noise < best.tot_noise || calc.max_noise <= 0 && best.max_noise > 0 && best.max_noise > calc.max_noise - 0.2 && calc.tot_noise < best.tot_noise + best.over_noise || calc.max_noise > 0 && best.max_noise > -0.05 && best.max_noise > calc.max_noise - 0.1 && calc.tot_noise + calc.over_noise < best.tot_noise + best.over_noise || calc.max_noise > 0 && best.max_noise > -0.1 && best.max_noise > calc.max_noise - 0.15 && calc.tot_noise + calc.over_noise + calc.over_noise < best.tot_noise + best.over_noise + best.over_noise;\n break;\n case 5:\n better = calc.over_noise < best.over_noise || BitStream.EQ(calc.over_noise, best.over_noise) && calc.tot_noise < best.tot_noise;\n break;\n case 6:\n better = calc.over_noise < best.over_noise || BitStream.EQ(calc.over_noise, best.over_noise) && (calc.max_noise < best.max_noise || BitStream.EQ(calc.max_noise, best.max_noise) && calc.tot_noise <= best.tot_noise);\n break;\n case 7:\n better = calc.over_count < best.over_count || calc.over_noise < best.over_noise;\n break;\n }\n if (best.over_count == 0) {\n better = better && calc.bits < best.bits;\n }\n return better;\n }\n function amp_scalefac_bands(gfp, cod_info, distort, xrpow, bRefine) {\n var gfc = gfp.internal_flags;\n var ifqstep34;\n if (cod_info.scalefac_scale == 0) {\n ifqstep34 = 1.2968395546510096;\n } else {\n ifqstep34 = 1.6817928305074292;\n }\n var trigger2 = 0;\n for (var sfb = 0; sfb < cod_info.sfbmax; sfb++) {\n if (trigger2 < distort[sfb])\n trigger2 = distort[sfb];\n }\n var noise_shaping_amp = gfc.noise_shaping_amp;\n if (noise_shaping_amp == 3) {\n if (bRefine)\n noise_shaping_amp = 2;\n else\n noise_shaping_amp = 1;\n }\n switch (noise_shaping_amp) {\n case 2:\n break;\n case 1:\n if (trigger2 > 1)\n trigger2 = Math.pow(trigger2, 0.5);\n else\n trigger2 *= 0.95;\n break;\n case 0:\n default:\n if (trigger2 > 1)\n trigger2 = 1;\n else\n trigger2 *= 0.95;\n break;\n }\n var j = 0;\n for (var sfb = 0; sfb < cod_info.sfbmax; sfb++) {\n var width = cod_info.width[sfb];\n var l;\n j += width;\n if (distort[sfb] < trigger2)\n continue;\n if ((gfc.substep_shaping & 2) != 0) {\n gfc.pseudohalf[sfb] = gfc.pseudohalf[sfb] == 0 ? 1 : 0;\n if (gfc.pseudohalf[sfb] == 0 && gfc.noise_shaping_amp == 2)\n return;\n }\n cod_info.scalefac[sfb]++;\n for (l = -width; l < 0; l++) {\n xrpow[j + l] *= ifqstep34;\n if (xrpow[j + l] > cod_info.xrpow_max)\n cod_info.xrpow_max = xrpow[j + l];\n }\n if (gfc.noise_shaping_amp == 2)\n return;\n }\n }\n function inc_scalefac_scale(cod_info, xrpow) {\n var ifqstep34 = 1.2968395546510096;\n var j = 0;\n for (var sfb = 0; sfb < cod_info.sfbmax; sfb++) {\n var width = cod_info.width[sfb];\n var s = cod_info.scalefac[sfb];\n if (cod_info.preflag != 0)\n s += qupvt.pretab[sfb];\n j += width;\n if ((s & 1) != 0) {\n s++;\n for (var l = -width; l < 0; l++) {\n xrpow[j + l] *= ifqstep34;\n if (xrpow[j + l] > cod_info.xrpow_max) {\n cod_info.xrpow_max = xrpow[j + l];\n }\n }\n }\n cod_info.scalefac[sfb] = s >> 1;\n }\n cod_info.preflag = 0;\n cod_info.scalefac_scale = 1;\n }\n function inc_subblock_gain(gfc, cod_info, xrpow) {\n var sfb;\n var scalefac = cod_info.scalefac;\n for (sfb = 0; sfb < cod_info.sfb_lmax; sfb++) {\n if (scalefac[sfb] >= 16)\n return true;\n }\n for (var window2 = 0; window2 < 3; window2++) {\n var s1 = 0;\n var s2 = 0;\n for (sfb = cod_info.sfb_lmax + window2; sfb < cod_info.sfbdivide; sfb += 3) {\n if (s1 < scalefac[sfb])\n s1 = scalefac[sfb];\n }\n for (; sfb < cod_info.sfbmax; sfb += 3) {\n if (s2 < scalefac[sfb])\n s2 = scalefac[sfb];\n }\n if (s1 < 16 && s2 < 8)\n continue;\n if (cod_info.subblock_gain[window2] >= 7)\n return true;\n cod_info.subblock_gain[window2]++;\n var j = gfc.scalefac_band.l[cod_info.sfb_lmax];\n for (sfb = cod_info.sfb_lmax + window2; sfb < cod_info.sfbmax; sfb += 3) {\n var amp;\n var width = cod_info.width[sfb];\n var s = scalefac[sfb];\n s = s - (4 >> cod_info.scalefac_scale);\n if (s >= 0) {\n scalefac[sfb] = s;\n j += width * 3;\n continue;\n }\n scalefac[sfb] = 0;\n {\n var gain = 210 + (s << cod_info.scalefac_scale + 1);\n amp = qupvt.IPOW20(gain);\n }\n j += width * (window2 + 1);\n for (var l = -width; l < 0; l++) {\n xrpow[j + l] *= amp;\n if (xrpow[j + l] > cod_info.xrpow_max) {\n cod_info.xrpow_max = xrpow[j + l];\n }\n }\n j += width * (3 - window2 - 1);\n }\n {\n var amp = qupvt.IPOW20(202);\n j += cod_info.width[sfb] * (window2 + 1);\n for (var l = -cod_info.width[sfb]; l < 0; l++) {\n xrpow[j + l] *= amp;\n if (xrpow[j + l] > cod_info.xrpow_max) {\n cod_info.xrpow_max = xrpow[j + l];\n }\n }\n }\n }\n return false;\n }\n function balance_noise(gfp, cod_info, distort, xrpow, bRefine) {\n var gfc = gfp.internal_flags;\n amp_scalefac_bands(gfp, cod_info, distort, xrpow, bRefine);\n var status = loop_break(cod_info);\n if (status)\n return false;\n if (gfc.mode_gr == 2)\n status = tk.scale_bitcount(cod_info);\n else\n status = tk.scale_bitcount_lsf(gfc, cod_info);\n if (!status)\n return true;\n if (gfc.noise_shaping > 1) {\n Arrays$1.fill(gfc.pseudohalf, 0);\n if (cod_info.scalefac_scale == 0) {\n inc_scalefac_scale(cod_info, xrpow);\n status = false;\n } else {\n if (cod_info.block_type == Encoder.SHORT_TYPE && gfc.subblock_gain > 0) {\n status = inc_subblock_gain(gfc, cod_info, xrpow) || loop_break(cod_info);\n }\n }\n }\n if (!status) {\n if (gfc.mode_gr == 2)\n status = tk.scale_bitcount(cod_info);\n else\n status = tk.scale_bitcount_lsf(gfc, cod_info);\n }\n return !status;\n }\n this.outer_loop = function(gfp, cod_info, l3_xmin, xrpow, ch, targ_bits) {\n var gfc = gfp.internal_flags;\n var cod_info_w = new GrInfo();\n var save_xrpow = new_float(576);\n var distort = new_float(L3Side$1.SFBMAX);\n var best_noise_info = new CalcNoiseResult$1();\n var better;\n var prev_noise = new CalcNoiseData();\n var best_part2_3_length = 9999999;\n var bEndOfSearch = false;\n var bRefine = false;\n var best_ggain_pass1 = 0;\n bin_search_StepSize(gfc, cod_info, targ_bits, ch, xrpow);\n if (gfc.noise_shaping == 0) {\n return 100;\n }\n qupvt.calc_noise(cod_info, l3_xmin, distort, best_noise_info, prev_noise);\n best_noise_info.bits = cod_info.part2_3_length;\n cod_info_w.assign(cod_info);\n var age = 0;\n System$1.arraycopy(xrpow, 0, save_xrpow, 0, 576);\n while (!bEndOfSearch) {\n do {\n var noise_info = new CalcNoiseResult$1();\n var search_limit;\n var maxggain = 255;\n if ((gfc.substep_shaping & 2) != 0) {\n search_limit = 20;\n } else {\n search_limit = 3;\n }\n if (gfc.sfb21_extra) {\n if (distort[cod_info_w.sfbmax] > 1)\n break;\n if (cod_info_w.block_type == Encoder.SHORT_TYPE && (distort[cod_info_w.sfbmax + 1] > 1 || distort[cod_info_w.sfbmax + 2] > 1)) {\n break;\n }\n }\n if (!balance_noise(gfp, cod_info_w, distort, xrpow, bRefine))\n break;\n if (cod_info_w.scalefac_scale != 0)\n maxggain = 254;\n var huff_bits = targ_bits - cod_info_w.part2_length;\n if (huff_bits <= 0)\n break;\n while ((cod_info_w.part2_3_length = tk.count_bits(\n gfc,\n xrpow,\n cod_info_w,\n prev_noise\n )) > huff_bits && cod_info_w.global_gain <= maxggain) {\n cod_info_w.global_gain++;\n }\n if (cod_info_w.global_gain > maxggain)\n break;\n if (best_noise_info.over_count == 0) {\n while ((cod_info_w.part2_3_length = tk.count_bits(\n gfc,\n xrpow,\n cod_info_w,\n prev_noise\n )) > best_part2_3_length && cod_info_w.global_gain <= maxggain) {\n cod_info_w.global_gain++;\n }\n if (cod_info_w.global_gain > maxggain)\n break;\n }\n qupvt.calc_noise(cod_info_w, l3_xmin, distort, noise_info, prev_noise);\n noise_info.bits = cod_info_w.part2_3_length;\n if (cod_info.block_type != Encoder.SHORT_TYPE) {\n better = gfp.quant_comp;\n } else\n better = gfp.quant_comp_short;\n better = quant_compare(\n better,\n best_noise_info,\n noise_info,\n cod_info_w,\n distort\n ) ? 1 : 0;\n if (better != 0) {\n best_part2_3_length = cod_info.part2_3_length;\n best_noise_info = noise_info;\n cod_info.assign(cod_info_w);\n age = 0;\n System$1.arraycopy(xrpow, 0, save_xrpow, 0, 576);\n } else {\n if (gfc.full_outer_loop == 0) {\n if (++age > search_limit && best_noise_info.over_count == 0)\n break;\n if (gfc.noise_shaping_amp == 3 && bRefine && age > 30)\n break;\n if (gfc.noise_shaping_amp == 3 && bRefine && cod_info_w.global_gain - best_ggain_pass1 > 15) {\n break;\n }\n }\n }\n } while (cod_info_w.global_gain + cod_info_w.scalefac_scale < 255);\n if (gfc.noise_shaping_amp == 3) {\n if (!bRefine) {\n cod_info_w.assign(cod_info);\n System$1.arraycopy(save_xrpow, 0, xrpow, 0, 576);\n age = 0;\n best_ggain_pass1 = cod_info_w.global_gain;\n bRefine = true;\n } else {\n bEndOfSearch = true;\n }\n } else {\n bEndOfSearch = true;\n }\n }\n assert$3(cod_info.global_gain + cod_info.scalefac_scale <= 255);\n if (gfp.VBR == VbrMode$1.vbr_rh || gfp.VBR == VbrMode$1.vbr_mtrh) {\n System$1.arraycopy(save_xrpow, 0, xrpow, 0, 576);\n } else if ((gfc.substep_shaping & 1) != 0) {\n trancate_smallspectrums(gfc, cod_info, l3_xmin, xrpow);\n }\n return best_noise_info.over_count;\n };\n this.iteration_finish_one = function(gfc, gr, ch) {\n var l3_side = gfc.l3_side;\n var cod_info = l3_side.tt[gr][ch];\n tk.best_scalefac_store(gfc, gr, ch, l3_side);\n if (gfc.use_best_huffman == 1)\n tk.best_huffman_divide(gfc, cod_info);\n rv.ResvAdjust(gfc, cod_info);\n };\n this.VBR_encode_granule = function(gfp, cod_info, l3_xmin, xrpow, ch, min_bits, max_bits) {\n var gfc = gfp.internal_flags;\n var bst_cod_info = new GrInfo();\n var bst_xrpow = new_float(576);\n var Max_bits = max_bits;\n var real_bits = max_bits + 1;\n var this_bits = (max_bits + min_bits) / 2;\n var dbits;\n var over;\n var found = 0;\n var sfb21_extra = gfc.sfb21_extra;\n assert$3(Max_bits <= LameInternalFlags.MAX_BITS_PER_CHANNEL);\n Arrays$1.fill(bst_cod_info.l3_enc, 0);\n do {\n if (this_bits > Max_bits - 42)\n gfc.sfb21_extra = false;\n else\n gfc.sfb21_extra = sfb21_extra;\n over = outer_loop(gfp, cod_info, l3_xmin, xrpow, ch, this_bits);\n if (over <= 0) {\n found = 1;\n real_bits = cod_info.part2_3_length;\n bst_cod_info.assign(cod_info);\n System$1.arraycopy(xrpow, 0, bst_xrpow, 0, 576);\n max_bits = real_bits - 32;\n dbits = max_bits - min_bits;\n this_bits = (max_bits + min_bits) / 2;\n } else {\n min_bits = this_bits + 32;\n dbits = max_bits - min_bits;\n this_bits = (max_bits + min_bits) / 2;\n if (found != 0) {\n found = 2;\n cod_info.assign(bst_cod_info);\n System$1.arraycopy(bst_xrpow, 0, xrpow, 0, 576);\n }\n }\n } while (dbits > 12);\n gfc.sfb21_extra = sfb21_extra;\n if (found == 2) {\n System$1.arraycopy(bst_cod_info.l3_enc, 0, cod_info.l3_enc, 0, 576);\n }\n assert$3(cod_info.part2_3_length <= Max_bits);\n };\n this.get_framebits = function(gfp, frameBits) {\n var gfc = gfp.internal_flags;\n gfc.bitrate_index = gfc.VBR_min_bitrate;\n var bitsPerFrame = bs.getframebits(gfp);\n gfc.bitrate_index = 1;\n bitsPerFrame = bs.getframebits(gfp);\n for (var i = 1; i <= gfc.VBR_max_bitrate; i++) {\n gfc.bitrate_index = i;\n var mb = new MeanBits(bitsPerFrame);\n frameBits[i] = rv.ResvFrameBegin(gfp, mb);\n bitsPerFrame = mb.bits;\n }\n };\n this.VBR_old_prepare = function(gfp, pe, ms_ener_ratio, ratio, l3_xmin, frameBits, min_bits, max_bits, bands) {\n var gfc = gfp.internal_flags;\n var masking_lower_db;\n var adjust = 0;\n var analog_silence = 1;\n var bits = 0;\n gfc.bitrate_index = gfc.VBR_max_bitrate;\n var avg = rv.ResvFrameBegin(gfp, new MeanBits(0)) / gfc.mode_gr;\n get_framebits(gfp, frameBits);\n for (var gr = 0; gr < gfc.mode_gr; gr++) {\n var mxb = qupvt.on_pe(gfp, pe, max_bits[gr], avg, gr, 0);\n if (gfc.mode_ext == Encoder.MPG_MD_MS_LR) {\n ms_convert(gfc.l3_side, gr);\n qupvt.reduce_side(max_bits[gr], ms_ener_ratio[gr], avg, mxb);\n }\n for (var ch = 0; ch < gfc.channels_out; ++ch) {\n var cod_info = gfc.l3_side.tt[gr][ch];\n if (cod_info.block_type != Encoder.SHORT_TYPE) {\n adjust = 1.28 / (1 + Math.exp(3.5 - pe[gr][ch] / 300)) - 0.05;\n masking_lower_db = gfc.PSY.mask_adjust - adjust;\n } else {\n adjust = 2.56 / (1 + Math.exp(3.5 - pe[gr][ch] / 300)) - 0.14;\n masking_lower_db = gfc.PSY.mask_adjust_short - adjust;\n }\n gfc.masking_lower = Math.pow(10, masking_lower_db * 0.1);\n init_outer_loop(gfc, cod_info);\n bands[gr][ch] = qupvt.calc_xmin(\n gfp,\n ratio[gr][ch],\n cod_info,\n l3_xmin[gr][ch]\n );\n if (bands[gr][ch] != 0)\n analog_silence = 0;\n min_bits[gr][ch] = 126;\n bits += max_bits[gr][ch];\n }\n }\n for (var gr = 0; gr < gfc.mode_gr; gr++) {\n for (var ch = 0; ch < gfc.channels_out; ch++) {\n if (bits > frameBits[gfc.VBR_max_bitrate]) {\n max_bits[gr][ch] *= frameBits[gfc.VBR_max_bitrate];\n max_bits[gr][ch] /= bits;\n }\n if (min_bits[gr][ch] > max_bits[gr][ch]) {\n min_bits[gr][ch] = max_bits[gr][ch];\n }\n }\n }\n return analog_silence;\n };\n this.bitpressure_strategy = function(gfc, l3_xmin, min_bits, max_bits) {\n for (var gr = 0; gr < gfc.mode_gr; gr++) {\n for (var ch = 0; ch < gfc.channels_out; ch++) {\n var gi = gfc.l3_side.tt[gr][ch];\n var pxmin = l3_xmin[gr][ch];\n var pxminPos = 0;\n for (var sfb = 0; sfb < gi.psy_lmax; sfb++) {\n pxmin[pxminPos++] *= 1 + 0.029 * sfb * sfb / Encoder.SBMAX_l / Encoder.SBMAX_l;\n }\n if (gi.block_type == Encoder.SHORT_TYPE) {\n for (var sfb = gi.sfb_smin; sfb < Encoder.SBMAX_s; sfb++) {\n pxmin[pxminPos++] *= 1 + 0.029 * sfb * sfb / Encoder.SBMAX_s / Encoder.SBMAX_s;\n pxmin[pxminPos++] *= 1 + 0.029 * sfb * sfb / Encoder.SBMAX_s / Encoder.SBMAX_s;\n pxmin[pxminPos++] *= 1 + 0.029 * sfb * sfb / Encoder.SBMAX_s / Encoder.SBMAX_s;\n }\n }\n max_bits[gr][ch] = 0 | Math.max(min_bits[gr][ch], 0.9 * max_bits[gr][ch]);\n }\n }\n };\n this.VBR_new_prepare = function(gfp, pe, ratio, l3_xmin, frameBits, max_bits) {\n var gfc = gfp.internal_flags;\n var analog_silence = 1;\n var avg = 0;\n var bits = 0;\n var maximum_framebits;\n if (!gfp.free_format) {\n gfc.bitrate_index = gfc.VBR_max_bitrate;\n var mb = new MeanBits(avg);\n rv.ResvFrameBegin(gfp, mb);\n avg = mb.bits;\n get_framebits(gfp, frameBits);\n maximum_framebits = frameBits[gfc.VBR_max_bitrate];\n } else {\n gfc.bitrate_index = 0;\n var mb = new MeanBits(avg);\n maximum_framebits = rv.ResvFrameBegin(gfp, mb);\n avg = mb.bits;\n frameBits[0] = maximum_framebits;\n }\n for (var gr = 0; gr < gfc.mode_gr; gr++) {\n qupvt.on_pe(gfp, pe, max_bits[gr], avg, gr, 0);\n if (gfc.mode_ext == Encoder.MPG_MD_MS_LR) {\n ms_convert(gfc.l3_side, gr);\n }\n for (var ch = 0; ch < gfc.channels_out; ++ch) {\n var cod_info = gfc.l3_side.tt[gr][ch];\n gfc.masking_lower = Math.pow(10, gfc.PSY.mask_adjust * 0.1);\n init_outer_loop(gfc, cod_info);\n if (qupvt.calc_xmin(gfp, ratio[gr][ch], cod_info, l3_xmin[gr][ch]) != 0) {\n analog_silence = 0;\n }\n bits += max_bits[gr][ch];\n }\n }\n for (var gr = 0; gr < gfc.mode_gr; gr++) {\n for (var ch = 0; ch < gfc.channels_out; ch++) {\n if (bits > maximum_framebits) {\n max_bits[gr][ch] *= maximum_framebits;\n max_bits[gr][ch] /= bits;\n }\n }\n }\n return analog_silence;\n };\n this.calc_target_bits = function(gfp, pe, ms_ener_ratio, targ_bits, analog_silence_bits, max_frame_bits) {\n var gfc = gfp.internal_flags;\n var l3_side = gfc.l3_side;\n var res_factor;\n var gr;\n var ch;\n var totbits;\n var mean_bits = 0;\n gfc.bitrate_index = gfc.VBR_max_bitrate;\n var mb = new MeanBits(mean_bits);\n max_frame_bits[0] = rv.ResvFrameBegin(gfp, mb);\n mean_bits = mb.bits;\n gfc.bitrate_index = 1;\n mean_bits = bs.getframebits(gfp) - gfc.sideinfo_len * 8;\n analog_silence_bits[0] = mean_bits / (gfc.mode_gr * gfc.channels_out);\n mean_bits = gfp.VBR_mean_bitrate_kbps * gfp.framesize * 1e3;\n if ((gfc.substep_shaping & 1) != 0)\n mean_bits *= 1.09;\n mean_bits /= gfp.out_samplerate;\n mean_bits -= gfc.sideinfo_len * 8;\n mean_bits /= gfc.mode_gr * gfc.channels_out;\n res_factor = 0.93 + 0.07 * (11 - gfp.compression_ratio) / (11 - 5.5);\n if (res_factor < 0.9)\n res_factor = 0.9;\n if (res_factor > 1)\n res_factor = 1;\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n var sum = 0;\n for (ch = 0; ch < gfc.channels_out; ch++) {\n targ_bits[gr][ch] = int(res_factor * mean_bits);\n if (pe[gr][ch] > 700) {\n var add_bits = int((pe[gr][ch] - 700) / 1.4);\n var cod_info = l3_side.tt[gr][ch];\n targ_bits[gr][ch] = int(res_factor * mean_bits);\n if (cod_info.block_type == Encoder.SHORT_TYPE) {\n if (add_bits < mean_bits / 2)\n add_bits = mean_bits / 2;\n }\n if (add_bits > mean_bits * 3 / 2)\n add_bits = mean_bits * 3 / 2;\n else if (add_bits < 0)\n add_bits = 0;\n targ_bits[gr][ch] += add_bits;\n }\n if (targ_bits[gr][ch] > LameInternalFlags.MAX_BITS_PER_CHANNEL) {\n targ_bits[gr][ch] = LameInternalFlags.MAX_BITS_PER_CHANNEL;\n }\n sum += targ_bits[gr][ch];\n }\n if (sum > LameInternalFlags.MAX_BITS_PER_GRANULE) {\n for (ch = 0; ch < gfc.channels_out; ++ch) {\n targ_bits[gr][ch] *= LameInternalFlags.MAX_BITS_PER_GRANULE;\n targ_bits[gr][ch] /= sum;\n }\n }\n }\n if (gfc.mode_ext == Encoder.MPG_MD_MS_LR) {\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n qupvt.reduce_side(\n targ_bits[gr],\n ms_ener_ratio[gr],\n mean_bits * gfc.channels_out,\n LameInternalFlags.MAX_BITS_PER_GRANULE\n );\n }\n }\n totbits = 0;\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n if (targ_bits[gr][ch] > LameInternalFlags.MAX_BITS_PER_CHANNEL) {\n targ_bits[gr][ch] = LameInternalFlags.MAX_BITS_PER_CHANNEL;\n }\n totbits += targ_bits[gr][ch];\n }\n }\n if (totbits > max_frame_bits[0]) {\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n targ_bits[gr][ch] *= max_frame_bits[0];\n targ_bits[gr][ch] /= totbits;\n }\n }\n }\n };\n}\nvar assert$2 = common.assert;\nfunction Reservoir() {\n var bs;\n this.setModules = function(_bs) {\n bs = _bs;\n };\n this.ResvFrameBegin = function(gfp, mean_bits) {\n var gfc = gfp.internal_flags;\n var maxmp3buf;\n var l3_side = gfc.l3_side;\n var frameLength = bs.getframebits(gfp);\n mean_bits.bits = (frameLength - gfc.sideinfo_len * 8) / gfc.mode_gr;\n var resvLimit = 8 * 256 * gfc.mode_gr - 8;\n if (gfp.brate > 320) {\n maxmp3buf = 8 * int(gfp.brate * 1e3 / (gfp.out_samplerate / 1152) / 8 + 0.5);\n } else {\n maxmp3buf = 8 * 1440;\n if (gfp.strict_ISO) {\n maxmp3buf = 8 * int(32e4 / (gfp.out_samplerate / 1152) / 8 + 0.5);\n }\n }\n gfc.ResvMax = maxmp3buf - frameLength;\n if (gfc.ResvMax > resvLimit)\n gfc.ResvMax = resvLimit;\n if (gfc.ResvMax < 0 || gfp.disable_reservoir)\n gfc.ResvMax = 0;\n var fullFrameBits = mean_bits.bits * gfc.mode_gr + Math.min(gfc.ResvSize, gfc.ResvMax);\n if (fullFrameBits > maxmp3buf)\n fullFrameBits = maxmp3buf;\n assert$2(gfc.ResvMax % 8 == 0);\n assert$2(gfc.ResvMax >= 0);\n l3_side.resvDrain_pre = 0;\n if (gfc.pinfo != null) {\n gfc.pinfo.mean_bits = mean_bits.bits / 2;\n gfc.pinfo.resvsize = gfc.ResvSize;\n }\n return fullFrameBits;\n };\n this.ResvMaxBits = function(gfp, mean_bits, targ_bits, cbr) {\n var gfc = gfp.internal_flags;\n var add_bits;\n var ResvSize = gfc.ResvSize;\n var ResvMax = gfc.ResvMax;\n if (cbr != 0)\n ResvSize += mean_bits;\n if ((gfc.substep_shaping & 1) != 0)\n ResvMax *= 0.9;\n targ_bits.bits = mean_bits;\n if (ResvSize * 10 > ResvMax * 9) {\n add_bits = ResvSize - ResvMax * 9 / 10;\n targ_bits.bits += add_bits;\n gfc.substep_shaping |= 128;\n } else {\n add_bits = 0;\n gfc.substep_shaping &= 127;\n if (!gfp.disable_reservoir && (gfc.substep_shaping & 1) == 0) {\n targ_bits.bits -= 0.1 * mean_bits;\n }\n }\n var extra_bits = ResvSize < gfc.ResvMax * 6 / 10 ? ResvSize : gfc.ResvMax * 6 / 10;\n extra_bits -= add_bits;\n if (extra_bits < 0)\n extra_bits = 0;\n return extra_bits;\n };\n this.ResvAdjust = function(gfc, gi) {\n gfc.ResvSize -= gi.part2_3_length + gi.part2_length;\n };\n this.ResvFrameEnd = function(gfc, mean_bits) {\n var over_bits;\n var l3_side = gfc.l3_side;\n gfc.ResvSize += mean_bits * gfc.mode_gr;\n var stuffingBits = 0;\n l3_side.resvDrain_post = 0;\n l3_side.resvDrain_pre = 0;\n if ((over_bits = gfc.ResvSize % 8) != 0)\n stuffingBits += over_bits;\n over_bits = gfc.ResvSize - stuffingBits - gfc.ResvMax;\n if (over_bits > 0) {\n stuffingBits += over_bits;\n }\n {\n var mdb_bytes = Math.min(l3_side.main_data_begin * 8, stuffingBits) / 8;\n l3_side.resvDrain_pre += 8 * mdb_bytes;\n stuffingBits -= 8 * mdb_bytes;\n gfc.ResvSize -= 8 * mdb_bytes;\n l3_side.main_data_begin -= mdb_bytes;\n }\n l3_side.resvDrain_post += stuffingBits;\n gfc.ResvSize -= stuffingBits;\n };\n}\nfunction Version() {\n var LAME_URL = \"http://www.mp3dev.org/\";\n var LAME_MAJOR_VERSION = 3;\n var LAME_MINOR_VERSION = 98;\n var LAME_PATCH_VERSION = 4;\n var PSY_MAJOR_VERSION = 0;\n var PSY_MINOR_VERSION = 93;\n this.getLameVersion = function() {\n return LAME_MAJOR_VERSION + \".\" + LAME_MINOR_VERSION + \".\" + LAME_PATCH_VERSION;\n };\n this.getLameShortVersion = function() {\n return LAME_MAJOR_VERSION + \".\" + LAME_MINOR_VERSION + \".\" + LAME_PATCH_VERSION;\n };\n this.getLameVeryShortVersion = function() {\n return \"LAME\" + LAME_MAJOR_VERSION + \".\" + LAME_MINOR_VERSION + \"r\";\n };\n this.getPsyVersion = function() {\n return PSY_MAJOR_VERSION + \".\" + PSY_MINOR_VERSION;\n };\n this.getLameUrl = function() {\n return LAME_URL;\n };\n this.getLameOsBitness = function() {\n return \"32bits\";\n };\n}\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar ShortBlock = common.ShortBlock;\nvar Arrays = common.Arrays;\nvar new_byte$1 = common.new_byte;\nvar assert$1 = common.assert;\nVBRTag.NUMTOCENTRIES = 100;\nVBRTag.MAXFRAMESIZE = 2880;\nfunction VBRTag() {\n var lame;\n var bs;\n var v;\n this.setModules = function(_lame, _bs, _v) {\n lame = _lame;\n bs = _bs;\n v = _v;\n };\n var FRAMES_FLAG = 1;\n var BYTES_FLAG = 2;\n var TOC_FLAG = 4;\n var VBR_SCALE_FLAG = 8;\n var NUMTOCENTRIES = VBRTag.NUMTOCENTRIES;\n var MAXFRAMESIZE = VBRTag.MAXFRAMESIZE;\n var VBRHEADERSIZE = NUMTOCENTRIES + 4 + 4 + 4 + 4 + 4;\n var LAMEHEADERSIZE = VBRHEADERSIZE + 9 + 1 + 1 + 8 + 1 + 1 + 3 + 1 + 1 + 2 + 4 + 2 + 2;\n var XING_BITRATE1 = 128;\n var XING_BITRATE2 = 64;\n var XING_BITRATE25 = 32;\n var ISO_8859_1 = null;\n var VBRTag0 = \"Xing\";\n var VBRTag1 = \"Info\";\n var crc16Lookup = [\n 0,\n 49345,\n 49537,\n 320,\n 49921,\n 960,\n 640,\n 49729,\n 50689,\n 1728,\n 1920,\n 51009,\n 1280,\n 50625,\n 50305,\n 1088,\n 52225,\n 3264,\n 3456,\n 52545,\n 3840,\n 53185,\n 52865,\n 3648,\n 2560,\n 51905,\n 52097,\n 2880,\n 51457,\n 2496,\n 2176,\n 51265,\n 55297,\n 6336,\n 6528,\n 55617,\n 6912,\n 56257,\n 55937,\n 6720,\n 7680,\n 57025,\n 57217,\n 8e3,\n 56577,\n 7616,\n 7296,\n 56385,\n 5120,\n 54465,\n 54657,\n 5440,\n 55041,\n 6080,\n 5760,\n 54849,\n 53761,\n 4800,\n 4992,\n 54081,\n 4352,\n 53697,\n 53377,\n 4160,\n 61441,\n 12480,\n 12672,\n 61761,\n 13056,\n 62401,\n 62081,\n 12864,\n 13824,\n 63169,\n 63361,\n 14144,\n 62721,\n 13760,\n 13440,\n 62529,\n 15360,\n 64705,\n 64897,\n 15680,\n 65281,\n 16320,\n 16e3,\n 65089,\n 64001,\n 15040,\n 15232,\n 64321,\n 14592,\n 63937,\n 63617,\n 14400,\n 10240,\n 59585,\n 59777,\n 10560,\n 60161,\n 11200,\n 10880,\n 59969,\n 60929,\n 11968,\n 12160,\n 61249,\n 11520,\n 60865,\n 60545,\n 11328,\n 58369,\n 9408,\n 9600,\n 58689,\n 9984,\n 59329,\n 59009,\n 9792,\n 8704,\n 58049,\n 58241,\n 9024,\n 57601,\n 8640,\n 8320,\n 57409,\n 40961,\n 24768,\n 24960,\n 41281,\n 25344,\n 41921,\n 41601,\n 25152,\n 26112,\n 42689,\n 42881,\n 26432,\n 42241,\n 26048,\n 25728,\n 42049,\n 27648,\n 44225,\n 44417,\n 27968,\n 44801,\n 28608,\n 28288,\n 44609,\n 43521,\n 27328,\n 27520,\n 43841,\n 26880,\n 43457,\n 43137,\n 26688,\n 30720,\n 47297,\n 47489,\n 31040,\n 47873,\n 31680,\n 31360,\n 47681,\n 48641,\n 32448,\n 32640,\n 48961,\n 32e3,\n 48577,\n 48257,\n 31808,\n 46081,\n 29888,\n 30080,\n 46401,\n 30464,\n 47041,\n 46721,\n 30272,\n 29184,\n 45761,\n 45953,\n 29504,\n 45313,\n 29120,\n 28800,\n 45121,\n 20480,\n 37057,\n 37249,\n 20800,\n 37633,\n 21440,\n 21120,\n 37441,\n 38401,\n 22208,\n 22400,\n 38721,\n 21760,\n 38337,\n 38017,\n 21568,\n 39937,\n 23744,\n 23936,\n 40257,\n 24320,\n 40897,\n 40577,\n 24128,\n 23040,\n 39617,\n 39809,\n 23360,\n 39169,\n 22976,\n 22656,\n 38977,\n 34817,\n 18624,\n 18816,\n 35137,\n 19200,\n 35777,\n 35457,\n 19008,\n 19968,\n 36545,\n 36737,\n 20288,\n 36097,\n 19904,\n 19584,\n 35905,\n 17408,\n 33985,\n 34177,\n 17728,\n 34561,\n 18368,\n 18048,\n 34369,\n 33281,\n 17088,\n 17280,\n 33601,\n 16640,\n 33217,\n 32897,\n 16448\n ];\n function addVbr(v2, bitrate) {\n v2.nVbrNumFrames++;\n v2.sum += bitrate;\n v2.seen++;\n if (v2.seen < v2.want) {\n return;\n }\n if (v2.pos < v2.size) {\n v2.bag[v2.pos] = v2.sum;\n v2.pos++;\n v2.seen = 0;\n }\n if (v2.pos == v2.size) {\n for (var i = 1; i < v2.size; i += 2) {\n v2.bag[i / 2] = v2.bag[i];\n }\n v2.want *= 2;\n v2.pos /= 2;\n }\n }\n function xingSeekTable(v2, t) {\n if (v2.pos <= 0)\n return;\n for (var i = 1; i < NUMTOCENTRIES; ++i) {\n var j = i / NUMTOCENTRIES;\n var act;\n var sum;\n var indx = 0 | Math.floor(j * v2.pos);\n if (indx > v2.pos - 1)\n indx = v2.pos - 1;\n act = v2.bag[indx];\n sum = v2.sum;\n var seek_point = 0 | 256 * act / sum;\n if (seek_point > 255)\n seek_point = 255;\n t[i] = 255 & seek_point;\n }\n }\n this.addVbrFrame = function(gfp) {\n var gfc = gfp.internal_flags;\n var kbps = Tables.bitrate_table[gfp.version][gfc.bitrate_index];\n assert$1(gfc.VBR_seek_table.bag != null);\n addVbr(gfc.VBR_seek_table, kbps);\n };\n function extractInteger(buf, bufPos) {\n var x = buf[bufPos + 0] & 255;\n x <<= 8;\n x |= buf[bufPos + 1] & 255;\n x <<= 8;\n x |= buf[bufPos + 2] & 255;\n x <<= 8;\n x |= buf[bufPos + 3] & 255;\n return x;\n }\n function createInteger(buf, bufPos, value) {\n buf[bufPos + 0] = 255 & (value >> 24 & 255);\n buf[bufPos + 1] = 255 & (value >> 16 & 255);\n buf[bufPos + 2] = 255 & (value >> 8 & 255);\n buf[bufPos + 3] = 255 & (value & 255);\n }\n function createShort(buf, bufPos, value) {\n buf[bufPos + 0] = 255 & (value >> 8 & 255);\n buf[bufPos + 1] = 255 & (value & 255);\n }\n function isVbrTag(buf, bufPos) {\n return new String(buf, bufPos, VBRTag0.length(), ISO_8859_1).equals(VBRTag0) || new String(buf, bufPos, VBRTag1.length(), ISO_8859_1).equals(VBRTag1);\n }\n function shiftInBitsValue(x, n, v2) {\n return 255 & (x << n | v2 & ~(-1 << n));\n }\n function setLameTagFrameHeader(gfp, buffer) {\n var gfc = gfp.internal_flags;\n buffer[0] = shiftInBitsValue(buffer[0], 8, 255);\n buffer[1] = shiftInBitsValue(buffer[1], 3, 7);\n buffer[1] = shiftInBitsValue(\n buffer[1],\n 1,\n gfp.out_samplerate < 16e3 ? 0 : 1\n );\n buffer[1] = shiftInBitsValue(buffer[1], 1, gfp.version);\n buffer[1] = shiftInBitsValue(buffer[1], 2, 4 - 3);\n buffer[1] = shiftInBitsValue(buffer[1], 1, !gfp.error_protection ? 1 : 0);\n buffer[2] = shiftInBitsValue(buffer[2], 4, gfc.bitrate_index);\n buffer[2] = shiftInBitsValue(buffer[2], 2, gfc.samplerate_index);\n buffer[2] = shiftInBitsValue(buffer[2], 1, 0);\n buffer[2] = shiftInBitsValue(buffer[2], 1, gfp.extension);\n buffer[3] = shiftInBitsValue(buffer[3], 2, gfp.mode.ordinal());\n buffer[3] = shiftInBitsValue(buffer[3], 2, gfc.mode_ext);\n buffer[3] = shiftInBitsValue(buffer[3], 1, gfp.copyright);\n buffer[3] = shiftInBitsValue(buffer[3], 1, gfp.original);\n buffer[3] = shiftInBitsValue(buffer[3], 2, gfp.emphasis);\n buffer[0] = 255;\n var abyte = 255 & (buffer[1] & 241);\n var bitrate;\n if (gfp.version == 1) {\n bitrate = XING_BITRATE1;\n } else {\n if (gfp.out_samplerate < 16e3)\n bitrate = XING_BITRATE25;\n else\n bitrate = XING_BITRATE2;\n }\n if (gfp.VBR == VbrMode.vbr_off)\n bitrate = gfp.brate;\n var bbyte;\n if (gfp.free_format)\n bbyte = 0;\n else {\n bbyte = 255 & 16 * lame.BitrateIndex(bitrate, gfp.version, gfp.out_samplerate);\n }\n if (gfp.version == 1) {\n buffer[1] = 255 & (abyte | 10);\n abyte = 255 & (buffer[2] & 13);\n buffer[2] = 255 & (bbyte | abyte);\n } else {\n buffer[1] = 255 & (abyte | 2);\n abyte = 255 & (buffer[2] & 13);\n buffer[2] = 255 & (bbyte | abyte);\n }\n }\n this.getVbrTag = function(buf) {\n var pTagData = new VBRTagData();\n var bufPos = 0;\n pTagData.flags = 0;\n var hId = buf[bufPos + 1] >> 3 & 1;\n var hSrIndex = buf[bufPos + 2] >> 2 & 3;\n var hMode = buf[bufPos + 3] >> 6 & 3;\n var hBitrate = buf[bufPos + 2] >> 4 & 15;\n hBitrate = Tables.bitrate_table[hId][hBitrate];\n if (buf[bufPos + 1] >> 4 == 14) {\n pTagData.samprate = Tables.samplerate_table[2][hSrIndex];\n } else\n pTagData.samprate = Tables.samplerate_table[hId][hSrIndex];\n if (hId != 0) {\n if (hMode != 3)\n bufPos += 32 + 4;\n else\n bufPos += 17 + 4;\n } else {\n if (hMode != 3)\n bufPos += 17 + 4;\n else\n bufPos += 9 + 4;\n }\n if (!isVbrTag(buf, bufPos))\n return null;\n bufPos += 4;\n pTagData.hId = hId;\n var head_flags = pTagData.flags = extractInteger(buf, bufPos);\n bufPos += 4;\n if ((head_flags & FRAMES_FLAG) != 0) {\n pTagData.frames = extractInteger(buf, bufPos);\n bufPos += 4;\n }\n if ((head_flags & BYTES_FLAG) != 0) {\n pTagData.bytes = extractInteger(buf, bufPos);\n bufPos += 4;\n }\n if ((head_flags & TOC_FLAG) != 0) {\n if (pTagData.toc != null) {\n for (var i = 0; i < NUMTOCENTRIES; i++) {\n pTagData.toc[i] = buf[bufPos + i];\n }\n }\n bufPos += NUMTOCENTRIES;\n }\n pTagData.vbrScale = -1;\n if ((head_flags & VBR_SCALE_FLAG) != 0) {\n pTagData.vbrScale = extractInteger(buf, bufPos);\n bufPos += 4;\n }\n pTagData.headersize = (hId + 1) * 72e3 * hBitrate / pTagData.samprate;\n bufPos += 21;\n var encDelay = buf[bufPos + 0] << 4;\n encDelay += buf[bufPos + 1] >> 4;\n var encPadding = (buf[bufPos + 1] & 15) << 8;\n encPadding += buf[bufPos + 2] & 255;\n if (encDelay < 0 || encDelay > 3e3)\n encDelay = -1;\n if (encPadding < 0 || encPadding > 3e3)\n encPadding = -1;\n pTagData.encDelay = encDelay;\n pTagData.encPadding = encPadding;\n return pTagData;\n };\n this.InitVbrTag = function(gfp) {\n var gfc = gfp.internal_flags;\n var kbps_header;\n if (gfp.version == 1) {\n kbps_header = XING_BITRATE1;\n } else {\n if (gfp.out_samplerate < 16e3)\n kbps_header = XING_BITRATE25;\n else\n kbps_header = XING_BITRATE2;\n }\n if (gfp.VBR == VbrMode.vbr_off)\n kbps_header = gfp.brate;\n var totalFrameSize = (gfp.version + 1) * 72e3 * kbps_header / gfp.out_samplerate;\n var headerSize = gfc.sideinfo_len + LAMEHEADERSIZE;\n gfc.VBR_seek_table.TotalFrameSize = totalFrameSize;\n if (totalFrameSize < headerSize || totalFrameSize > MAXFRAMESIZE) {\n gfp.bWriteVbrTag = false;\n return;\n }\n gfc.VBR_seek_table.nVbrNumFrames = 0;\n gfc.VBR_seek_table.nBytesWritten = 0;\n gfc.VBR_seek_table.sum = 0;\n gfc.VBR_seek_table.seen = 0;\n gfc.VBR_seek_table.want = 1;\n gfc.VBR_seek_table.pos = 0;\n if (gfc.VBR_seek_table.bag == null) {\n gfc.VBR_seek_table.bag = new int[400]();\n gfc.VBR_seek_table.size = 400;\n }\n var buffer = new_byte$1(MAXFRAMESIZE);\n setLameTagFrameHeader(gfp, buffer);\n var n = gfc.VBR_seek_table.TotalFrameSize;\n for (var i = 0; i < n; ++i) {\n bs.add_dummy_byte(gfp, buffer[i] & 255, 1);\n }\n };\n function crcUpdateLookup(value, crc) {\n var tmp = crc ^ value;\n crc = crc >> 8 ^ crc16Lookup[tmp & 255];\n return crc;\n }\n this.updateMusicCRC = function(crc, buffer, bufferPos, size2) {\n for (var i = 0; i < size2; ++i) {\n crc[0] = crcUpdateLookup(buffer[bufferPos + i], crc[0]);\n }\n };\n function putLameVBR(gfp, musicLength, streamBuffer, streamBufferPos, crc) {\n var gfc = gfp.internal_flags;\n var bytesWritten = 0;\n var encDelay = gfp.encoder_delay;\n var encPadding = gfp.encoder_padding;\n var quality = 100 - 10 * gfp.VBR_q - gfp.quality;\n var version2 = v.getLameVeryShortVersion();\n var vbr;\n var revision = 0;\n var revMethod;\n var vbrTypeTranslator = [1, 5, 3, 2, 4, 0, 3];\n var lowpass = 0 | (gfp.lowpassfreq / 100 + 0.5 > 255 ? 255 : gfp.lowpassfreq / 100 + 0.5);\n var peakSignalAmplitude = 0;\n var radioReplayGain = 0;\n var audiophileReplayGain = 0;\n var noiseShaping = gfp.internal_flags.noise_shaping;\n var stereoMode = 0;\n var nonOptimal = 0;\n var sourceFreq = 0;\n var misc = 0;\n var musicCRC = 0;\n var expNPsyTune = (gfp.exp_nspsytune & 1) != 0;\n var safeJoint = (gfp.exp_nspsytune & 2) != 0;\n var noGapMore = false;\n var noGapPrevious = false;\n var noGapCount = gfp.internal_flags.nogap_total;\n var noGapCurr = gfp.internal_flags.nogap_current;\n var athType = gfp.ATHtype;\n var flags = 0;\n var abrBitrate;\n switch (gfp.VBR) {\n case vbr_abr:\n abrBitrate = gfp.VBR_mean_bitrate_kbps;\n break;\n case vbr_off:\n abrBitrate = gfp.brate;\n break;\n default:\n abrBitrate = gfp.VBR_min_bitrate_kbps;\n }\n if (gfp.VBR.ordinal() < vbrTypeTranslator.length) {\n vbr = vbrTypeTranslator[gfp.VBR.ordinal()];\n } else\n vbr = 0;\n revMethod = 16 * revision + vbr;\n if (gfc.findReplayGain) {\n if (gfc.RadioGain > 510)\n gfc.RadioGain = 510;\n if (gfc.RadioGain < -510)\n gfc.RadioGain = -510;\n radioReplayGain = 8192;\n radioReplayGain |= 3072;\n if (gfc.RadioGain >= 0) {\n radioReplayGain |= gfc.RadioGain;\n } else {\n radioReplayGain |= 512;\n radioReplayGain |= -gfc.RadioGain;\n }\n }\n if (gfc.findPeakSample) {\n peakSignalAmplitude = Math.abs(\n 0 | gfc.PeakSample / 32767 * Math.pow(2, 23) + 0.5\n );\n }\n if (noGapCount != -1) {\n if (noGapCurr > 0)\n noGapPrevious = true;\n if (noGapCurr < noGapCount - 1)\n noGapMore = true;\n }\n flags = athType + ((expNPsyTune ? 1 : 0) << 4) + ((safeJoint ? 1 : 0) << 5) + ((noGapMore ? 1 : 0) << 6) + ((noGapPrevious ? 1 : 0) << 7);\n if (quality < 0)\n quality = 0;\n switch (gfp.mode) {\n case MONO:\n stereoMode = 0;\n break;\n case STEREO:\n stereoMode = 1;\n break;\n case DUAL_CHANNEL:\n stereoMode = 2;\n break;\n case JOINT_STEREO:\n if (gfp.force_ms)\n stereoMode = 4;\n else\n stereoMode = 3;\n break;\n case NOT_SET:\n default:\n stereoMode = 7;\n break;\n }\n if (gfp.in_samplerate <= 32e3)\n sourceFreq = 0;\n else if (gfp.in_samplerate == 48e3)\n sourceFreq = 2;\n else if (gfp.in_samplerate > 48e3)\n sourceFreq = 3;\n else {\n sourceFreq = 1;\n }\n if (gfp.short_blocks == ShortBlock.short_block_forced || gfp.short_blocks == ShortBlock.short_block_dispensed || gfp.lowpassfreq == -1 && gfp.highpassfreq == -1 || gfp.scale_left < gfp.scale_right || gfp.scale_left > gfp.scale_right || gfp.disable_reservoir && gfp.brate < 320 || gfp.noATH || gfp.ATHonly || athType == 0 || gfp.in_samplerate <= 32e3) {\n nonOptimal = 1;\n }\n misc = noiseShaping + (stereoMode << 2) + (nonOptimal << 5) + (sourceFreq << 6);\n musicCRC = gfc.nMusicCRC;\n createInteger(streamBuffer, streamBufferPos + bytesWritten, quality);\n bytesWritten += 4;\n for (var j = 0; j < 9; j++) {\n streamBuffer[streamBufferPos + bytesWritten + j] = 255 & version2.charAt(j);\n }\n bytesWritten += 9;\n streamBuffer[streamBufferPos + bytesWritten] = 255 & revMethod;\n bytesWritten++;\n streamBuffer[streamBufferPos + bytesWritten] = 255 & lowpass;\n bytesWritten++;\n createInteger(\n streamBuffer,\n streamBufferPos + bytesWritten,\n peakSignalAmplitude\n );\n bytesWritten += 4;\n createShort(streamBuffer, streamBufferPos + bytesWritten, radioReplayGain);\n bytesWritten += 2;\n createShort(\n streamBuffer,\n streamBufferPos + bytesWritten,\n audiophileReplayGain\n );\n bytesWritten += 2;\n streamBuffer[streamBufferPos + bytesWritten] = 255 & flags;\n bytesWritten++;\n if (abrBitrate >= 255)\n streamBuffer[streamBufferPos + bytesWritten] = 255;\n else\n streamBuffer[streamBufferPos + bytesWritten] = 255 & abrBitrate;\n bytesWritten++;\n streamBuffer[streamBufferPos + bytesWritten] = 255 & encDelay >> 4;\n streamBuffer[streamBufferPos + bytesWritten + 1] = 255 & (encDelay << 4) + (encPadding >> 8);\n streamBuffer[streamBufferPos + bytesWritten + 2] = 255 & encPadding;\n bytesWritten += 3;\n streamBuffer[streamBufferPos + bytesWritten] = 255 & misc;\n bytesWritten++;\n streamBuffer[streamBufferPos + bytesWritten++] = 0;\n createShort(streamBuffer, streamBufferPos + bytesWritten, gfp.preset);\n bytesWritten += 2;\n createInteger(streamBuffer, streamBufferPos + bytesWritten, musicLength);\n bytesWritten += 4;\n createShort(streamBuffer, streamBufferPos + bytesWritten, musicCRC);\n bytesWritten += 2;\n for (var i = 0; i < bytesWritten; i++) {\n crc = crcUpdateLookup(streamBuffer[streamBufferPos + i], crc);\n }\n createShort(streamBuffer, streamBufferPos + bytesWritten, crc);\n bytesWritten += 2;\n return bytesWritten;\n }\n function skipId3v2(fpStream) {\n fpStream.seek(0);\n var id3v2Header = new_byte$1(10);\n fpStream.readFully(id3v2Header);\n var id3v2TagSize;\n if (!new String(id3v2Header, \"ISO-8859-1\").startsWith(\"ID3\")) {\n id3v2TagSize = ((id3v2Header[6] & 127) << 21 | (id3v2Header[7] & 127) << 14 | (id3v2Header[8] & 127) << 7 | id3v2Header[9] & 127) + id3v2Header.length;\n } else {\n id3v2TagSize = 0;\n }\n return id3v2TagSize;\n }\n this.getLameTagFrame = function(gfp, buffer) {\n var gfc = gfp.internal_flags;\n if (!gfp.bWriteVbrTag) {\n return 0;\n }\n if (gfc.Class_ID != Lame.LAME_ID) {\n return 0;\n }\n if (gfc.VBR_seek_table.pos <= 0) {\n return 0;\n }\n if (buffer.length < gfc.VBR_seek_table.TotalFrameSize) {\n return gfc.VBR_seek_table.TotalFrameSize;\n }\n Arrays.fill(buffer, 0, gfc.VBR_seek_table.TotalFrameSize, 0);\n setLameTagFrameHeader(gfp, buffer);\n var toc = new_byte$1(NUMTOCENTRIES);\n if (gfp.free_format) {\n for (var i = 1; i < NUMTOCENTRIES; ++i)\n toc[i] = 255 & 255 * i / 100;\n } else {\n xingSeekTable(gfc.VBR_seek_table, toc);\n }\n var streamIndex = gfc.sideinfo_len;\n if (gfp.error_protection)\n streamIndex -= 2;\n if (gfp.VBR == VbrMode.vbr_off) {\n buffer[streamIndex++] = 255 & VBRTag1.charAt(0);\n buffer[streamIndex++] = 255 & VBRTag1.charAt(1);\n buffer[streamIndex++] = 255 & VBRTag1.charAt(2);\n buffer[streamIndex++] = 255 & VBRTag1.charAt(3);\n } else {\n buffer[streamIndex++] = 255 & VBRTag0.charAt(0);\n buffer[streamIndex++] = 255 & VBRTag0.charAt(1);\n buffer[streamIndex++] = 255 & VBRTag0.charAt(2);\n buffer[streamIndex++] = 255 & VBRTag0.charAt(3);\n }\n createInteger(\n buffer,\n streamIndex,\n FRAMES_FLAG + BYTES_FLAG + TOC_FLAG + VBR_SCALE_FLAG\n );\n streamIndex += 4;\n createInteger(buffer, streamIndex, gfc.VBR_seek_table.nVbrNumFrames);\n streamIndex += 4;\n var streamSize = gfc.VBR_seek_table.nBytesWritten + gfc.VBR_seek_table.TotalFrameSize;\n createInteger(buffer, streamIndex, 0 | streamSize);\n streamIndex += 4;\n System.arraycopy(toc, 0, buffer, streamIndex, toc.length);\n streamIndex += toc.length;\n if (gfp.error_protection) {\n bs.CRC_writeheader(gfc, buffer);\n }\n var crc = 0;\n for (var i = 0; i < streamIndex; i++)\n crc = crcUpdateLookup(buffer[i], crc);\n streamIndex += putLameVBR(gfp, streamSize, buffer, streamIndex, crc);\n return gfc.VBR_seek_table.TotalFrameSize;\n };\n this.putVbrTag = function(gfp, stream) {\n var gfc = gfp.internal_flags;\n if (gfc.VBR_seek_table.pos <= 0)\n return -1;\n stream.seek(stream.length());\n if (stream.length() == 0)\n return -1;\n var id3v2TagSize = skipId3v2(stream);\n stream.seek(id3v2TagSize);\n var buffer = new_byte$1(MAXFRAMESIZE);\n var bytes = getLameTagFrame(gfp, buffer);\n if (bytes > buffer.length) {\n return -1;\n }\n if (bytes < 1) {\n return 0;\n }\n stream.write(buffer, 0, bytes);\n return 0;\n };\n}\nvar new_byte = common.new_byte;\nvar assert = common.assert;\nfunction GetAudio() {\n this.setModules = function(parse2, mpg2) {\n };\n}\nfunction Parse() {\n this.setModules = function(ver2, id32, pre2) {\n };\n}\nfunction MPGLib() {\n}\nfunction ID3Tag() {\n this.setModules = function(_bits, _ver) {\n };\n}\nfunction Mp3Encoder$1(channels, samplerate, kbps) {\n if (arguments.length != 3) {\n console.error(\"WARN: Mp3Encoder(channels, samplerate, kbps) not specified\");\n channels = 1;\n samplerate = 44100;\n kbps = 128;\n }\n var lame = new Lame$1();\n var gaud = new GetAudio();\n var ga = new GainAnalysis$1();\n var bs = new BitStream$1();\n var p2 = new Presets();\n var qupvt = new QuantizePVT();\n var qu = new Quantize();\n var vbr = new VBRTag();\n var ver = new Version();\n var id3 = new ID3Tag();\n var rv = new Reservoir();\n var tak = new Takehiro();\n var parse2 = new Parse();\n var mpg = new MPGLib();\n lame.setModules(ga, bs, p2, qupvt, qu, vbr, ver, id3, mpg);\n bs.setModules(ga, mpg, ver, vbr);\n id3.setModules(bs, ver);\n p2.setModules(lame);\n qu.setModules(bs, rv, qupvt, tak);\n qupvt.setModules(tak, rv, lame.enc.psy);\n rv.setModules(bs);\n tak.setModules(qupvt);\n vbr.setModules(lame, bs, ver);\n gaud.setModules(parse2, mpg);\n parse2.setModules(ver, id3, p2);\n var gfp = lame.lame_init();\n gfp.num_channels = channels;\n gfp.in_samplerate = samplerate;\n gfp.brate = kbps;\n gfp.mode = MPEGMode.STEREO;\n gfp.quality = 3;\n gfp.bWriteVbrTag = false;\n gfp.disable_reservoir = true;\n gfp.write_id3tag_automatic = false;\n lame.lame_init_params(gfp);\n var maxSamples = 1152;\n var mp3buf_size = 0 | 1.25 * maxSamples + 7200;\n var mp3buf = new_byte(mp3buf_size);\n this.encodeBuffer = function(left, right) {\n if (channels == 1) {\n right = left;\n }\n assert(left.length == right.length);\n if (left.length > maxSamples) {\n maxSamples = left.length;\n mp3buf_size = 0 | 1.25 * maxSamples + 7200;\n mp3buf = new_byte(mp3buf_size);\n }\n var _sz = lame.lame_encode_buffer(\n gfp,\n left,\n right,\n left.length,\n mp3buf,\n 0,\n mp3buf_size\n );\n return new Int8Array(mp3buf.subarray(0, _sz));\n };\n this.flush = function() {\n var _sz = lame.lame_encode_flush(gfp, mp3buf, 0, mp3buf_size);\n return new Int8Array(mp3buf.subarray(0, _sz));\n };\n}\nfunction fourccToInt(fourcc) {\n return fourcc.charCodeAt(0) << 24 | fourcc.charCodeAt(1) << 16 | fourcc.charCodeAt(2) << 8 | fourcc.charCodeAt(3);\n}\nfourccToInt(\"RIFF\");\nfourccToInt(\"WAVE\");\nfourccToInt(\"fmt \");\nfourccToInt(\"data\");\nclass Mp3Encoder {\n constructor(config) {\n this.bitRate = config.bitRate;\n this.sampleRate = config.sampleRate;\n this.dataBuffer = [];\n this.encoder = new Mp3Encoder$1(1, this.sampleRate, this.bitRate);\n }\n encode(arrayBuffer) {\n const maxSamples = 1152;\n const samples = this._convertBuffer(arrayBuffer);\n let remaining = samples.length;\n for (let i = 0; remaining >= 0; i += maxSamples) {\n const left = samples.subarray(i, i + maxSamples);\n const buffer = this.encoder.encodeBuffer(left);\n this.dataBuffer.push(new Int8Array(buffer));\n remaining -= maxSamples;\n }\n }\n finish() {\n this.dataBuffer.push(this.encoder.flush());\n const blob = new Blob(this.dataBuffer, { type: \"audio/mp3\" });\n this.dataBuffer = [];\n return {\n id: Date.now(),\n blob,\n url: URL.createObjectURL(blob)\n };\n }\n _floatTo16BitPCM(input, output) {\n for (let i = 0; i < input.length; i++) {\n const s = Math.max(-1, Math.min(1, input[i]));\n output[i] = s < 0 ? s * 32768 : s * 32767;\n }\n }\n _convertBuffer(arrayBuffer) {\n const data = new Float32Array(arrayBuffer);\n const out = new Int16Array(arrayBuffer.length);\n this._floatTo16BitPCM(data, out);\n return out;\n }\n}\nclass Recorder {\n constructor(options = {}) {\n this.beforeRecording = options.beforeRecording;\n this.pauseRecording = options.pauseRecording;\n this.afterRecording = options.afterRecording;\n this.micFailed = options.micFailed;\n this.encoderOptions = {\n bitRate: options.bitRate,\n sampleRate: options.sampleRate\n };\n this.bufferSize = 4096;\n this.records = [];\n this.isPause = false;\n this.isRecording = false;\n this.duration = 0;\n this.volume = 0;\n this._duration = 0;\n }\n start() {\n const constraints = {\n video: false,\n audio: {\n channelCount: 1,\n echoCancellation: false\n }\n };\n this.beforeRecording && this.beforeRecording(\"start recording\");\n navigator.mediaDevices.getUserMedia(constraints).then(this._micCaptured.bind(this)).catch(this._micError.bind(this));\n this.isPause = false;\n this.isRecording = true;\n if (!this.lameEncoder) {\n this.lameEncoder = new Mp3Encoder(this.encoderOptions);\n }\n }\n stop() {\n this.stream.getTracks().forEach((track2) => track2.stop());\n this.input.disconnect();\n this.processor.disconnect();\n this.context.close();\n let record = null;\n record = this.lameEncoder.finish();\n record.duration = this.duration;\n this.records.push(record);\n this._duration = 0;\n this.duration = 0;\n this.isPause = false;\n this.isRecording = false;\n this.afterRecording && this.afterRecording(record);\n }\n pause() {\n this.stream.getTracks().forEach((track2) => track2.stop());\n this.input.disconnect();\n this.processor.disconnect();\n this._duration = this.duration;\n this.isPause = true;\n this.pauseRecording && this.pauseRecording(\"pause recording\");\n }\n _micCaptured(stream) {\n this.context = new (window.AudioContext || window.webkitAudioContext)();\n this.duration = this._duration;\n this.input = this.context.createMediaStreamSource(stream);\n this.processor = this.context.createScriptProcessor(this.bufferSize, 1, 1);\n this.stream = stream;\n this.processor.onaudioprocess = (ev) => {\n const sample = ev.inputBuffer.getChannelData(0);\n let sum = 0;\n if (this.lameEncoder) {\n this.lameEncoder.encode(sample);\n }\n for (let i = 0; i < sample.length; ++i) {\n sum += sample[i] * sample[i];\n }\n this.duration = parseFloat(this._duration) + parseFloat(this.context.currentTime.toFixed(2));\n this.volume = Math.sqrt(sum / sample.length).toFixed(2);\n };\n this.input.connect(this.processor);\n this.processor.connect(this.context.destination);\n }\n _micError(error) {\n this.micFailed && this.micFailed(error);\n }\n}\nvar isChromium = window.chrome;\nvar winNav = window.navigator;\nvar vendorName = winNav.vendor;\nvar isOpera = typeof window.opr !== \"undefined\";\nvar isIEedge = winNav.userAgent.indexOf(\"Edg\") > -1;\nvar isIOSChrome = winNav.userAgent.match(\"CriOS\");\nfunction detectChrome() {\n if (isIOSChrome) {\n return true;\n } else if (isChromium !== null && typeof isChromium !== \"undefined\" && vendorName === \"Google Inc.\" && isOpera === false && isIEedge === false) {\n return true;\n } else {\n return false;\n }\n}\nfunction detectMobile() {\n var userAgent = getUserAgent();\n var userAgentPart = userAgent.substr(0, 4);\n return /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(\n userAgent\n ) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw(n|u)|c55\\/|capi|ccwa|cdm|cell|chtm|cldc|cmd|co(mp|nd)|craw|da(it|ll|ng)|dbte|dcs|devi|dica|dmob|do(c|p)o|ds(12|d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(|_)|g1 u|g560|gene|gf5|gmo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd(m|p|t)|hei|hi(pt|ta)|hp( i|ip)|hsc|ht(c(| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i(20|go|ma)|i230|iac( ||\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|[a-w])|libw|lynx|m1w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|mcr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|([1-8]|c))|phil|pire|pl(ay|uc)|pn2|po(ck|rt|se)|prox|psio|ptg|qaa|qc(07|12|21|32|60|[2-7]|i)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h|oo|p)|sdk\\/|se(c(|0|1)|47|mc|nd|ri)|sgh|shar|sie(|m)|sk0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h|v|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl|tdg|tel(i|m)|tim|tmo|to(pl|sh)|ts(70|m|m3|m5)|tx9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas|your|zeto|zte/i.test(\n userAgentPart\n );\n}\nfunction getUserAgent() {\n var userAgent = navigator.userAgent || navigator.vendor || window.opera || null;\n if (!userAgent)\n throw new Error(\"Failed to look for user agent information.\");\n return userAgent;\n}\nconst _sfc_main$a = {\n name: \"RoomFooter\",\n components: {\n SvgIcon,\n EmojiPickerContainer,\n RoomFiles,\n RoomMessageReply,\n RoomUsersTag,\n RoomEmojis,\n RoomTemplatesText\n },\n directives: {\n clickOutside: vClickOutside\n },\n props: {\n room: { type: Object, required: true },\n roomId: { type: [String, Number], required: true },\n roomMessage: { type: String, default: null },\n textFormatting: { type: Object, required: true },\n linkOptions: { type: Object, required: true },\n textMessages: { type: Object, required: true },\n showSendIcon: { type: Boolean, required: true },\n showFiles: { type: Boolean, required: true },\n showAudio: { type: Boolean, required: true },\n showEmojis: { type: Boolean, required: true },\n showFooter: { type: Boolean, required: true },\n acceptedFiles: { type: String, required: true },\n multipleFiles: { type: Boolean, default: true },\n captureFiles: { type: String, required: true },\n textareaActionEnabled: { type: Boolean, required: true },\n textareaAutoFocus: { type: Boolean, required: true },\n userTagsEnabled: { type: Boolean, required: true },\n emojisSuggestionEnabled: { type: Boolean, required: true },\n templatesText: { type: Array, default: null },\n audioBitRate: { type: Number, required: true },\n audioSampleRate: { type: Number, required: true },\n initReplyMessage: { type: Object, default: null },\n initEditMessage: { type: Object, default: null },\n droppedFiles: { type: Array, default: null },\n emojiDataSource: { type: String, default: void 0 }\n },\n emits: [\n \"edit-message\",\n \"send-message\",\n \"update-edited-message-id\",\n \"textarea-action-handler\",\n \"typing-message\"\n ],\n data() {\n return {\n message: \"\",\n editedMessage: {},\n messageReply: null,\n cursorRangePosition: null,\n files: [],\n fileDialog: false,\n selectUsersTagItem: null,\n selectEmojiItem: null,\n selectTemplatesTextItem: null,\n format: \"mp3\",\n activeUpOrDownEmojis: null,\n activeUpOrDownUsersTag: null,\n activeUpOrDownTemplatesText: null,\n emojisDB: new Database({ dataSource: this.emojiDataSource }),\n emojiOpened: false,\n keepKeyboardOpen: false,\n filteredEmojis: [],\n filteredUsersTag: [],\n selectedUsersTag: [],\n filteredTemplatesText: [],\n recorder: this.initRecorder(),\n isRecording: false\n };\n },\n computed: {\n isMessageEmpty() {\n return !this.files.length && !this.message.trim();\n },\n isFileLoading() {\n return this.files.some((e) => e.loading);\n },\n recordedTime() {\n return new Date(this.recorder.duration * 1e3).toISOString().substr(14, 5);\n },\n shadowFooter() {\n return !!this.filteredEmojis.length || !!this.filteredUsersTag.length || !!this.filteredTemplatesText.length || !!this.files.length || !!this.messageReply;\n }\n },\n watch: {\n roomId() {\n this.resetMessage(true, true);\n if (this.roomMessage) {\n this.message = this.roomMessage;\n setTimeout(() => this.onChangeInput());\n }\n },\n message(val) {\n this.getTextareaRef().value = val;\n },\n roomMessage: {\n immediate: true,\n handler(val) {\n if (val)\n this.message = this.roomMessage;\n }\n },\n editedMessage(val) {\n this.$emit(\"update-edited-message-id\", val._id);\n },\n initReplyMessage(val) {\n if (val) {\n this.replyMessage(val);\n }\n },\n initEditMessage(val) {\n if (val) {\n this.editMessage(val);\n }\n },\n droppedFiles(val) {\n if (val) {\n this.onFileChange(val);\n }\n }\n },\n mounted() {\n const isMobile = detectMobile();\n let isComposed = true;\n this.getTextareaRef().addEventListener(\"keyup\", (e) => {\n if (e.key === \"Enter\" && !e.shiftKey && !this.fileDialog) {\n if (isMobile) {\n this.message = this.message + \"\\n\";\n setTimeout(() => this.onChangeInput());\n } else if (isComposed && !this.filteredEmojis.length && !this.filteredUsersTag.length && !this.filteredTemplatesText.length) {\n this.sendMessage();\n }\n }\n isComposed = !e.isComposing;\n setTimeout(() => {\n this.updateFooterLists();\n }, 60);\n });\n this.getTextareaRef().addEventListener(\"click\", () => {\n if (isMobile)\n this.keepKeyboardOpen = true;\n this.updateFooterLists();\n });\n this.getTextareaRef().addEventListener(\"blur\", () => {\n setTimeout(() => {\n this.resetFooterList();\n }, 100);\n if (isMobile)\n setTimeout(() => this.keepKeyboardOpen = false);\n });\n },\n beforeUnmount() {\n this.stopRecorder();\n },\n methods: {\n getTextareaRef() {\n return this.$refs.roomTextarea;\n },\n focusTextarea(disableMobileFocus) {\n if (detectMobile() && disableMobileFocus)\n return;\n if (!this.getTextareaRef())\n return;\n this.getTextareaRef().focus();\n if (this.cursorRangePosition) {\n setTimeout(() => {\n const offset = detectChrome() ? 0 : 1;\n this.getTextareaRef().setSelectionRange(\n this.cursorRangePosition + offset,\n this.cursorRangePosition + offset\n );\n this.cursorRangePosition = null;\n });\n }\n },\n onChangeInput() {\n var _a, _b, _c;\n if (((_a = this.getTextareaRef()) == null ? void 0 : _a.value) || ((_b = this.getTextareaRef()) == null ? void 0 : _b.value) === \"\") {\n this.message = (_c = this.getTextareaRef()) == null ? void 0 : _c.value;\n }\n this.keepKeyboardOpen = true;\n this.resizeTextarea();\n this.$emit(\"typing-message\", this.message);\n },\n resizeTextarea() {\n const el = this.getTextareaRef();\n if (!el)\n return;\n const padding = window.getComputedStyle(el, null).getPropertyValue(\"padding-top\").replace(\"px\", \"\");\n el.style.height = 0;\n el.style.height = el.scrollHeight - padding * 2 + \"px\";\n },\n escapeTextarea() {\n if (this.filteredEmojis.length)\n this.filteredEmojis = [];\n else if (this.filteredUsersTag.length)\n this.filteredUsersTag = [];\n else if (this.filteredTemplatesText.length) {\n this.filteredTemplatesText = [];\n } else\n this.resetMessage();\n },\n onPasteImage(pasteEvent) {\n var _a;\n const items = (_a = pasteEvent.clipboardData) == null ? void 0 : _a.items;\n if (items) {\n Array.from(items).forEach((item) => {\n if (item.type.includes(\"image\")) {\n const blob = item.getAsFile();\n this.onFileChange([blob]);\n }\n });\n }\n },\n updateActiveUpOrDown(event, direction) {\n if (this.filteredEmojis.length) {\n this.activeUpOrDownEmojis = direction;\n event.preventDefault();\n } else if (this.filteredUsersTag.length) {\n this.activeUpOrDownUsersTag = direction;\n event.preventDefault();\n } else if (this.filteredTemplatesText.length) {\n this.activeUpOrDownTemplatesText = direction;\n event.preventDefault();\n }\n },\n selectItem() {\n if (this.filteredEmojis.length) {\n this.selectEmojiItem = true;\n } else if (this.filteredUsersTag.length) {\n this.selectUsersTagItem = true;\n } else if (this.filteredTemplatesText.length) {\n this.selectTemplatesTextItem = true;\n }\n },\n selectEmoji(emoji) {\n this.selectEmojiItem = false;\n if (!emoji)\n return;\n const { position, endPosition } = this.getCharPosition(\":\");\n this.message = this.message.substr(0, position - 1) + emoji + this.message.substr(endPosition, this.message.length - 1);\n this.cursorRangePosition = position;\n this.focusTextarea();\n },\n selectTemplateText(template) {\n this.selectTemplatesTextItem = false;\n if (!template)\n return;\n const { position, endPosition } = this.getCharPosition(\"/\");\n const space = this.message.substr(endPosition, endPosition).length ? \"\" : \" \";\n this.message = this.message.substr(0, position - 1) + template.text + space + this.message.substr(endPosition, this.message.length - 1);\n this.cursorRangePosition = position + template.text.length + space.length + 1;\n this.focusTextarea();\n },\n addEmoji(emoji) {\n this.message += emoji.unicode;\n this.focusTextarea(true);\n },\n launchFilePicker() {\n this.$refs.file.value = \"\";\n this.$refs.file.click();\n },\n async onFileChange(files) {\n this.fileDialog = true;\n this.focusTextarea();\n Array.from(files).forEach(async (file) => {\n const fileURL = URL.createObjectURL(file);\n const typeIndex = file.name.lastIndexOf(\".\");\n this.files.push({\n loading: true,\n name: file.name.substring(0, typeIndex),\n size: file.size,\n type: file.type,\n extension: file.name.substring(typeIndex + 1),\n localUrl: fileURL\n });\n const blobFile = await fetch(fileURL).then((res) => res.blob());\n let loadedFile = this.files.find((file2) => file2.localUrl === fileURL);\n if (loadedFile) {\n loadedFile.blob = blobFile;\n loadedFile.loading = false;\n delete loadedFile.loading;\n }\n });\n setTimeout(() => this.fileDialog = false, 500);\n },\n removeFile(index) {\n this.files.splice(index, 1);\n this.focusTextarea();\n },\n toggleRecorder(recording) {\n this.isRecording = recording;\n if (!this.recorder.isRecording) {\n setTimeout(() => this.recorder.start(), 200);\n } else {\n try {\n this.recorder.stop();\n const record = this.recorder.records[0];\n this.files.push({\n blob: record.blob,\n name: `audio.${this.format}`,\n size: record.blob.size,\n duration: record.duration,\n type: record.blob.type,\n audio: true,\n localUrl: URL.createObjectURL(record.blob)\n });\n this.recorder = this.initRecorder();\n this.sendMessage();\n } catch {\n setTimeout(() => this.stopRecorder(), 100);\n }\n }\n },\n stopRecorder() {\n if (this.recorder.isRecording) {\n try {\n this.recorder.stop();\n this.recorder = this.initRecorder();\n } catch {\n setTimeout(() => this.stopRecorder(), 100);\n }\n }\n },\n textareaActionHandler() {\n this.$emit(\"textarea-action-handler\", this.message);\n },\n sendMessage() {\n var _a;\n let message = this.message.trim();\n if (!this.files.length && !message)\n return;\n if (this.isFileLoading)\n return;\n this.selectedUsersTag.forEach((user) => {\n message = message.replace(\n `@${user.username}`,\n `<usertag>${user._id}</usertag>`\n );\n });\n const files = this.files.length ? this.files : null;\n if (this.editedMessage._id) {\n if (this.editedMessage.content !== message || ((_a = this.editedMessage.files) == null ? void 0 : _a.length) || this.files.length) {\n this.$emit(\"edit-message\", {\n messageId: this.editedMessage._id,\n newContent: message,\n files,\n replyMessage: this.messageReply,\n usersTag: this.selectedUsersTag\n });\n }\n } else {\n this.$emit(\"send-message\", {\n content: message,\n files,\n replyMessage: this.messageReply,\n usersTag: this.selectedUsersTag\n });\n }\n this.resetMessage(true);\n },\n editMessage(message) {\n this.resetMessage();\n this.editedMessage = { ...message };\n let messageContent = message.content;\n const initialContent = messageContent;\n const firstTag = \"<usertag>\";\n const secondTag = \"</usertag>\";\n const usertags = [\n ...messageContent.matchAll(new RegExp(firstTag, \"gi\"))\n ].map((a) => a.index);\n usertags.forEach((index) => {\n const userId = initialContent.substring(\n index + firstTag.length,\n initialContent.indexOf(secondTag, index)\n );\n const user = this.room.users.find((user2) => user2._id === userId);\n messageContent = messageContent.replace(\n `${firstTag}${userId}${secondTag}`,\n `@${(user == null ? void 0 : user.username) || \"unknown\"}`\n );\n this.selectUserTag(user, true);\n });\n this.message = messageContent;\n if (message.files) {\n this.files = [...message.files];\n }\n setTimeout(() => this.resizeTextarea());\n },\n replyMessage(message) {\n this.editedMessage = {};\n this.messageReply = message;\n this.focusTextarea();\n },\n updateFooterLists() {\n this.updateFooterList(\"@\");\n this.updateFooterList(\":\");\n this.updateFooterList(\"/\");\n },\n updateFooterList(tagChar) {\n if (!this.getTextareaRef())\n return;\n if (tagChar === \":\" && !this.emojisSuggestionEnabled) {\n return;\n }\n if (tagChar === \"@\" && (!this.userTagsEnabled || !this.room.users)) {\n return;\n }\n if (tagChar === \"/\" && !this.templatesText) {\n return;\n }\n const textareaCursorPosition = this.getTextareaRef().selectionStart;\n let position = textareaCursorPosition;\n while (position > 0 && this.message.charAt(position - 1) !== tagChar && (this.message.charAt(position - 1) !== \" \" || tagChar !== \":\")) {\n position--;\n }\n const beforeTag = this.message.charAt(position - 2);\n const notLetterNumber = !beforeTag.match(/^[0-9a-zA-Z]+$/);\n if (this.message.charAt(position - 1) === tagChar && (!beforeTag || beforeTag === \" \" || notLetterNumber)) {\n const query = this.message.substring(position, textareaCursorPosition);\n if (tagChar === \":\") {\n this.updateEmojis(query);\n } else if (tagChar === \"@\") {\n this.updateShowUsersTag(query);\n } else if (tagChar === \"/\") {\n this.updateShowTemplatesText(query);\n }\n } else {\n this.resetFooterList(tagChar);\n }\n },\n updateShowUsersTag(query) {\n this.filteredUsersTag = filteredItems(\n this.room.users,\n \"username\",\n query,\n true\n ).filter((user) => user._id !== this.currentUserId);\n },\n selectUserTag(user, editMode = false) {\n this.selectUsersTagItem = false;\n if (!user)\n return;\n const { position, endPosition } = this.getCharPosition(\"@\");\n const space = this.message.substr(endPosition, endPosition).length ? \"\" : \" \";\n this.message = this.message.substr(0, position) + user.username + space + this.message.substr(endPosition, this.message.length - 1);\n this.selectedUsersTag = [...this.selectedUsersTag, { ...user }];\n if (!editMode) {\n this.cursorRangePosition = position + user.username.length + space.length + 1;\n }\n this.focusTextarea();\n },\n updateShowTemplatesText(query) {\n this.filteredTemplatesText = filteredItems(\n this.templatesText,\n \"tag\",\n query,\n true\n );\n },\n getCharPosition(tagChar) {\n const cursorPosition = this.getTextareaRef().selectionStart;\n let position = cursorPosition;\n while (position > 0 && this.message.charAt(position - 1) !== tagChar) {\n position--;\n }\n const endPosition = this.getTextareaRef().selectionEnd;\n return { position, endPosition };\n },\n async updateEmojis(query) {\n if (!query)\n return;\n const emojis = await this.emojisDB.getEmojiBySearchQuery(query);\n this.filteredEmojis = emojis.map((emoji) => emoji.unicode);\n },\n resetFooterList(tagChar = null) {\n if (tagChar === \":\") {\n this.filteredEmojis = [];\n } else if (tagChar === \"@\") {\n this.filteredUsersTag = [];\n } else if (tagChar === \"/\") {\n this.filteredTemplatesText = [];\n } else {\n this.filteredEmojis = [];\n this.filteredUsersTag = [];\n this.filteredTemplatesText = [];\n }\n },\n resetMessage(disableMobileFocus = false, initRoom = false) {\n if (!initRoom) {\n this.$emit(\"typing-message\", null);\n }\n this.selectedUsersTag = [];\n this.resetFooterList();\n this.resetTextareaSize();\n this.message = \"\";\n this.editedMessage = {};\n this.messageReply = null;\n this.files = [];\n this.emojiOpened = false;\n this.preventKeyboardFromClosing();\n if (this.textareaAutoFocus || !initRoom) {\n setTimeout(() => this.focusTextarea(disableMobileFocus));\n }\n },\n resetTextareaSize() {\n if (this.getTextareaRef()) {\n this.getTextareaRef().style.height = \"20px\";\n }\n },\n preventKeyboardFromClosing() {\n if (this.keepKeyboardOpen)\n this.getTextareaRef().focus();\n },\n initRecorder() {\n this.isRecording = false;\n return new Recorder({\n bitRate: Number(this.audioBitRate),\n sampleRate: Number(this.audioSampleRate),\n beforeRecording: null,\n afterRecording: null,\n pauseRecording: null,\n micFailed: this.micFailed\n });\n },\n micFailed() {\n this.isRecording = false;\n this.recorder = this.initRecorder();\n }\n }\n};\nconst _hoisted_1$a = {\n key: 0,\n class: \"vac-icon-textarea-left\"\n};\nconst _hoisted_2$8 = /* @__PURE__ */ createBaseVNode(\"div\", { class: \"vac-dot-audio-record\" }, null, -1);\nconst _hoisted_3$8 = { class: \"vac-dot-audio-record-time\" };\nconst _hoisted_4$8 = [\"placeholder\"];\nconst _hoisted_5$6 = { class: \"vac-icon-textarea\" };\nconst _hoisted_6$3 = { key: 1 };\nconst _hoisted_7$3 = [\"multiple\", \"accept\", \"capture\"];\nfunction _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_room_emojis = resolveComponent(\"room-emojis\");\n const _component_room_users_tag = resolveComponent(\"room-users-tag\");\n const _component_room_templates_text = resolveComponent(\"room-templates-text\");\n const _component_room_message_reply = resolveComponent(\"room-message-reply\");\n const _component_room_files = resolveComponent(\"room-files\");\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n const _component_emoji_picker_container = resolveComponent(\"emoji-picker-container\");\n const _directive_click_outside = resolveDirective(\"click-outside\");\n return withDirectives((openBlock(), createElementBlock(\"div\", {\n id: \"room-footer\",\n class: normalizeClass([\"vac-room-footer\", {\n \"vac-app-box-shadow\": $options.shadowFooter\n }])\n }, [\n createVNode(_component_room_emojis, {\n \"filtered-emojis\": $data.filteredEmojis,\n \"select-item\": $data.selectEmojiItem,\n \"active-up-or-down\": $data.activeUpOrDownEmojis,\n onSelectEmoji: _cache[0] || (_cache[0] = ($event) => $options.selectEmoji($event)),\n onActivateItem: _cache[1] || (_cache[1] = ($event) => $data.activeUpOrDownEmojis = 0)\n }, null, 8, [\"filtered-emojis\", \"select-item\", \"active-up-or-down\"]),\n createVNode(_component_room_users_tag, {\n \"filtered-users-tag\": $data.filteredUsersTag,\n \"select-item\": $data.selectUsersTagItem,\n \"active-up-or-down\": $data.activeUpOrDownUsersTag,\n onSelectUserTag: _cache[2] || (_cache[2] = ($event) => $options.selectUserTag($event)),\n onActivateItem: _cache[3] || (_cache[3] = ($event) => $data.activeUpOrDownUsersTag = 0)\n }, null, 8, [\"filtered-users-tag\", \"select-item\", \"active-up-or-down\"]),\n createVNode(_component_room_templates_text, {\n \"filtered-templates-text\": $data.filteredTemplatesText,\n \"select-item\": $data.selectTemplatesTextItem,\n \"active-up-or-down\": $data.activeUpOrDownTemplatesText,\n onSelectTemplateText: _cache[4] || (_cache[4] = ($event) => $options.selectTemplateText($event)),\n onActivateItem: _cache[5] || (_cache[5] = ($event) => $data.activeUpOrDownTemplatesText = 0)\n }, null, 8, [\"filtered-templates-text\", \"select-item\", \"active-up-or-down\"]),\n createVNode(_component_room_message_reply, {\n room: $props.room,\n \"message-reply\": $data.messageReply,\n \"text-formatting\": $props.textFormatting,\n \"link-options\": $props.linkOptions,\n onResetMessage: $options.resetMessage\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (i, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"room\", \"message-reply\", \"text-formatting\", \"link-options\", \"onResetMessage\"]),\n createVNode(_component_room_files, {\n files: $data.files,\n onRemoveFile: $options.removeFile,\n onResetMessage: $options.resetMessage\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (i, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"files\", \"onRemoveFile\", \"onResetMessage\"]),\n createBaseVNode(\"div\", {\n class: normalizeClass([\"vac-box-footer\", { \"vac-box-footer-border\": !$data.files.length }])\n }, [\n $props.showAudio && !$data.files.length ? (openBlock(), createElementBlock(\"div\", _hoisted_1$a, [\n $data.isRecording ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n createBaseVNode(\"div\", {\n class: \"vac-svg-button vac-icon-audio-stop\",\n onClick: _cache[6] || (_cache[6] = (...args) => $options.stopRecorder && $options.stopRecorder(...args))\n }, [\n renderSlot(_ctx.$slots, \"audio-stop-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"close-outline\" })\n ])\n ]),\n _hoisted_2$8,\n createBaseVNode(\"div\", _hoisted_3$8, toDisplayString($options.recordedTime), 1),\n createBaseVNode(\"div\", {\n class: \"vac-svg-button vac-icon-audio-confirm\",\n onClick: _cache[7] || (_cache[7] = ($event) => $options.toggleRecorder(false))\n }, [\n renderSlot(_ctx.$slots, \"audio-check-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"checkmark\" })\n ])\n ])\n ], 64)) : (openBlock(), createElementBlock(\"div\", {\n key: 1,\n class: \"vac-svg-button\",\n onClick: _cache[8] || (_cache[8] = ($event) => $options.toggleRecorder(true))\n }, [\n renderSlot(_ctx.$slots, \"microphone-icon\", {}, () => [\n createVNode(_component_svg_icon, {\n name: \"microphone\",\n class: \"vac-icon-microphone\"\n })\n ])\n ]))\n ])) : createCommentVNode(\"\", true),\n createBaseVNode(\"textarea\", {\n id: \"roomTextarea\",\n ref: \"roomTextarea\",\n placeholder: $props.textMessages.TYPE_MESSAGE,\n class: normalizeClass([\"vac-textarea\", {\n \"vac-textarea-outline\": $data.editedMessage._id\n }]),\n style: {\n \"min-height\": `20px`,\n \"padding-left\": `12px`\n },\n onInput: _cache[9] || (_cache[9] = (...args) => $options.onChangeInput && $options.onChangeInput(...args)),\n onKeydown: [\n _cache[10] || (_cache[10] = withKeys((...args) => $options.escapeTextarea && $options.escapeTextarea(...args), [\"esc\"])),\n _cache[11] || (_cache[11] = withKeys(withModifiers((...args) => $options.selectItem && $options.selectItem(...args), [\"exact\", \"prevent\"]), [\"enter\"])),\n _cache[13] || (_cache[13] = withKeys(withModifiers(() => {\n }, [\"exact\", \"prevent\"]), [\"tab\"])),\n _cache[14] || (_cache[14] = withKeys((...args) => $options.selectItem && $options.selectItem(...args), [\"tab\"])),\n _cache[15] || (_cache[15] = withKeys(($event) => $options.updateActiveUpOrDown($event, -1), [\"up\"])),\n _cache[16] || (_cache[16] = withKeys(($event) => $options.updateActiveUpOrDown($event, 1), [\"down\"]))\n ],\n onPaste: _cache[12] || (_cache[12] = (...args) => $options.onPasteImage && $options.onPasteImage(...args))\n }, null, 42, _hoisted_4$8),\n createBaseVNode(\"div\", _hoisted_5$6, [\n $data.editedMessage._id ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: \"vac-svg-button\",\n onClick: _cache[17] || (_cache[17] = (...args) => $options.resetMessage && $options.resetMessage(...args))\n }, [\n renderSlot(_ctx.$slots, \"edit-close-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"close-outline\" })\n ])\n ])) : createCommentVNode(\"\", true),\n $props.showEmojis ? withDirectives((openBlock(), createElementBlock(\"div\", _hoisted_6$3, [\n renderSlot(_ctx.$slots, \"emoji-picker\", mergeProps({ emojiOpened: $data.emojiOpened }, { addEmoji: $options.addEmoji }), () => [\n createVNode(_component_emoji_picker_container, {\n \"emoji-opened\": $data.emojiOpened,\n \"position-top\": true,\n \"emoji-data-source\": $props.emojiDataSource,\n onAddEmoji: $options.addEmoji,\n onOpenEmoji: _cache[18] || (_cache[18] = ($event) => $data.emojiOpened = $event)\n }, {\n \"emoji-picker-icon\": withCtx(() => [\n renderSlot(_ctx.$slots, \"emoji-picker-icon\")\n ]),\n _: 3\n }, 8, [\"emoji-opened\", \"emoji-data-source\", \"onAddEmoji\"])\n ])\n ])), [\n [_directive_click_outside, () => $data.emojiOpened = false]\n ]) : createCommentVNode(\"\", true),\n $props.showFiles ? (openBlock(), createElementBlock(\"div\", {\n key: 2,\n class: \"vac-svg-button\",\n onClick: _cache[19] || (_cache[19] = (...args) => $options.launchFilePicker && $options.launchFilePicker(...args))\n }, [\n renderSlot(_ctx.$slots, \"paperclip-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"paperclip\" })\n ])\n ])) : createCommentVNode(\"\", true),\n $props.textareaActionEnabled ? (openBlock(), createElementBlock(\"div\", {\n key: 3,\n class: \"vac-svg-button\",\n onClick: _cache[20] || (_cache[20] = (...args) => $options.textareaActionHandler && $options.textareaActionHandler(...args))\n }, [\n renderSlot(_ctx.$slots, \"custom-action-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"deleted\" })\n ])\n ])) : createCommentVNode(\"\", true),\n $props.showFiles ? (openBlock(), createElementBlock(\"input\", {\n key: 4,\n ref: \"file\",\n type: \"file\",\n multiple: $props.multipleFiles ? true : null,\n accept: $props.acceptedFiles,\n capture: $props.captureFiles,\n style: { \"display\": \"none\" },\n onChange: _cache[21] || (_cache[21] = ($event) => $options.onFileChange($event.target.files))\n }, null, 40, _hoisted_7$3)) : createCommentVNode(\"\", true),\n $props.showSendIcon ? (openBlock(), createElementBlock(\"div\", {\n key: 5,\n class: normalizeClass([\"vac-svg-button\", { \"vac-send-disabled\": $options.isMessageEmpty }]),\n onClick: _cache[22] || (_cache[22] = (...args) => $options.sendMessage && $options.sendMessage(...args))\n }, [\n renderSlot(_ctx.$slots, \"send-icon\", {}, () => [\n createVNode(_component_svg_icon, {\n name: \"send\",\n param: $options.isMessageEmpty || $options.isFileLoading ? \"disabled\" : \"\"\n }, null, 8, [\"param\"])\n ])\n ], 2)) : createCommentVNode(\"\", true)\n ])\n ], 2)\n ], 2)), [\n [vShow, Object.keys($props.room).length && $props.showFooter]\n ]);\n}\nvar RoomFooter = /* @__PURE__ */ _export_sfc(_sfc_main$a, [[\"render\", _sfc_render$a]]);\nconst _sfc_main$9 = {\n name: \"MessageReply\",\n components: { AudioPlayer, SvgIcon, FormatMessage },\n props: {\n message: { type: Object, required: true },\n textFormatting: { type: Object, required: true },\n linkOptions: { type: Object, required: true },\n roomUsers: { type: Array, required: true }\n },\n computed: {\n replyUsername() {\n const { senderId } = this.message.replyMessage;\n const replyUser = this.roomUsers.find((user) => user._id === senderId);\n return replyUser ? replyUser.username : \"\";\n },\n firstFile() {\n var _a, _b;\n return ((_b = (_a = this.message.replyMessage) == null ? void 0 : _a.files) == null ? void 0 : _b.length) ? this.message.replyMessage.files[0] : {};\n },\n isAudio() {\n return isAudioFile(this.firstFile);\n },\n isImage() {\n return isImageFile(this.firstFile);\n },\n isVideo() {\n return isVideoFile(this.firstFile);\n },\n isOtherFile() {\n var _a;\n return ((_a = this.message.replyMessage.files) == null ? void 0 : _a.length) && !this.isAudio && !this.isVideo && !this.isImage;\n }\n }\n};\nconst _hoisted_1$9 = { class: \"vac-reply-message\" };\nconst _hoisted_2$7 = { class: \"vac-reply-username\" };\nconst _hoisted_3$7 = {\n key: 0,\n class: \"vac-image-reply-container\"\n};\nconst _hoisted_4$7 = {\n key: 1,\n class: \"vac-video-reply-container\"\n};\nconst _hoisted_5$5 = { controls: \"\" };\nconst _hoisted_6$2 = [\"src\"];\nconst _hoisted_7$2 = {\n key: 3,\n class: \"vac-file-container\"\n};\nconst _hoisted_8$1 = { class: \"vac-text-ellipsis\" };\nconst _hoisted_9$1 = {\n key: 0,\n class: \"vac-text-ellipsis vac-text-extension\"\n};\nconst _hoisted_10$1 = { class: \"vac-reply-content\" };\nfunction _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_audio_player = resolveComponent(\"audio-player\");\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n const _component_format_message = resolveComponent(\"format-message\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$9, [\n createBaseVNode(\"div\", _hoisted_2$7, toDisplayString($options.replyUsername), 1),\n $options.isImage ? (openBlock(), createElementBlock(\"div\", _hoisted_3$7, [\n createBaseVNode(\"div\", {\n class: \"vac-message-image vac-message-image-reply\",\n style: normalizeStyle({\n \"background-image\": `url('${$options.firstFile.url}')`\n })\n }, null, 4)\n ])) : $options.isVideo ? (openBlock(), createElementBlock(\"div\", _hoisted_4$7, [\n createBaseVNode(\"video\", _hoisted_5$5, [\n createBaseVNode(\"source\", {\n src: $options.firstFile.url\n }, null, 8, _hoisted_6$2)\n ])\n ])) : $options.isAudio ? (openBlock(), createBlock(_component_audio_player, {\n key: 2,\n src: $options.firstFile.url,\n \"message-selection-enabled\": false,\n onUpdateProgressTime: _cache[0] || (_cache[0] = ($event) => _ctx.progressTime = $event),\n onHoverAudioProgress: _cache[1] || (_cache[1] = ($event) => _ctx.hoverAudioProgress = $event)\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"src\"])) : $options.isOtherFile ? (openBlock(), createElementBlock(\"div\", _hoisted_7$2, [\n createBaseVNode(\"div\", null, [\n renderSlot(_ctx.$slots, \"file-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"file\" })\n ])\n ]),\n createBaseVNode(\"div\", _hoisted_8$1, toDisplayString($options.firstFile.name), 1),\n $options.firstFile.extension ? (openBlock(), createElementBlock(\"div\", _hoisted_9$1, toDisplayString($options.firstFile.extension), 1)) : createCommentVNode(\"\", true)\n ])) : createCommentVNode(\"\", true),\n createBaseVNode(\"div\", _hoisted_10$1, [\n createVNode(_component_format_message, {\n \"message-id\": $props.message.replyMessage._id,\n content: $props.message.replyMessage.content,\n users: $props.roomUsers,\n \"text-formatting\": $props.textFormatting,\n \"link-options\": $props.linkOptions,\n reply: true\n }, null, 8, [\"message-id\", \"content\", \"users\", \"text-formatting\", \"link-options\"])\n ])\n ]);\n}\nvar MessageReply = /* @__PURE__ */ _export_sfc(_sfc_main$9, [[\"render\", _sfc_render$9]]);\nconst _sfc_main$8 = {\n name: \"ProgressBar\",\n props: {\n progress: { type: Number, default: 0 }\n },\n data() {\n const radius = 35;\n const stroke = 4;\n const normalizedRadius = radius - stroke * 2;\n const circumference = normalizedRadius * 2 * Math.PI;\n return {\n radius,\n stroke,\n normalizedRadius,\n circumference\n };\n },\n computed: {\n strokeDashoffset() {\n return this.circumference - this.progress / 100 * this.circumference;\n }\n }\n};\nconst _hoisted_1$8 = {\n ref: \"progress\",\n class: \"vac-progress-wrapper\"\n};\nconst _hoisted_2$6 = [\"height\", \"width\"];\nconst _hoisted_3$6 = [\"stroke-dasharray\", \"stroke-width\", \"r\", \"cx\", \"cy\"];\nconst _hoisted_4$6 = { class: \"vac-progress-text\" };\nconst _hoisted_5$4 = /* @__PURE__ */ createBaseVNode(\"span\", { class: \"vac-progress-pourcent\" }, \"%\", -1);\nfunction _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createBlock(Transition, {\n name: \"vac-fade-spinner\",\n appear: \"\"\n }, {\n default: withCtx(() => [\n createBaseVNode(\"div\", _hoisted_1$8, [\n (openBlock(), createElementBlock(\"svg\", {\n height: $data.radius * 2,\n width: $data.radius * 2\n }, [\n createBaseVNode(\"circle\", {\n stroke: \"rgba(255, 255, 255, 0.7)\",\n \"stroke-dasharray\": $data.circumference + \" \" + $data.circumference,\n style: normalizeStyle({\n strokeDashoffset: $options.strokeDashoffset,\n strokeLinecap: \"round\"\n }),\n \"stroke-width\": $data.stroke,\n fill: \"transparent\",\n r: $data.normalizedRadius,\n cx: $data.radius,\n cy: $data.radius\n }, null, 12, _hoisted_3$6)\n ], 8, _hoisted_2$6)),\n createBaseVNode(\"div\", {\n class: \"vac-progress-content\",\n style: normalizeStyle({\n height: $data.radius * 2 - 19 + \"px\",\n width: $data.radius * 2 - 19 + \"px\"\n })\n }, [\n createBaseVNode(\"div\", _hoisted_4$6, [\n createTextVNode(toDisplayString($props.progress), 1),\n _hoisted_5$4\n ])\n ], 4)\n ], 512)\n ]),\n _: 1\n });\n}\nvar ProgressBar = /* @__PURE__ */ _export_sfc(_sfc_main$8, [[\"render\", _sfc_render$8]]);\nconst _sfc_main$7 = {\n name: \"MessageFile\",\n components: { SvgIcon, Loader, ProgressBar },\n props: {\n currentUserId: { type: [String, Number], required: true },\n message: { type: Object, required: true },\n file: { type: Object, required: true },\n index: { type: Number, required: true },\n messageSelectionEnabled: { type: Boolean, required: true }\n },\n emits: [\"open-file\"],\n data() {\n return {\n imageResponsive: \"\",\n imageLoading: false,\n imageHover: false\n };\n },\n computed: {\n isImageLoading() {\n return this.file.url.indexOf(\"blob:http\") !== -1 || this.imageLoading;\n },\n isImage() {\n return isImageFile(this.file);\n },\n isVideo() {\n return isVideoFile(this.file);\n }\n },\n watch: {\n file: {\n immediate: true,\n handler() {\n this.checkImgLoad();\n }\n }\n },\n mounted() {\n const ref = this.$refs[\"imageRef\" + this.index];\n if (ref) {\n this.imageResponsive = {\n maxHeight: ref.clientWidth - 18,\n loaderTop: ref.clientHeight / 2 - 9\n };\n }\n },\n methods: {\n checkImgLoad() {\n if (!isImageFile(this.file))\n return;\n this.imageLoading = true;\n const image = new Image();\n image.src = this.file.url;\n image.addEventListener(\"load\", () => this.imageLoading = false);\n },\n openFile(event, action) {\n if (!this.messageSelectionEnabled) {\n event.stopPropagation();\n this.$emit(\"open-file\", { file: this.file, action });\n }\n }\n }\n};\nconst _hoisted_1$7 = { class: \"vac-message-file-container\" };\nconst _hoisted_2$5 = {\n key: 0,\n class: \"vac-image-buttons\"\n};\nconst _hoisted_3$5 = { controls: \"\" };\nconst _hoisted_4$5 = [\"src\"];\nfunction _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_progress_bar = resolveComponent(\"progress-bar\");\n const _component_loader = resolveComponent(\"loader\");\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$7, [\n $options.isImage ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n ref: \"imageRef\" + $props.index,\n class: \"vac-message-image-container\",\n onMouseover: _cache[2] || (_cache[2] = ($event) => $data.imageHover = true),\n onMouseleave: _cache[3] || (_cache[3] = ($event) => $data.imageHover = false),\n onClick: _cache[4] || (_cache[4] = ($event) => $options.openFile($event, \"preview\"))\n }, [\n $props.file.progress >= 0 ? (openBlock(), createBlock(_component_progress_bar, {\n key: 0,\n progress: $props.file.progress,\n style: normalizeStyle({ top: `${$data.imageResponsive.loaderTop}px` })\n }, null, 8, [\"progress\", \"style\"])) : (openBlock(), createBlock(_component_loader, {\n key: 1,\n show: $options.isImageLoading,\n type: \"message-file\",\n \"message-id\": $props.message._id,\n style: normalizeStyle({ top: `${$data.imageResponsive.loaderTop}px` })\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"show\", \"message-id\", \"style\"])),\n createBaseVNode(\"div\", {\n class: normalizeClass([\"vac-message-image\", {\n \"vac-blur-loading\": $options.isImageLoading && $props.message.senderId === $props.currentUserId\n }]),\n style: normalizeStyle({\n \"background-image\": `url('${$options.isImageLoading ? $props.file.preview || $props.file.url : $props.file.url}')`,\n \"max-height\": `${$data.imageResponsive.maxHeight}px`\n })\n }, [\n createVNode(Transition, { name: \"vac-fade-image\" }, {\n default: withCtx(() => [\n !$props.messageSelectionEnabled && $data.imageHover && !$options.isImageLoading ? (openBlock(), createElementBlock(\"div\", _hoisted_2$5, [\n createBaseVNode(\"div\", {\n class: \"vac-svg-button vac-button-view\",\n onClick: _cache[0] || (_cache[0] = ($event) => $options.openFile($event, \"preview\"))\n }, [\n renderSlot(_ctx.$slots, \"eye-icon_\" + $props.message._id, {}, () => [\n createVNode(_component_svg_icon, { name: \"eye\" })\n ])\n ]),\n createBaseVNode(\"div\", {\n class: \"vac-svg-button vac-button-download\",\n onClick: _cache[1] || (_cache[1] = ($event) => $options.openFile($event, \"download\"))\n }, [\n renderSlot(_ctx.$slots, \"document-icon_\" + $props.message._id, {}, () => [\n createVNode(_component_svg_icon, { name: \"document\" })\n ])\n ])\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 3\n })\n ], 6)\n ], 544)) : $options.isVideo ? (openBlock(), createElementBlock(\"div\", {\n key: 1,\n class: \"vac-video-container\",\n onClick: _cache[5] || (_cache[5] = withModifiers(($event) => $options.openFile($event, \"preview\"), [\"prevent\"]))\n }, [\n $props.file.progress >= 0 ? (openBlock(), createBlock(_component_progress_bar, {\n key: 0,\n progress: $props.file.progress\n }, null, 8, [\"progress\"])) : createCommentVNode(\"\", true),\n createBaseVNode(\"video\", _hoisted_3$5, [\n createBaseVNode(\"source\", {\n src: $props.file.url\n }, null, 8, _hoisted_4$5)\n ])\n ])) : createCommentVNode(\"\", true)\n ]);\n}\nvar MessageFile = /* @__PURE__ */ _export_sfc(_sfc_main$7, [[\"render\", _sfc_render$7]]);\nconst _sfc_main$6 = {\n name: \"MessageFiles\",\n components: { SvgIcon, FormatMessage, ProgressBar, MessageFile },\n props: {\n currentUserId: { type: [String, Number], required: true },\n message: { type: Object, required: true },\n roomUsers: { type: Array, required: true },\n textFormatting: { type: Object, required: true },\n linkOptions: { type: Object, required: true },\n messageSelectionEnabled: { type: Boolean, required: true }\n },\n emits: [\"open-file\", \"open-user-tag\"],\n computed: {\n imageVideoFiles() {\n return this.message.files.filter((file) => isImageVideoFile(file));\n },\n otherFiles() {\n return this.message.files.filter((file) => !isImageVideoFile(file));\n }\n },\n methods: {\n openFile(event, file, action) {\n if (!this.messageSelectionEnabled) {\n event.stopPropagation();\n this.$emit(\"open-file\", { file, action });\n }\n }\n }\n};\nconst _hoisted_1$6 = { class: \"vac-message-files-container\" };\nconst _hoisted_2$4 = [\"onClick\"];\nconst _hoisted_3$4 = { class: \"vac-svg-button\" };\nconst _hoisted_4$4 = { class: \"vac-text-ellipsis\" };\nconst _hoisted_5$3 = {\n key: 0,\n class: \"vac-text-ellipsis vac-text-extension\"\n};\nfunction _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_message_file = resolveComponent(\"message-file\");\n const _component_progress_bar = resolveComponent(\"progress-bar\");\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n const _component_format_message = resolveComponent(\"format-message\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$6, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.imageVideoFiles, (file, i) => {\n return openBlock(), createElementBlock(\"div\", {\n key: i + \"iv\"\n }, [\n createVNode(_component_message_file, {\n file,\n \"current-user-id\": $props.currentUserId,\n message: $props.message,\n index: i,\n \"message-selection-enabled\": $props.messageSelectionEnabled,\n onOpenFile: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"open-file\", $event))\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"file\", \"current-user-id\", \"message\", \"index\", \"message-selection-enabled\"])\n ]);\n }), 128)),\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.otherFiles, (file, i) => {\n return openBlock(), createElementBlock(\"div\", {\n key: i + \"a\",\n class: \"vac-file-wrapper\"\n }, [\n file.progress >= 0 ? (openBlock(), createBlock(_component_progress_bar, {\n key: 0,\n progress: file.progress,\n style: { top: \"44px\" }\n }, null, 8, [\"progress\"])) : createCommentVNode(\"\", true),\n createBaseVNode(\"div\", {\n class: normalizeClass([\"vac-file-container\", { \"vac-file-container-progress\": file.progress >= 0 }]),\n onClick: ($event) => $options.openFile($event, file, \"download\")\n }, [\n createBaseVNode(\"div\", _hoisted_3$4, [\n renderSlot(_ctx.$slots, \"document-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"document\" })\n ])\n ]),\n createBaseVNode(\"div\", _hoisted_4$4, toDisplayString(file.name), 1),\n file.extension ? (openBlock(), createElementBlock(\"div\", _hoisted_5$3, toDisplayString(file.extension), 1)) : createCommentVNode(\"\", true)\n ], 10, _hoisted_2$4)\n ]);\n }), 128)),\n createVNode(_component_format_message, {\n \"message-id\": $props.message._id,\n content: $props.message.content,\n users: $props.roomUsers,\n \"text-formatting\": $props.textFormatting,\n \"link-options\": $props.linkOptions,\n onOpenUserTag: _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"open-user-tag\", $event))\n }, null, 8, [\"message-id\", \"content\", \"users\", \"text-formatting\", \"link-options\"])\n ]);\n}\nvar MessageFiles = /* @__PURE__ */ _export_sfc(_sfc_main$6, [[\"render\", _sfc_render$6]]);\nconst _sfc_main$5 = {\n name: \"MessageActions\",\n components: { SvgIcon, EmojiPickerContainer },\n directives: {\n clickOutside: vClickOutside\n },\n props: {\n currentUserId: { type: [String, Number], required: true },\n message: { type: Object, required: true },\n messageActions: { type: Array, required: true },\n showReactionEmojis: { type: Boolean, required: true },\n messageHover: { type: Boolean, required: true },\n hoverMessageId: { type: [String, Number], default: null },\n hoverAudioProgress: { type: Boolean, required: true },\n emojiDataSource: { type: String, default: void 0 }\n },\n emits: [\n \"update-emoji-opened\",\n \"update-options-opened\",\n \"update-message-hover\",\n \"message-action-handler\",\n \"send-message-reaction\"\n ],\n data() {\n return {\n menuOptionsTop: 0,\n optionsOpened: false,\n optionsClosing: false,\n emojiOpened: false\n };\n },\n computed: {\n isMessageActions() {\n return this.filteredMessageActions.length && this.messageHover && !this.message.deleted && !this.message.disableActions && !this.hoverAudioProgress;\n },\n isMessageReactions() {\n return this.showReactionEmojis && this.messageHover && !this.message.deleted && !this.message.disableReactions && !this.hoverAudioProgress;\n },\n filteredMessageActions() {\n return this.message.senderId === this.currentUserId ? this.messageActions : this.messageActions.filter((message) => !message.onlyMe);\n }\n },\n watch: {\n emojiOpened(val) {\n this.$emit(\"update-emoji-opened\", val);\n if (val)\n this.optionsOpened = false;\n },\n optionsOpened(val) {\n this.$emit(\"update-options-opened\", val);\n }\n },\n methods: {\n openOptions() {\n if (this.optionsClosing)\n return;\n this.optionsOpened = !this.optionsOpened;\n if (!this.optionsOpened)\n return;\n setTimeout(() => {\n const roomFooterRef = findParentBySelector(this.$el, \"#room-footer\");\n if (!roomFooterRef || !this.$refs.menuOptions || !this.$refs.actionIcon) {\n return;\n }\n const menuOptionsTop = this.$refs.menuOptions.getBoundingClientRect().height;\n const actionIconTop = this.$refs.actionIcon.getBoundingClientRect().top;\n const roomFooterTop = roomFooterRef.getBoundingClientRect().top;\n const optionsTopPosition = roomFooterTop - actionIconTop > menuOptionsTop + 50;\n if (optionsTopPosition)\n this.menuOptionsTop = 30;\n else\n this.menuOptionsTop = -menuOptionsTop;\n });\n },\n closeOptions() {\n this.optionsOpened = false;\n this.optionsClosing = true;\n this.updateMessageHover();\n setTimeout(() => this.optionsClosing = false, 100);\n },\n openEmoji() {\n this.emojiOpened = !this.emojiOpened;\n },\n closeEmoji() {\n this.emojiOpened = false;\n this.updateMessageHover();\n },\n updateMessageHover() {\n if (this.hoverMessageId !== this.message._id) {\n this.$emit(\"update-message-hover\", false);\n }\n },\n messageActionHandler(action) {\n this.closeOptions();\n this.$emit(\"message-action-handler\", action);\n },\n sendMessageReaction(emoji, reaction) {\n this.$emit(\"send-message-reaction\", { emoji, reaction });\n this.closeEmoji();\n }\n }\n};\nconst _hoisted_1$5 = { class: \"vac-message-actions-wrapper\" };\nconst _hoisted_2$3 = { key: \"3\" };\nconst _hoisted_3$3 = { class: \"vac-menu-list\" };\nconst _hoisted_4$3 = [\"onClick\"];\nfunction _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n const _component_emoji_picker_container = resolveComponent(\"emoji-picker-container\");\n const _directive_click_outside = resolveDirective(\"click-outside\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$5, [\n createBaseVNode(\"div\", {\n class: \"vac-options-container\",\n style: normalizeStyle({\n display: $props.hoverAudioProgress ? \"none\" : \"initial\",\n width: $options.filteredMessageActions.length && $props.showReactionEmojis ? \"70px\" : \"45px\"\n })\n }, [\n createVNode(TransitionGroup, {\n name: \"vac-slide-left\",\n tag: \"span\"\n }, {\n default: withCtx(() => [\n $options.isMessageActions || $options.isMessageReactions ? (openBlock(), createElementBlock(\"div\", {\n key: \"1\",\n class: normalizeClass([\"vac-blur-container\", {\n \"vac-options-me\": $props.message.senderId === $props.currentUserId\n }])\n }, null, 2)) : createCommentVNode(\"\", true),\n $options.isMessageActions ? (openBlock(), createElementBlock(\"div\", {\n ref: \"actionIcon\",\n key: \"2\",\n class: \"vac-svg-button vac-message-options\",\n onClick: _cache[0] || (_cache[0] = (...args) => $options.openOptions && $options.openOptions(...args))\n }, [\n renderSlot(_ctx.$slots, \"dropdown-icon_\" + $props.message._id, {}, () => [\n createVNode(_component_svg_icon, {\n name: \"dropdown\",\n param: \"message\"\n })\n ])\n ], 512)) : createCommentVNode(\"\", true),\n $options.isMessageReactions ? withDirectives((openBlock(), createElementBlock(\"div\", _hoisted_2$3, [\n renderSlot(_ctx.$slots, \"emoji-picker\", mergeProps({ emojiOpened: $data.emojiOpened }, { addEmoji: $options.sendMessageReaction }), () => [\n createVNode(_component_emoji_picker_container, {\n class: \"vac-message-emojis\",\n style: normalizeStyle({ right: $options.isMessageActions ? \"30px\" : \"5px\" }),\n \"emoji-opened\": $data.emojiOpened,\n \"emoji-reaction\": true,\n \"position-right\": $props.message.senderId === $props.currentUserId,\n \"message-id\": $props.message._id,\n \"emoji-data-source\": $props.emojiDataSource,\n onAddEmoji: $options.sendMessageReaction,\n onOpenEmoji: $options.openEmoji\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"style\", \"emoji-opened\", \"position-right\", \"message-id\", \"emoji-data-source\", \"onAddEmoji\", \"onOpenEmoji\"])\n ])\n ])), [\n [_directive_click_outside, $options.closeEmoji]\n ]) : createCommentVNode(\"\", true)\n ]),\n _: 3\n })\n ], 4),\n $options.filteredMessageActions.length ? (openBlock(), createBlock(Transition, {\n key: 0,\n name: $props.message.senderId === $props.currentUserId ? \"vac-slide-left\" : \"vac-slide-right\"\n }, {\n default: withCtx(() => [\n $data.optionsOpened ? withDirectives((openBlock(), createElementBlock(\"div\", {\n key: 0,\n ref: \"menuOptions\",\n class: normalizeClass([\"vac-menu-options\", {\n \"vac-menu-left\": $props.message.senderId !== $props.currentUserId\n }]),\n style: normalizeStyle({ top: `${$data.menuOptionsTop}px` })\n }, [\n createBaseVNode(\"div\", _hoisted_3$3, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.filteredMessageActions, (action) => {\n return openBlock(), createElementBlock(\"div\", {\n key: action.name\n }, [\n createBaseVNode(\"div\", {\n class: \"vac-menu-item\",\n onClick: ($event) => $options.messageActionHandler(action)\n }, toDisplayString(action.title), 9, _hoisted_4$3)\n ]);\n }), 128))\n ])\n ], 6)), [\n [_directive_click_outside, $options.closeOptions]\n ]) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"name\"])) : createCommentVNode(\"\", true)\n ]);\n}\nvar MessageActions = /* @__PURE__ */ _export_sfc(_sfc_main$5, [[\"render\", _sfc_render$5]]);\nconst _sfc_main$4 = {\n name: \"MessageReactions\",\n props: {\n currentUserId: { type: [String, Number], required: true },\n message: { type: Object, required: true }\n },\n emits: [\"send-message-reaction\"],\n methods: {\n sendMessageReaction(emoji, reaction) {\n this.$emit(\"send-message-reaction\", { emoji, reaction });\n }\n }\n};\nconst _hoisted_1$4 = [\"onClick\"];\nfunction _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {\n return !$props.message.deleted ? (openBlock(), createBlock(TransitionGroup, {\n key: 0,\n name: \"vac-slide-left\",\n tag: \"span\"\n }, {\n default: withCtx(() => [\n (openBlock(true), createElementBlock(Fragment, null, renderList($props.message.reactions, (reaction, key) => {\n return withDirectives((openBlock(), createElementBlock(\"button\", {\n key: key + 0,\n class: normalizeClass([\"vac-button-reaction\", {\n \"vac-reaction-me\": reaction.indexOf($props.currentUserId) !== -1\n }]),\n style: normalizeStyle({\n float: $props.message.senderId === $props.currentUserId ? \"right\" : \"left\"\n }),\n onClick: ($event) => $options.sendMessageReaction({ unicode: key }, reaction)\n }, [\n createTextVNode(toDisplayString(key), 1),\n createBaseVNode(\"span\", null, toDisplayString(reaction.length), 1)\n ], 14, _hoisted_1$4)), [\n [vShow, reaction.length]\n ]);\n }), 128))\n ]),\n _: 1\n })) : createCommentVNode(\"\", true);\n}\nvar MessageReactions = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"render\", _sfc_render$4]]);\nfunction roomsValidation(obj) {\n const roomsValidate = [\n { key: \"roomId\", type: [\"string\", \"number\"] },\n { key: \"roomName\", type: [\"string\"] },\n { key: \"users\", type: [\"array\"] }\n ];\n const validate = (obj2, props) => {\n return props.every((prop) => {\n let validType = false;\n if (prop.type[0] === \"array\" && Array.isArray(obj2[prop.key])) {\n validType = true;\n } else if (prop.type.find((t) => t === typeof obj2[prop.key])) {\n validType = true;\n }\n return validType && checkObjectValid(obj2, prop.key);\n });\n };\n if (!validate(obj, roomsValidate)) {\n throw new Error(\n \"Rooms object is not valid! Must contain at least roomId[String, Number], roomName[String] and users[Array]\"\n );\n }\n}\nfunction partcipantsValidation(obj) {\n const participantsValidate = [\n { key: \"_id\", type: [\"string\", \"number\"] },\n { key: \"username\", type: [\"string\"] }\n ];\n const validate = (obj2, props) => {\n return props.every((prop) => {\n const validType = prop.type.find((t) => t === typeof obj2[prop.key]);\n return validType && checkObjectValid(obj2, prop.key);\n });\n };\n if (!validate(obj, participantsValidate)) {\n throw new Error(\n \"Participants object is not valid! Must contain at least _id[String, Number] and username[String]\"\n );\n }\n}\nfunction messagesValidation(obj) {\n const messagesValidate = [\n { key: \"_id\", type: [\"string\", \"number\"] },\n { key: \"senderId\", type: [\"string\", \"number\"] }\n ];\n const validate = (obj2, props) => {\n return props.every((prop) => {\n const validType = prop.type.find((t) => t === typeof obj2[prop.key]);\n return validType && checkObjectValid(obj2, prop.key);\n });\n };\n if (!validate(obj, messagesValidate)) {\n throw new Error(\n \"Messages object is not valid! Must contain at least _id[String, Number] and senderId[String, Number]\"\n );\n }\n}\nfunction checkObjectValid(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key) && obj[key] !== null && obj[key] !== void 0;\n}\nconst _sfc_main$3 = {\n name: \"RoomMessage\",\n components: {\n SvgIcon,\n FormatMessage,\n AudioPlayer,\n MessageReply,\n MessageFiles,\n MessageActions,\n MessageReactions\n },\n props: {\n currentUserId: { type: [String, Number], required: true },\n textMessages: { type: Object, required: true },\n index: { type: Number, required: true },\n message: { type: Object, required: true },\n messages: { type: Array, required: true },\n editedMessageId: { type: [String, Number], default: null },\n roomUsers: { type: Array, default: () => [] },\n messageActions: { type: Array, required: true },\n newMessages: { type: Array, default: () => [] },\n showReactionEmojis: { type: Boolean, required: true },\n showNewMessagesDivider: { type: Boolean, required: true },\n textFormatting: { type: Object, required: true },\n linkOptions: { type: Object, required: true },\n usernameOptions: { type: Object, required: true },\n messageSelectionEnabled: { type: Boolean, required: true },\n selectedMessages: { type: Array, default: () => [] },\n emojiDataSource: { type: String, default: void 0 }\n },\n emits: [\n \"message-added\",\n \"open-file\",\n \"open-user-tag\",\n \"open-failed-message\",\n \"message-action-handler\",\n \"send-message-reaction\",\n \"select-message\",\n \"unselect-message\"\n ],\n data() {\n return {\n hoverMessageId: null,\n messageHover: false,\n optionsOpened: false,\n emojiOpened: false,\n newMessage: {},\n progressTime: \"- : -\",\n hoverAudioProgress: false\n };\n },\n computed: {\n showUsername() {\n if (!this.usernameOptions.currentUser && this.message.senderId === this.currentUserId) {\n return false;\n } else {\n return this.roomUsers.length >= this.usernameOptions.minUsers;\n }\n },\n showDate() {\n return this.index > 0 && this.message.date !== this.messages[this.index - 1].date;\n },\n messageOffset() {\n return this.index > 0 && this.message.senderId !== this.messages[this.index - 1].senderId;\n },\n isMessageHover() {\n return this.editedMessageId === this.message._id || this.hoverMessageId === this.message._id;\n },\n isAudio() {\n var _a;\n return (_a = this.message.files) == null ? void 0 : _a.some((file) => isAudioFile(file));\n },\n isCheckmarkVisible() {\n return this.message.senderId === this.currentUserId && !this.message.deleted && (this.message.saved || this.message.distributed || this.message.seen);\n },\n hasCurrentUserAvatar() {\n return this.messages.some(\n (message) => message.senderId === this.currentUserId && message.avatar\n );\n },\n hasSenderUserAvatar() {\n return this.messages.some(\n (message) => message.senderId !== this.currentUserId && message.avatar\n );\n },\n isMessageSelected() {\n return this.messageSelectionEnabled && !!this.selectedMessages.find(\n (message) => message._id === this.message._id\n );\n }\n },\n watch: {\n newMessages: {\n immediate: true,\n deep: true,\n handler(val) {\n if (!val.length || !this.showNewMessagesDivider) {\n this.newMessage = {};\n return;\n }\n this.newMessage = val.reduce(\n (res, obj) => obj.index < res.index ? obj : res\n );\n }\n },\n messageSelectionEnabled() {\n this.resetMessageHover();\n }\n },\n mounted() {\n messagesValidation(this.message);\n this.$emit(\"message-added\", {\n message: this.message,\n index: this.index,\n ref: this.$refs.message\n });\n },\n methods: {\n onHoverMessage() {\n if (!this.messageSelectionEnabled) {\n this.messageHover = true;\n if (this.canEditMessage())\n this.hoverMessageId = this.message._id;\n }\n },\n canEditMessage() {\n return !this.message.deleted;\n },\n onLeaveMessage() {\n if (!this.messageSelectionEnabled) {\n if (!this.optionsOpened && !this.emojiOpened)\n this.messageHover = false;\n this.hoverMessageId = null;\n }\n },\n resetMessageHover() {\n this.messageHover = false;\n this.hoverMessageId = null;\n },\n openFile(file) {\n this.$emit(\"open-file\", { message: this.message, file });\n },\n openUserTag(user) {\n this.$emit(\"open-user-tag\", { user });\n },\n messageActionHandler(action) {\n this.resetMessageHover();\n setTimeout(() => {\n this.$emit(\"message-action-handler\", { action, message: this.message });\n }, 300);\n },\n sendMessageReaction({ emoji, reaction }) {\n this.$emit(\"send-message-reaction\", {\n messageId: this.message._id,\n reaction: emoji,\n remove: reaction && reaction.indexOf(this.currentUserId) !== -1\n });\n this.messageHover = false;\n },\n selectMessage() {\n if (this.messageSelectionEnabled) {\n if (this.isMessageSelected) {\n this.$emit(\"unselect-message\", this.message._id);\n } else {\n this.$emit(\"select-message\", this.message);\n }\n }\n }\n }\n};\nconst _hoisted_1$3 = [\"id\"];\nconst _hoisted_2$2 = {\n key: 0,\n class: \"vac-card-info vac-card-date\"\n};\nconst _hoisted_3$2 = {\n key: 1,\n class: \"vac-line-new\"\n};\nconst _hoisted_4$2 = {\n key: 2,\n class: \"vac-card-info vac-card-system\"\n};\nconst _hoisted_5$2 = {\n key: 1,\n class: \"vac-avatar-offset\"\n};\nconst _hoisted_6$1 = {\n key: 0,\n class: \"vac-progress-time\"\n};\nconst _hoisted_7$1 = { class: \"vac-text-timestamp\" };\nconst _hoisted_8 = {\n key: 0,\n class: \"vac-icon-edited\"\n};\nconst _hoisted_9 = { key: 1 };\nconst _hoisted_10 = /* @__PURE__ */ createBaseVNode(\"div\", { class: \"vac-failure-text\" }, \"!\", -1);\nconst _hoisted_11 = [\n _hoisted_10\n];\nconst _hoisted_12 = {\n key: 3,\n class: \"vac-avatar-current-offset\"\n};\nfunction _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_format_message = resolveComponent(\"format-message\");\n const _component_message_reply = resolveComponent(\"message-reply\");\n const _component_message_files = resolveComponent(\"message-files\");\n const _component_audio_player = resolveComponent(\"audio-player\");\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n const _component_message_actions = resolveComponent(\"message-actions\");\n const _component_message_reactions = resolveComponent(\"message-reactions\");\n return openBlock(), createElementBlock(\"div\", {\n id: $props.message._id,\n ref: \"message\",\n class: \"vac-message-wrapper\"\n }, [\n $options.showDate ? (openBlock(), createElementBlock(\"div\", _hoisted_2$2, toDisplayString($props.message.date), 1)) : createCommentVNode(\"\", true),\n $data.newMessage._id === $props.message._id ? (openBlock(), createElementBlock(\"div\", _hoisted_3$2, toDisplayString($props.textMessages.NEW_MESSAGES), 1)) : createCommentVNode(\"\", true),\n $props.message.system ? (openBlock(), createElementBlock(\"div\", _hoisted_4$2, [\n renderSlot(_ctx.$slots, \"message_\" + $props.message._id, {}, () => [\n createVNode(_component_format_message, {\n \"message-id\": $props.message._id,\n content: $props.message.content,\n deleted: !!$props.message.deleted,\n users: $props.roomUsers,\n \"text-messages\": $props.textMessages,\n \"text-formatting\": $props.textFormatting,\n \"link-options\": $props.linkOptions,\n onOpenUserTag: $options.openUserTag\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"message-id\", \"content\", \"deleted\", \"users\", \"text-messages\", \"text-formatting\", \"link-options\", \"onOpenUserTag\"])\n ])\n ])) : (openBlock(), createElementBlock(\"div\", {\n key: 3,\n class: normalizeClass([\"vac-message-box\", { \"vac-offset-current\": $props.message.senderId === $props.currentUserId }]),\n onClick: _cache[8] || (_cache[8] = (...args) => $options.selectMessage && $options.selectMessage(...args))\n }, [\n renderSlot(_ctx.$slots, \"message_\" + $props.message._id, {}, () => [\n $props.message.senderId !== $props.currentUserId ? renderSlot(_ctx.$slots, \"message-avatar_\" + $props.message._id, { key: 0 }, () => [\n $props.message.avatar ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: \"vac-avatar\",\n style: normalizeStyle({ \"background-image\": `url('${$props.message.avatar}')` })\n }, null, 4)) : createCommentVNode(\"\", true)\n ]) : createCommentVNode(\"\", true),\n $options.hasSenderUserAvatar && !$props.message.avatar ? (openBlock(), createElementBlock(\"div\", _hoisted_5$2)) : createCommentVNode(\"\", true),\n createBaseVNode(\"div\", {\n class: normalizeClass([\"vac-message-container\", {\n \"vac-message-container-offset\": $options.messageOffset\n }])\n }, [\n createBaseVNode(\"div\", {\n class: normalizeClass([\"vac-message-card\", {\n \"vac-message-highlight\": $options.isMessageHover,\n \"vac-message-current\": $props.message.senderId === $props.currentUserId,\n \"vac-message-deleted\": $props.message.deleted,\n \"vac-item-clickable\": $props.messageSelectionEnabled,\n \"vac-message-selected\": $options.isMessageSelected\n }]),\n onMouseover: _cache[5] || (_cache[5] = (...args) => $options.onHoverMessage && $options.onHoverMessage(...args)),\n onMouseleave: _cache[6] || (_cache[6] = (...args) => $options.onLeaveMessage && $options.onLeaveMessage(...args))\n }, [\n $options.showUsername ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"vac-text-username\", {\n \"vac-username-reply\": !$props.message.deleted && $props.message.replyMessage\n }])\n }, [\n createBaseVNode(\"span\", null, toDisplayString($props.message.username), 1)\n ], 2)) : createCommentVNode(\"\", true),\n !$props.message.deleted && $props.message.replyMessage ? (openBlock(), createBlock(_component_message_reply, {\n key: 1,\n message: $props.message,\n \"room-users\": $props.roomUsers,\n \"text-formatting\": $props.textFormatting,\n \"link-options\": $props.linkOptions\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (i, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"message\", \"room-users\", \"text-formatting\", \"link-options\"])) : createCommentVNode(\"\", true),\n !!$props.message.deleted || !$props.message.files || !$props.message.files.length ? (openBlock(), createBlock(_component_format_message, {\n key: 2,\n \"message-id\": $props.message._id,\n content: $props.message.content,\n deleted: !!$props.message.deleted,\n users: $props.roomUsers,\n \"text-formatting\": $props.textFormatting,\n \"text-messages\": $props.textMessages,\n \"link-options\": $props.linkOptions,\n onOpenUserTag: $options.openUserTag\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"message-id\", \"content\", \"deleted\", \"users\", \"text-formatting\", \"text-messages\", \"link-options\", \"onOpenUserTag\"])) : !$options.isAudio || $props.message.files.length > 1 ? (openBlock(), createBlock(_component_message_files, {\n key: 3,\n \"current-user-id\": $props.currentUserId,\n message: $props.message,\n \"room-users\": $props.roomUsers,\n \"text-formatting\": $props.textFormatting,\n \"link-options\": $props.linkOptions,\n \"message-selection-enabled\": $props.messageSelectionEnabled,\n onOpenFile: $options.openFile,\n onOpenUserTag: $options.openUserTag\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (i, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"current-user-id\", \"message\", \"room-users\", \"text-formatting\", \"link-options\", \"message-selection-enabled\", \"onOpenFile\", \"onOpenUserTag\"])) : (openBlock(), createElementBlock(Fragment, { key: 4 }, [\n createVNode(_component_audio_player, {\n \"message-id\": $props.message._id,\n src: $props.message.files[0].url,\n \"message-selection-enabled\": $props.messageSelectionEnabled,\n onUpdateProgressTime: _cache[0] || (_cache[0] = ($event) => $data.progressTime = $event),\n onHoverAudioProgress: _cache[1] || (_cache[1] = ($event) => $data.hoverAudioProgress = $event)\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (i, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"message-id\", \"src\", \"message-selection-enabled\"]),\n !$props.message.deleted ? (openBlock(), createElementBlock(\"div\", _hoisted_6$1, toDisplayString($data.progressTime), 1)) : createCommentVNode(\"\", true)\n ], 64)),\n createBaseVNode(\"div\", _hoisted_7$1, [\n $props.message.edited && !$props.message.deleted ? (openBlock(), createElementBlock(\"div\", _hoisted_8, [\n renderSlot(_ctx.$slots, \"pencil-icon_\" + $props.message._id, {}, () => [\n createVNode(_component_svg_icon, { name: \"pencil\" })\n ])\n ])) : createCommentVNode(\"\", true),\n createBaseVNode(\"span\", null, toDisplayString($props.message.timestamp), 1),\n $options.isCheckmarkVisible ? (openBlock(), createElementBlock(\"span\", _hoisted_9, [\n renderSlot(_ctx.$slots, \"checkmark-icon_\" + $props.message._id, {}, () => [\n createVNode(_component_svg_icon, {\n name: $props.message.distributed ? \"double-checkmark\" : \"checkmark\",\n param: $props.message.seen ? \"seen\" : \"\",\n class: \"vac-icon-check\"\n }, null, 8, [\"name\", \"param\"])\n ])\n ])) : createCommentVNode(\"\", true)\n ]),\n createVNode(_component_message_actions, {\n \"current-user-id\": $props.currentUserId,\n message: $props.message,\n \"message-actions\": $props.messageActions,\n \"show-reaction-emojis\": $props.showReactionEmojis,\n \"message-hover\": $data.messageHover,\n \"hover-message-id\": $data.hoverMessageId,\n \"hover-audio-progress\": $data.hoverAudioProgress,\n \"emoji-data-source\": $props.emojiDataSource,\n onUpdateMessageHover: _cache[2] || (_cache[2] = ($event) => $data.messageHover = $event),\n onUpdateOptionsOpened: _cache[3] || (_cache[3] = ($event) => $data.optionsOpened = $event),\n onUpdateEmojiOpened: _cache[4] || (_cache[4] = ($event) => $data.emojiOpened = $event),\n onMessageActionHandler: $options.messageActionHandler,\n onSendMessageReaction: $options.sendMessageReaction\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (i, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"current-user-id\", \"message\", \"message-actions\", \"show-reaction-emojis\", \"message-hover\", \"hover-message-id\", \"hover-audio-progress\", \"emoji-data-source\", \"onMessageActionHandler\", \"onSendMessageReaction\"])\n ], 34),\n createVNode(_component_message_reactions, {\n \"current-user-id\": $props.currentUserId,\n message: $props.message,\n onSendMessageReaction: $options.sendMessageReaction\n }, null, 8, [\"current-user-id\", \"message\", \"onSendMessageReaction\"])\n ], 2),\n renderSlot(_ctx.$slots, \"message-failure_\" + $props.message._id, {}, () => [\n $props.message.failure && $props.message.senderId === $props.currentUserId ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"vac-failure-container vac-svg-button\", {\n \"vac-failure-container-avatar\": $props.message.avatar && $props.message.senderId === $props.currentUserId\n }]),\n onClick: _cache[7] || (_cache[7] = ($event) => _ctx.$emit(\"open-failed-message\", { message: $props.message }))\n }, _hoisted_11, 2)) : createCommentVNode(\"\", true)\n ]),\n $props.message.senderId === $props.currentUserId ? renderSlot(_ctx.$slots, \"message-avatar_\" + $props.message._id, { key: 2 }, () => [\n $props.message.avatar ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: \"vac-avatar vac-avatar-current\",\n style: normalizeStyle({ \"background-image\": `url('${$props.message.avatar}')` })\n }, null, 4)) : createCommentVNode(\"\", true)\n ]) : createCommentVNode(\"\", true),\n $options.hasCurrentUserAvatar && !$props.message.avatar ? (openBlock(), createElementBlock(\"div\", _hoisted_12)) : createCommentVNode(\"\", true)\n ])\n ], 2))\n ], 8, _hoisted_1$3);\n}\nvar RoomMessage = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$3]]);\nconst _sfc_main$2 = {\n name: \"ChatRoom\",\n components: {\n Loader,\n SvgIcon,\n RoomHeader,\n RoomFooter,\n RoomMessage\n },\n props: {\n currentUserId: { type: [String, Number], required: true },\n textMessages: { type: Object, required: true },\n singleRoom: { type: Boolean, required: true },\n showRoomsList: { type: Boolean, required: true },\n isMobile: { type: Boolean, required: true },\n rooms: { type: Array, required: true },\n roomId: { type: [String, Number], required: true },\n loadFirstRoom: { type: Boolean, required: true },\n messages: { type: Array, required: true },\n roomMessage: { type: String, default: null },\n messagesLoaded: { type: Boolean, required: true },\n menuActions: { type: Array, required: true },\n messageActions: { type: Array, required: true },\n messageSelectionActions: { type: Array, required: true },\n autoScroll: { type: Object, required: true },\n showSendIcon: { type: Boolean, required: true },\n showFiles: { type: Boolean, required: true },\n showAudio: { type: Boolean, required: true },\n audioBitRate: { type: Number, required: true },\n audioSampleRate: { type: Number, required: true },\n showEmojis: { type: Boolean, required: true },\n showReactionEmojis: { type: Boolean, required: true },\n showNewMessagesDivider: { type: Boolean, required: true },\n showFooter: { type: Boolean, required: true },\n acceptedFiles: { type: String, required: true },\n captureFiles: { type: String, required: true },\n multipleFiles: { type: Boolean, default: true },\n textFormatting: { type: Object, required: true },\n linkOptions: { type: Object, required: true },\n loadingRooms: { type: Boolean, required: true },\n roomInfoEnabled: { type: Boolean, required: true },\n textareaActionEnabled: { type: Boolean, required: true },\n textareaAutoFocus: { type: Boolean, required: true },\n userTagsEnabled: { type: Boolean, required: true },\n emojisSuggestionEnabled: { type: Boolean, required: true },\n scrollDistance: { type: Number, required: true },\n templatesText: { type: Array, default: null },\n usernameOptions: { type: Object, required: true },\n emojiDataSource: { type: String, default: void 0 }\n },\n emits: [\n \"toggle-rooms-list\",\n \"room-info\",\n \"menu-action-handler\",\n \"message-selection-action-handler\",\n \"edit-message\",\n \"send-message\",\n \"delete-message\",\n \"message-action-handler\",\n \"fetch-messages\",\n \"send-message-reaction\",\n \"typing-message\",\n \"open-file\",\n \"open-user-tag\",\n \"open-failed-message\",\n \"textarea-action-handler\"\n ],\n data() {\n return {\n editedMessageId: null,\n initReplyMessage: null,\n initEditMessage: null,\n loadingMessages: false,\n observer: null,\n showLoader: true,\n loadingMoreMessages: false,\n scrollIcon: false,\n scrollMessagesCount: 0,\n newMessages: [],\n messageSelectionEnabled: false,\n selectedMessages: [],\n droppedFiles: []\n };\n },\n computed: {\n room() {\n return this.rooms.find((room) => room.roomId === this.roomId) || {};\n },\n showNoMessages() {\n return this.roomId && !this.messages.length && !this.loadingMessages && !this.loadingRooms;\n },\n showNoRoom() {\n const noRoomSelected = !this.rooms.length && !this.loadingRooms || !this.roomId && !this.loadFirstRoom;\n if (noRoomSelected) {\n this.updateLoadingMessages(false);\n }\n return noRoomSelected;\n },\n showMessagesStarted() {\n return this.messages.length && this.messagesLoaded;\n }\n },\n watch: {\n roomId: {\n immediate: true,\n handler() {\n this.onRoomChanged();\n }\n },\n messages: {\n deep: true,\n handler(newVal, oldVal) {\n newVal.forEach((message, i) => {\n if (this.showNewMessagesDivider && !message.seen && message.senderId !== this.currentUserId) {\n this.newMessages.push({\n _id: message._id,\n index: i\n });\n }\n });\n if ((oldVal == null ? void 0 : oldVal.length) === (newVal == null ? void 0 : newVal.length) - 1) {\n this.newMessages = [];\n }\n setTimeout(() => this.loadingMoreMessages = false);\n }\n },\n messagesLoaded(val) {\n if (val)\n this.updateLoadingMessages(false);\n }\n },\n mounted() {\n this.newMessages = [];\n },\n methods: {\n updateLoadingMessages(val) {\n this.loadingMessages = val;\n if (!val) {\n setTimeout(() => this.initIntersectionObserver());\n }\n },\n initIntersectionObserver() {\n if (this.observer) {\n this.showLoader = true;\n this.observer.disconnect();\n }\n const loader = this.$el.querySelector(\"#infinite-loader-messages\");\n if (loader) {\n const options = {\n root: this.$el.querySelector(\"#messages-list\"),\n rootMargin: `${this.scrollDistance}px`,\n threshold: 0\n };\n this.observer = new IntersectionObserver((entries) => {\n if (entries[0].isIntersecting) {\n this.loadMoreMessages();\n }\n }, options);\n this.observer.observe(loader);\n }\n },\n preventTopScroll() {\n const container = this.$refs.scrollContainer;\n const prevScrollHeight = container.scrollHeight;\n const observer = new ResizeObserver((_) => {\n if (container.scrollHeight !== prevScrollHeight) {\n if (this.$refs.scrollContainer) {\n this.$refs.scrollContainer.scrollTo({\n top: container.scrollHeight - prevScrollHeight\n });\n observer.disconnect();\n }\n }\n });\n for (var i = 0; i < container.children.length; i++) {\n observer.observe(container.children[i]);\n }\n },\n touchStart(touchEvent) {\n if (this.singleRoom)\n return;\n if (touchEvent.changedTouches.length === 1) {\n const posXStart = touchEvent.changedTouches[0].clientX;\n const posYStart = touchEvent.changedTouches[0].clientY;\n addEventListener(\n \"touchend\",\n (touchEvent2) => this.touchEnd(touchEvent2, posXStart, posYStart),\n { once: true }\n );\n }\n },\n touchEnd(touchEvent, posXStart, posYStart) {\n if (touchEvent.changedTouches.length === 1) {\n const posXEnd = touchEvent.changedTouches[0].clientX;\n const posYEnd = touchEvent.changedTouches[0].clientY;\n const swippedRight = posXEnd - posXStart > 100;\n const swippedVertically = Math.abs(posYEnd - posYStart) > 50;\n if (swippedRight && !swippedVertically) {\n this.$emit(\"toggle-rooms-list\");\n }\n }\n },\n onRoomChanged() {\n this.updateLoadingMessages(true);\n this.scrollIcon = false;\n this.scrollMessagesCount = 0;\n this.resetMessageSelection();\n const unwatch = this.$watch(\n () => this.messages,\n (val) => {\n if (!val || !val.length)\n return;\n const element2 = this.$refs.scrollContainer;\n if (!element2)\n return;\n unwatch();\n setTimeout(() => {\n element2.scrollTo({ top: element2.scrollHeight });\n this.updateLoadingMessages(false);\n });\n }\n );\n },\n resetMessageSelection() {\n this.messageSelectionEnabled = false;\n this.selectedMessages = [];\n },\n selectMessage(message) {\n this.selectedMessages.push(message);\n },\n unselectMessage(messageId) {\n this.selectedMessages = this.selectedMessages.filter(\n (message) => message._id !== messageId\n );\n },\n onMessageAdded({ message, index, ref }) {\n if (index !== this.messages.length - 1)\n return;\n const autoScrollOffset = ref.offsetHeight + 60;\n setTimeout(() => {\n const scrollContainer = this.$refs.scrollContainer;\n let scrolledUp = false;\n if (scrollContainer) {\n scrolledUp = this.getBottomScroll(scrollContainer) > autoScrollOffset;\n }\n if (message.senderId === this.currentUserId) {\n if (scrolledUp) {\n if (this.autoScroll.send.newAfterScrollUp) {\n this.scrollToBottom();\n }\n } else {\n if (this.autoScroll.send.new) {\n this.scrollToBottom();\n }\n }\n } else {\n if (scrolledUp) {\n if (this.autoScroll.receive.newAfterScrollUp) {\n this.scrollToBottom();\n } else {\n this.scrollIcon = true;\n this.scrollMessagesCount++;\n }\n } else {\n if (this.autoScroll.receive.new) {\n this.scrollToBottom();\n } else {\n this.scrollIcon = true;\n this.scrollMessagesCount++;\n }\n }\n }\n });\n },\n onContainerScroll(e) {\n if (!e.target)\n return;\n const bottomScroll = this.getBottomScroll(e.target);\n if (bottomScroll < 60)\n this.scrollMessagesCount = 0;\n this.scrollIcon = bottomScroll > 500 || this.scrollMessagesCount;\n },\n loadMoreMessages() {\n if (this.loadingMessages)\n return;\n setTimeout(\n () => {\n if (this.loadingMoreMessages)\n return;\n if (this.messagesLoaded || !this.roomId) {\n this.loadingMoreMessages = false;\n this.showLoader = false;\n return;\n }\n this.preventTopScroll();\n this.$emit(\"fetch-messages\");\n this.loadingMoreMessages = true;\n },\n 500\n );\n },\n messageActionHandler({ action, message }) {\n switch (action.name) {\n case \"replyMessage\":\n this.initReplyMessage = message;\n setTimeout(() => {\n this.initReplyMessage = null;\n });\n return;\n case \"editMessage\":\n this.initEditMessage = message;\n setTimeout(() => {\n this.initEditMessage = null;\n });\n return;\n case \"deleteMessage\":\n return this.$emit(\"delete-message\", message);\n case \"selectMessages\":\n this.selectedMessages = [message];\n this.messageSelectionEnabled = true;\n return;\n default:\n return this.$emit(\"message-action-handler\", { action, message });\n }\n },\n messageSelectionActionHandler(action) {\n this.$emit(\"message-selection-action-handler\", {\n action,\n messages: this.selectedMessages\n });\n this.resetMessageSelection();\n },\n sendMessageReaction(messageReaction) {\n this.$emit(\"send-message-reaction\", messageReaction);\n },\n getBottomScroll(element2) {\n const { scrollHeight, clientHeight, scrollTop } = element2;\n return scrollHeight - clientHeight - scrollTop;\n },\n scrollToBottom() {\n setTimeout(() => {\n const element2 = this.$refs.scrollContainer;\n if (element2) {\n element2.classList.add(\"vac-scroll-smooth\");\n element2.scrollTo({ top: element2.scrollHeight, behavior: \"smooth\" });\n setTimeout(() => element2.classList.remove(\"vac-scroll-smooth\"));\n }\n }, 50);\n },\n openFile({ message, file }) {\n this.$emit(\"open-file\", { message, file });\n },\n openUserTag(user) {\n this.$emit(\"open-user-tag\", user);\n },\n onDropFiles(event) {\n if (this.showFiles) {\n this.droppedFiles = event.dataTransfer.files;\n }\n }\n }\n};\nconst _hoisted_1$2 = { class: \"vac-container-center vac-room-empty\" };\nconst _hoisted_2$1 = { class: \"vac-messages-container\" };\nconst _hoisted_3$1 = {\n key: 0,\n class: \"vac-text-started\"\n};\nconst _hoisted_4$1 = {\n key: 1,\n class: \"vac-text-started\"\n};\nconst _hoisted_5$1 = {\n key: 0,\n id: \"infinite-loader-messages\"\n};\nconst _hoisted_6 = { key: 2 };\nconst _hoisted_7 = {\n key: 0,\n class: \"vac-badge-counter vac-messages-count\"\n};\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_room_header = resolveComponent(\"room-header\");\n const _component_loader = resolveComponent(\"loader\");\n const _component_room_message = resolveComponent(\"room-message\");\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n const _component_room_footer = resolveComponent(\"room-footer\");\n return withDirectives((openBlock(), createElementBlock(\"div\", {\n class: \"vac-col-messages\",\n onDrop: _cache[12] || (_cache[12] = withModifiers((...args) => $options.onDropFiles && $options.onDropFiles(...args), [\"prevent\"])),\n onDragenter: _cache[13] || (_cache[13] = withModifiers(() => {\n }, [\"prevent\"])),\n onDragover: _cache[14] || (_cache[14] = withModifiers(() => {\n }, [\"prevent\"])),\n onDragleave: _cache[15] || (_cache[15] = withModifiers(() => {\n }, [\"prevent\"])),\n onTouchstart: _cache[16] || (_cache[16] = (...args) => $options.touchStart && $options.touchStart(...args))\n }, [\n $options.showNoRoom ? renderSlot(_ctx.$slots, \"no-room-selected\", { key: 0 }, () => [\n createBaseVNode(\"div\", _hoisted_1$2, [\n createBaseVNode(\"div\", null, toDisplayString($props.textMessages.ROOM_EMPTY), 1)\n ])\n ]) : (openBlock(), createBlock(_component_room_header, {\n key: 1,\n \"current-user-id\": $props.currentUserId,\n \"text-messages\": $props.textMessages,\n \"single-room\": $props.singleRoom,\n \"show-rooms-list\": $props.showRoomsList,\n \"is-mobile\": $props.isMobile,\n \"room-info-enabled\": $props.roomInfoEnabled,\n \"menu-actions\": $props.menuActions,\n room: $options.room,\n \"message-selection-enabled\": $data.messageSelectionEnabled,\n \"message-selection-actions\": $props.messageSelectionActions,\n \"selected-messages-total\": $data.selectedMessages.length,\n onToggleRoomsList: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"toggle-rooms-list\")),\n onRoomInfo: _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"room-info\")),\n onMenuActionHandler: _cache[2] || (_cache[2] = ($event) => _ctx.$emit(\"menu-action-handler\", $event)),\n onMessageSelectionActionHandler: $options.messageSelectionActionHandler,\n onCancelMessageSelection: _cache[3] || (_cache[3] = ($event) => $data.messageSelectionEnabled = false)\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (i, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"current-user-id\", \"text-messages\", \"single-room\", \"show-rooms-list\", \"is-mobile\", \"room-info-enabled\", \"menu-actions\", \"room\", \"message-selection-enabled\", \"message-selection-actions\", \"selected-messages-total\", \"onMessageSelectionActionHandler\"])),\n createBaseVNode(\"div\", {\n id: \"messages-list\",\n ref: \"scrollContainer\",\n class: \"vac-container-scroll\",\n onScroll: _cache[5] || (_cache[5] = (...args) => $options.onContainerScroll && $options.onContainerScroll(...args))\n }, [\n createVNode(_component_loader, {\n show: $data.loadingMessages,\n type: \"messages\"\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"show\"]),\n createBaseVNode(\"div\", _hoisted_2$1, [\n createBaseVNode(\"div\", {\n class: normalizeClass({ \"vac-messages-hidden\": $data.loadingMessages })\n }, [\n createVNode(Transition, { name: \"vac-fade-message\" }, {\n default: withCtx(() => [\n createBaseVNode(\"div\", null, [\n $options.showNoMessages ? (openBlock(), createElementBlock(\"div\", _hoisted_3$1, [\n renderSlot(_ctx.$slots, \"messages-empty\", {}, () => [\n createTextVNode(toDisplayString($props.textMessages.MESSAGES_EMPTY), 1)\n ])\n ])) : createCommentVNode(\"\", true),\n $options.showMessagesStarted ? (openBlock(), createElementBlock(\"div\", _hoisted_4$1, toDisplayString($props.textMessages.CONVERSATION_STARTED) + \" \" + toDisplayString($props.messages[0].date), 1)) : createCommentVNode(\"\", true)\n ])\n ]),\n _: 3\n }),\n $props.messages.length && !$props.messagesLoaded ? (openBlock(), createElementBlock(\"div\", _hoisted_5$1, [\n createVNode(_component_loader, {\n show: true,\n infinite: true,\n type: \"infinite-messages\"\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1024)\n ])) : createCommentVNode(\"\", true),\n (openBlock(), createBlock(TransitionGroup, {\n key: $props.roomId,\n name: \"vac-fade-message\",\n tag: \"span\"\n }, {\n default: withCtx(() => [\n (openBlock(true), createElementBlock(Fragment, null, renderList($props.messages, (m, i) => {\n return openBlock(), createElementBlock(\"div\", {\n key: m.indexId || m._id\n }, [\n createVNode(_component_room_message, {\n \"current-user-id\": $props.currentUserId,\n message: m,\n index: i,\n messages: $props.messages,\n \"edited-message-id\": $data.editedMessageId,\n \"message-actions\": $props.messageActions,\n \"room-users\": $options.room.users,\n \"text-messages\": $props.textMessages,\n \"new-messages\": $data.newMessages,\n \"show-reaction-emojis\": $props.showReactionEmojis,\n \"show-new-messages-divider\": $props.showNewMessagesDivider,\n \"text-formatting\": $props.textFormatting,\n \"link-options\": $props.linkOptions,\n \"username-options\": $props.usernameOptions,\n \"message-selection-enabled\": $data.messageSelectionEnabled,\n \"selected-messages\": $data.selectedMessages,\n \"emoji-data-source\": $props.emojiDataSource,\n onMessageAdded: $options.onMessageAdded,\n onMessageActionHandler: $options.messageActionHandler,\n onOpenFile: $options.openFile,\n onOpenUserTag: $options.openUserTag,\n onOpenFailedMessage: _cache[4] || (_cache[4] = ($event) => _ctx.$emit(\"open-failed-message\", $event)),\n onSendMessageReaction: $options.sendMessageReaction,\n onSelectMessage: $options.selectMessage,\n onUnselectMessage: $options.unselectMessage\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"current-user-id\", \"message\", \"index\", \"messages\", \"edited-message-id\", \"message-actions\", \"room-users\", \"text-messages\", \"new-messages\", \"show-reaction-emojis\", \"show-new-messages-divider\", \"text-formatting\", \"link-options\", \"username-options\", \"message-selection-enabled\", \"selected-messages\", \"emoji-data-source\", \"onMessageAdded\", \"onMessageActionHandler\", \"onOpenFile\", \"onOpenUserTag\", \"onSendMessageReaction\", \"onSelectMessage\", \"onUnselectMessage\"])\n ]);\n }), 128))\n ]),\n _: 3\n }))\n ], 2)\n ])\n ], 544),\n !$data.loadingMessages ? (openBlock(), createElementBlock(\"div\", _hoisted_6, [\n createVNode(Transition, { name: \"vac-bounce\" }, {\n default: withCtx(() => [\n $data.scrollIcon ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: \"vac-icon-scroll\",\n onClick: _cache[6] || (_cache[6] = (...args) => $options.scrollToBottom && $options.scrollToBottom(...args))\n }, [\n createVNode(Transition, { name: \"vac-bounce\" }, {\n default: withCtx(() => [\n $data.scrollMessagesCount ? (openBlock(), createElementBlock(\"div\", _hoisted_7, toDisplayString($data.scrollMessagesCount), 1)) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n renderSlot(_ctx.$slots, \"scroll-icon\", {}, () => [\n createVNode(_component_svg_icon, {\n name: \"dropdown\",\n param: \"scroll\"\n })\n ])\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 3\n })\n ])) : createCommentVNode(\"\", true),\n createVNode(_component_room_footer, {\n room: $options.room,\n \"room-id\": $props.roomId,\n \"room-message\": $props.roomMessage,\n \"text-messages\": $props.textMessages,\n \"show-send-icon\": $props.showSendIcon,\n \"show-files\": $props.showFiles,\n \"show-audio\": $props.showAudio,\n \"show-emojis\": $props.showEmojis,\n \"show-footer\": $props.showFooter,\n \"accepted-files\": $props.acceptedFiles,\n \"capture-files\": $props.captureFiles,\n \"multiple-files\": $props.multipleFiles,\n \"textarea-action-enabled\": $props.textareaActionEnabled,\n \"textarea-auto-focus\": $props.textareaAutoFocus,\n \"user-tags-enabled\": $props.userTagsEnabled,\n \"emojis-suggestion-enabled\": $props.emojisSuggestionEnabled,\n \"templates-text\": $props.templatesText,\n \"text-formatting\": $props.textFormatting,\n \"link-options\": $props.linkOptions,\n \"audio-bit-rate\": $props.audioBitRate,\n \"audio-sample-rate\": $props.audioSampleRate,\n \"init-reply-message\": $data.initReplyMessage,\n \"init-edit-message\": $data.initEditMessage,\n \"dropped-files\": $data.droppedFiles,\n \"emoji-data-source\": $props.emojiDataSource,\n onUpdateEditedMessageId: _cache[7] || (_cache[7] = ($event) => $data.editedMessageId = $event),\n onEditMessage: _cache[8] || (_cache[8] = ($event) => _ctx.$emit(\"edit-message\", $event)),\n onSendMessage: _cache[9] || (_cache[9] = ($event) => _ctx.$emit(\"send-message\", $event)),\n onTypingMessage: _cache[10] || (_cache[10] = ($event) => _ctx.$emit(\"typing-message\", $event)),\n onTextareaActionHandler: _cache[11] || (_cache[11] = ($event) => _ctx.$emit(\"textarea-action-handler\", $event))\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"room\", \"room-id\", \"room-message\", \"text-messages\", \"show-send-icon\", \"show-files\", \"show-audio\", \"show-emojis\", \"show-footer\", \"accepted-files\", \"capture-files\", \"multiple-files\", \"textarea-action-enabled\", \"textarea-auto-focus\", \"user-tags-enabled\", \"emojis-suggestion-enabled\", \"templates-text\", \"text-formatting\", \"link-options\", \"audio-bit-rate\", \"audio-sample-rate\", \"init-reply-message\", \"init-edit-message\", \"dropped-files\", \"emoji-data-source\"])\n ], 544)), [\n [vShow, $props.isMobile && !$props.showRoomsList || !$props.isMobile || $props.singleRoom]\n ]);\n}\nvar Room = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2]]);\nconst _sfc_main$1 = {\n name: \"MediaPreview\",\n components: {\n SvgIcon\n },\n props: {\n file: { type: Object, required: true }\n },\n emits: [\"close-media-preview\"],\n computed: {\n isImage() {\n return isImageFile(this.file);\n },\n isVideo() {\n return isVideoFile(this.file);\n }\n },\n mounted() {\n this.$refs.modal.focus();\n },\n methods: {\n closeModal() {\n this.$emit(\"close-media-preview\");\n }\n }\n};\nconst _hoisted_1$1 = {\n key: 0,\n class: \"vac-media-preview-container\"\n};\nconst _hoisted_2 = {\n key: 1,\n class: \"vac-media-preview-container\"\n};\nconst _hoisted_3 = {\n controls: \"\",\n autoplay: \"\"\n};\nconst _hoisted_4 = [\"src\"];\nconst _hoisted_5 = { class: \"vac-svg-button\" };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n return openBlock(), createElementBlock(\"div\", {\n ref: \"modal\",\n tabindex: \"0\",\n class: \"vac-media-preview\",\n onClick: _cache[0] || (_cache[0] = withModifiers((...args) => $options.closeModal && $options.closeModal(...args), [\"stop\"])),\n onKeydown: _cache[1] || (_cache[1] = withKeys((...args) => $options.closeModal && $options.closeModal(...args), [\"esc\"]))\n }, [\n createVNode(Transition, {\n name: \"vac-bounce-preview\",\n appear: \"\"\n }, {\n default: withCtx(() => [\n $options.isImage ? (openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n createBaseVNode(\"div\", {\n class: \"vac-image-preview\",\n style: normalizeStyle({\n \"background-image\": `url('${$props.file.url}')`\n })\n }, null, 4)\n ])) : $options.isVideo ? (openBlock(), createElementBlock(\"div\", _hoisted_2, [\n createBaseVNode(\"video\", _hoisted_3, [\n createBaseVNode(\"source\", {\n src: $props.file.url\n }, null, 8, _hoisted_4)\n ])\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n createBaseVNode(\"div\", _hoisted_5, [\n renderSlot(_ctx.$slots, \"preview-close-icon\", {}, () => [\n createVNode(_component_svg_icon, {\n name: \"close-outline\",\n param: \"preview\"\n })\n ])\n ])\n ], 544);\n}\nvar MediaPreview = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1]]);\nvar locales = {\n ROOMS_EMPTY: \"No rooms\",\n ROOM_EMPTY: \"No room selected\",\n NEW_MESSAGES: \"New Messages\",\n MESSAGE_DELETED: \"This message was deleted\",\n MESSAGES_EMPTY: \"No messages\",\n CONVERSATION_STARTED: \"Conversation started on:\",\n TYPE_MESSAGE: \"Type message\",\n SEARCH: \"Search\",\n IS_ONLINE: \"is online\",\n LAST_SEEN: \"last seen \",\n IS_TYPING: \"is writing...\",\n CANCEL_SELECT_MESSAGE: \"Cancel\"\n};\nconst defaultThemeStyles = {\n light: {\n general: {\n color: \"#0a0a0a\",\n colorButtonClear: \"#1976d2\",\n colorButton: \"#fff\",\n backgroundColorButton: \"#1976d2\",\n backgroundInput: \"#fff\",\n colorPlaceholder: \"#9ca6af\",\n colorCaret: \"#1976d2\",\n colorSpinner: \"#333\",\n borderStyle: \"1px solid #e1e4e8\",\n backgroundScrollIcon: \"#fff\"\n },\n container: {\n border: \"none\",\n borderRadius: \"4px\",\n boxShadow: \"0px 1px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)\"\n },\n header: {\n background: \"#fff\",\n colorRoomName: \"#0a0a0a\",\n colorRoomInfo: \"#9ca6af\"\n },\n footer: {\n background: \"#f8f9fa\",\n borderStyleInput: \"1px solid #e1e4e8\",\n borderInputSelected: \"#1976d2\",\n backgroundReply: \"#e5e5e6\",\n backgroundTagActive: \"#e5e5e6\",\n backgroundTag: \"#f8f9fa\"\n },\n content: {\n background: \"#f8f9fa\"\n },\n sidemenu: {\n background: \"#fff\",\n backgroundHover: \"#f6f6f6\",\n backgroundActive: \"#e5effa\",\n colorActive: \"#1976d2\",\n borderColorSearch: \"#e1e5e8\"\n },\n dropdown: {\n background: \"#fff\",\n backgroundHover: \"#f6f6f6\"\n },\n message: {\n background: \"#fff\",\n backgroundMe: \"#ccf2cf\",\n color: \"#0a0a0a\",\n colorStarted: \"#9ca6af\",\n backgroundDeleted: \"#dadfe2\",\n backgroundSelected: \"#c2dcf2\",\n colorDeleted: \"#757e85\",\n colorUsername: \"#9ca6af\",\n colorTimestamp: \"#828c94\",\n backgroundDate: \"#e5effa\",\n colorDate: \"#505a62\",\n backgroundSystem: \"#e5effa\",\n colorSystem: \"#505a62\",\n backgroundMedia: \"rgba(0, 0, 0, 0.15)\",\n backgroundReply: \"rgba(0, 0, 0, 0.08)\",\n colorReplyUsername: \"#0a0a0a\",\n colorReply: \"#6e6e6e\",\n colorTag: \"#0d579c\",\n backgroundImage: \"#ddd\",\n colorNewMessages: \"#1976d2\",\n backgroundScrollCounter: \"#0696c7\",\n colorScrollCounter: \"#fff\",\n backgroundReaction: \"#eee\",\n borderStyleReaction: \"1px solid #eee\",\n backgroundReactionHover: \"#fff\",\n borderStyleReactionHover: \"1px solid #ddd\",\n colorReactionCounter: \"#0a0a0a\",\n backgroundReactionMe: \"#cfecf5\",\n borderStyleReactionMe: \"1px solid #3b98b8\",\n backgroundReactionHoverMe: \"#cfecf5\",\n borderStyleReactionHoverMe: \"1px solid #3b98b8\",\n colorReactionCounterMe: \"#0b59b3\",\n backgroundAudioRecord: \"#eb4034\",\n backgroundAudioLine: \"rgba(0, 0, 0, 0.15)\",\n backgroundAudioProgress: \"#455247\",\n backgroundAudioProgressSelector: \"#455247\",\n colorFileExtension: \"#757e85\"\n },\n markdown: {\n background: \"rgba(239, 239, 239, 0.7)\",\n border: \"rgba(212, 212, 212, 0.9)\",\n color: \"#e01e5a\",\n colorMulti: \"#0a0a0a\"\n },\n room: {\n colorUsername: \"#0a0a0a\",\n colorMessage: \"#67717a\",\n colorTimestamp: \"#a2aeb8\",\n colorStateOnline: \"#4caf50\",\n colorStateOffline: \"#9ca6af\",\n backgroundCounterBadge: \"#0696c7\",\n colorCounterBadge: \"#fff\"\n },\n emoji: {\n background: \"#fff\"\n },\n icons: {\n search: \"#9ca6af\",\n add: \"#1976d2\",\n toggle: \"#0a0a0a\",\n menu: \"#0a0a0a\",\n close: \"#9ca6af\",\n closeImage: \"#fff\",\n file: \"#1976d2\",\n paperclip: \"#1976d2\",\n closeOutline: \"#000\",\n closePreview: \"#fff\",\n send: \"#1976d2\",\n sendDisabled: \"#9ca6af\",\n emoji: \"#1976d2\",\n emojiReaction: \"rgba(0, 0, 0, 0.3)\",\n document: \"#1976d2\",\n pencil: \"#9e9e9e\",\n checkmark: \"#9e9e9e\",\n checkmarkSeen: \"#0696c7\",\n eye: \"#fff\",\n dropdownMessage: \"#fff\",\n dropdownMessageBackground: \"rgba(0, 0, 0, 0.25)\",\n dropdownRoom: \"#9e9e9e\",\n dropdownScroll: \"#0a0a0a\",\n microphone: \"#1976d2\",\n audioPlay: \"#455247\",\n audioPause: \"#455247\",\n audioCancel: \"#eb4034\",\n audioConfirm: \"#1ba65b\"\n }\n },\n dark: {\n general: {\n color: \"#fff\",\n colorButtonClear: \"#fff\",\n colorButton: \"#fff\",\n backgroundColorButton: \"#1976d2\",\n backgroundInput: \"#202223\",\n colorPlaceholder: \"#596269\",\n colorCaret: \"#fff\",\n colorSpinner: \"#fff\",\n borderStyle: \"none\",\n backgroundScrollIcon: \"#fff\"\n },\n container: {\n border: \"none\",\n borderRadius: \"4px\",\n boxShadow: \"0px 1px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)\"\n },\n header: {\n background: \"#181a1b\",\n colorRoomName: \"#fff\",\n colorRoomInfo: \"#9ca6af\"\n },\n footer: {\n background: \"#131415\",\n borderStyleInput: \"none\",\n borderInputSelected: \"#1976d2\",\n backgroundReply: \"#1b1c1c\",\n backgroundTagActive: \"#1b1c1c\",\n backgroundTag: \"#131415\"\n },\n content: {\n background: \"#131415\"\n },\n sidemenu: {\n background: \"#181a1b\",\n backgroundHover: \"#202224\",\n backgroundActive: \"#151617\",\n colorActive: \"#fff\",\n borderColorSearch: \"#181a1b\"\n },\n dropdown: {\n background: \"#2a2c33\",\n backgroundHover: \"#26282e\"\n },\n message: {\n background: \"#22242a\",\n backgroundMe: \"#1f7e80\",\n color: \"#fff\",\n colorStarted: \"#9ca6af\",\n backgroundDeleted: \"#1b1c21\",\n backgroundSelected: \"#c2dcf2\",\n colorDeleted: \"#a2a5a8\",\n colorUsername: \"#b3bac9\",\n colorTimestamp: \"#ebedf2\",\n backgroundDate: \"rgba(0, 0, 0, 0.3)\",\n colorDate: \"#bec5cc\",\n backgroundSystem: \"rgba(0, 0, 0, 0.3)\",\n colorSystem: \"#bec5cc\",\n backgroundMedia: \"rgba(0, 0, 0, 0.18)\",\n backgroundReply: \"rgba(0, 0, 0, 0.18)\",\n colorReplyUsername: \"#fff\",\n colorReply: \"#d6d6d6\",\n colorTag: \"#f0c60a\",\n backgroundImage: \"#ddd\",\n colorNewMessages: \"#fff\",\n backgroundScrollCounter: \"#1976d2\",\n colorScrollCounter: \"#fff\",\n backgroundReaction: \"none\",\n borderStyleReaction: \"none\",\n backgroundReactionHover: \"#202223\",\n borderStyleReactionHover: \"none\",\n colorReactionCounter: \"#fff\",\n backgroundReactionMe: \"#4e9ad1\",\n borderStyleReactionMe: \"none\",\n backgroundReactionHoverMe: \"#4e9ad1\",\n borderStyleReactionHoverMe: \"none\",\n colorReactionCounterMe: \"#fff\",\n backgroundAudioRecord: \"#eb4034\",\n backgroundAudioLine: \"rgba(255, 255, 255, 0.15)\",\n backgroundAudioProgress: \"#b7d4d3\",\n backgroundAudioProgressSelector: \"#b7d4d3\",\n colorFileExtension: \"#a2a5a8\"\n },\n markdown: {\n background: \"rgba(239, 239, 239, 0.7)\",\n border: \"rgba(212, 212, 212, 0.9)\",\n color: \"#e01e5a\",\n colorMulti: \"#0a0a0a\"\n },\n room: {\n colorUsername: \"#fff\",\n colorMessage: \"#6c7278\",\n colorTimestamp: \"#6c7278\",\n colorStateOnline: \"#4caf50\",\n colorStateOffline: \"#596269\",\n backgroundCounterBadge: \"#1976d2\",\n colorCounterBadge: \"#fff\"\n },\n emoji: {\n background: \"#343740\"\n },\n icons: {\n search: \"#596269\",\n add: \"#fff\",\n toggle: \"#fff\",\n menu: \"#fff\",\n close: \"#9ca6af\",\n closeImage: \"#fff\",\n file: \"#1976d2\",\n paperclip: \"#fff\",\n closeOutline: \"#fff\",\n closePreview: \"#fff\",\n send: \"#fff\",\n sendDisabled: \"#646a70\",\n emoji: \"#fff\",\n emojiReaction: \"#fff\",\n document: \"#1976d2\",\n pencil: \"#ebedf2\",\n checkmark: \"#ebedf2\",\n checkmarkSeen: \"#f0d90a\",\n eye: \"#fff\",\n dropdownMessage: \"#fff\",\n dropdownMessageBackground: \"rgba(0, 0, 0, 0.25)\",\n dropdownRoom: \"#fff\",\n dropdownScroll: \"#0a0a0a\",\n microphone: \"#fff\",\n audioPlay: \"#b7d4d3\",\n audioPause: \"#b7d4d3\",\n audioCancel: \"#eb4034\",\n audioConfirm: \"#1ba65b\"\n }\n }\n};\nconst cssThemeVars = ({\n general,\n container,\n header,\n footer,\n sidemenu,\n content: content2,\n dropdown,\n message,\n markdown: markdown2,\n room,\n emoji,\n icons\n}) => {\n return {\n \"--chat-color\": general.color,\n \"--chat-color-button-clear\": general.colorButtonClear,\n \"--chat-color-button\": general.colorButton,\n \"--chat-bg-color-button\": general.backgroundColorButton,\n \"--chat-bg-color-input\": general.backgroundInput,\n \"--chat-color-spinner\": general.colorSpinner,\n \"--chat-color-placeholder\": general.colorPlaceholder,\n \"--chat-color-caret\": general.colorCaret,\n \"--chat-border-style\": general.borderStyle,\n \"--chat-bg-scroll-icon\": general.backgroundScrollIcon,\n \"--chat-container-border\": container.border,\n \"--chat-container-border-radius\": container.borderRadius,\n \"--chat-container-box-shadow\": container.boxShadow,\n \"--chat-header-bg-color\": header.background,\n \"--chat-header-color-name\": header.colorRoomName,\n \"--chat-header-color-info\": header.colorRoomInfo,\n \"--chat-footer-bg-color\": footer.background,\n \"--chat-border-style-input\": footer.borderStyleInput,\n \"--chat-border-color-input-selected\": footer.borderInputSelected,\n \"--chat-footer-bg-color-reply\": footer.backgroundReply,\n \"--chat-footer-bg-color-tag-active\": footer.backgroundTagActive,\n \"--chat-footer-bg-color-tag\": footer.backgroundTag,\n \"--chat-content-bg-color\": content2.background,\n \"--chat-sidemenu-bg-color\": sidemenu.background,\n \"--chat-sidemenu-bg-color-hover\": sidemenu.backgroundHover,\n \"--chat-sidemenu-bg-color-active\": sidemenu.backgroundActive,\n \"--chat-sidemenu-color-active\": sidemenu.colorActive,\n \"--chat-sidemenu-border-color-search\": sidemenu.borderColorSearch,\n \"--chat-dropdown-bg-color\": dropdown.background,\n \"--chat-dropdown-bg-color-hover\": dropdown.backgroundHover,\n \"--chat-message-bg-color\": message.background,\n \"--chat-message-bg-color-me\": message.backgroundMe,\n \"--chat-message-color-started\": message.colorStarted,\n \"--chat-message-bg-color-deleted\": message.backgroundDeleted,\n \"--chat-message-bg-color-selected\": message.backgroundSelected,\n \"--chat-message-color-deleted\": message.colorDeleted,\n \"--chat-message-color-username\": message.colorUsername,\n \"--chat-message-color-timestamp\": message.colorTimestamp,\n \"--chat-message-bg-color-date\": message.backgroundDate,\n \"--chat-message-color-date\": message.colorDate,\n \"--chat-message-bg-color-system\": message.backgroundSystem,\n \"--chat-message-color-system\": message.colorSystem,\n \"--chat-message-color\": message.color,\n \"--chat-message-bg-color-media\": message.backgroundMedia,\n \"--chat-message-bg-color-reply\": message.backgroundReply,\n \"--chat-message-color-reply-username\": message.colorReplyUsername,\n \"--chat-message-color-reply-content\": message.colorReply,\n \"--chat-message-color-tag\": message.colorTag,\n \"--chat-message-bg-color-image\": message.backgroundImage,\n \"--chat-message-color-new-messages\": message.colorNewMessages,\n \"--chat-message-bg-color-scroll-counter\": message.backgroundScrollCounter,\n \"--chat-message-color-scroll-counter\": message.colorScrollCounter,\n \"--chat-message-bg-color-reaction\": message.backgroundReaction,\n \"--chat-message-border-style-reaction\": message.borderStyleReaction,\n \"--chat-message-bg-color-reaction-hover\": message.backgroundReactionHover,\n \"--chat-message-border-style-reaction-hover\": message.borderStyleReactionHover,\n \"--chat-message-color-reaction-counter\": message.colorReactionCounter,\n \"--chat-message-bg-color-reaction-me\": message.backgroundReactionMe,\n \"--chat-message-border-style-reaction-me\": message.borderStyleReactionMe,\n \"--chat-message-bg-color-reaction-hover-me\": message.backgroundReactionHoverMe,\n \"--chat-message-border-style-reaction-hover-me\": message.borderStyleReactionHoverMe,\n \"--chat-message-color-reaction-counter-me\": message.colorReactionCounterMe,\n \"--chat-message-bg-color-audio-record\": message.backgroundAudioRecord,\n \"--chat-message-bg-color-audio-line\": message.backgroundAudioLine,\n \"--chat-message-bg-color-audio-progress\": message.backgroundAudioProgress,\n \"--chat-message-bg-color-audio-progress-selector\": message.backgroundAudioProgressSelector,\n \"--chat-message-color-file-extension\": message.colorFileExtension,\n \"--chat-markdown-bg\": markdown2.background,\n \"--chat-markdown-border\": markdown2.border,\n \"--chat-markdown-color\": markdown2.color,\n \"--chat-markdown-color-multi\": markdown2.colorMulti,\n \"--chat-room-color-username\": room.colorUsername,\n \"--chat-room-color-message\": room.colorMessage,\n \"--chat-room-color-timestamp\": room.colorTimestamp,\n \"--chat-room-color-online\": room.colorStateOnline,\n \"--chat-room-color-offline\": room.colorStateOffline,\n \"--chat-room-bg-color-badge\": room.backgroundCounterBadge,\n \"--chat-room-color-badge\": room.colorCounterBadge,\n \"--chat-emoji-bg-color\": emoji.background,\n \"--chat-icon-color-search\": icons.search,\n \"--chat-icon-color-add\": icons.add,\n \"--chat-icon-color-toggle\": icons.toggle,\n \"--chat-icon-color-menu\": icons.menu,\n \"--chat-icon-color-close\": icons.close,\n \"--chat-icon-color-close-image\": icons.closeImage,\n \"--chat-icon-color-file\": icons.file,\n \"--chat-icon-color-paperclip\": icons.paperclip,\n \"--chat-icon-color-close-outline\": icons.closeOutline,\n \"--chat-icon-color-close-preview\": icons.closePreview,\n \"--chat-icon-color-send\": icons.send,\n \"--chat-icon-color-send-disabled\": icons.sendDisabled,\n \"--chat-icon-color-emoji\": icons.emoji,\n \"--chat-icon-color-emoji-reaction\": icons.emojiReaction,\n \"--chat-icon-color-document\": icons.document,\n \"--chat-icon-color-pencil\": icons.pencil,\n \"--chat-icon-color-checkmark\": icons.checkmark,\n \"--chat-icon-color-checkmark-seen\": icons.checkmarkSeen,\n \"--chat-icon-color-eye\": icons.eye,\n \"--chat-icon-color-dropdown-message\": icons.dropdownMessage,\n \"--chat-icon-bg-dropdown-message\": icons.dropdownMessageBackground,\n \"--chat-icon-color-dropdown-room\": icons.dropdownRoom,\n \"--chat-icon-color-dropdown-scroll\": icons.dropdownScroll,\n \"--chat-icon-color-microphone\": icons.microphone,\n \"--chat-icon-color-audio-play\": icons.audioPlay,\n \"--chat-icon-color-audio-pause\": icons.audioPause,\n \"--chat-icon-color-audio-cancel\": icons.audioCancel,\n \"--chat-icon-color-audio-confirm\": icons.audioConfirm\n };\n};\nvar _style_0 = '.vac-fade-spinner-enter-from{opacity:0}.vac-fade-spinner-enter-active{transition:opacity .8s}.vac-fade-spinner-leave-active{transition:opacity .2s;opacity:0}.vac-fade-image-enter-from{opacity:0}.vac-fade-image-enter-active{transition:opacity 1s}.vac-fade-image-leave-active{transition:opacity .5s;opacity:0}.vac-fade-message-enter-from{opacity:0}.vac-fade-message-enter-active{transition:opacity .5s}.vac-fade-message-leave-active{transition:opacity .2s;opacity:0}.vac-slide-left-enter-active,.vac-slide-right-enter-active{transition:all .3s ease;transition-property:transform,opacity}.vac-slide-left-leave-active,.vac-slide-right-leave-active{transition:all .2s cubic-bezier(1,.5,.8,1)!important;transition-property:transform,opacity}.vac-slide-left-enter-from,.vac-slide-left-leave-to{transform:translate(10px);opacity:0}.vac-slide-right-enter-from,.vac-slide-right-leave-to{transform:translate(-10px);opacity:0}.vac-slide-up-enter-active{transition:all .3s ease}.vac-slide-up-leave-active{transition:all .2s cubic-bezier(1,.5,.8,1)}.vac-slide-up-enter-from,.vac-slide-up-leave-to{transform:translateY(10px);opacity:0}.vac-bounce-enter-active{animation:vac-bounce-in .5s}.vac-bounce-leave-active{animation:vac-bounce-in .3s reverse}@keyframes vac-bounce-in{0%{transform:scale(0)}50%{transform:scale(1.05)}to{transform:scale(1)}}.vac-fade-preview-enter{opacity:0}.vac-fade-preview-enter-active{transition:opacity .1s}.vac-fade-preview-leave-active{transition:opacity .2s;opacity:0}.vac-bounce-preview-enter-active{animation:vac-bounce-image-in .4s}.vac-bounce-preview-leave-active{animation:vac-bounce-image-in .3s reverse}@keyframes vac-bounce-image-in{0%{transform:scale(.6)}to{transform:scale(1)}}.vac-menu-list{border-radius:4px;display:block;cursor:pointer;background:var(--chat-dropdown-bg-color);padding:6px 0}.vac-menu-list :hover{background:var(--chat-dropdown-bg-color-hover);transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-menu-list :not(:hover){transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-menu-item{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1 1 100%;flex:1 1 100%;min-height:30px;padding:5px 16px;position:relative;white-space:nowrap;line-height:30px}.vac-menu-options{position:absolute;right:10px;top:20px;z-index:9999;min-width:150px;display:inline-block;border-radius:4px;font-size:14px;color:var(--chat-color);overflow-y:auto;overflow-x:hidden;contain:content;box-shadow:0 2px 2px -4px #0000001a,0 2px 2px 1px #0000001f,0 1px 8px 1px #0000001f}.vac-app-border{border:var(--chat-border-style)}.vac-app-border-t{border-top:var(--chat-border-style)}.vac-app-border-r{border-right:var(--chat-border-style)}.vac-app-border-b{border-bottom:var(--chat-border-style)}.vac-app-box-shadow{transition:all .5s;box-shadow:0 2px 2px -4px #0000001a,0 2px 2px 1px #0000001f,0 1px 8px 1px #0000001f}.vac-item-clickable{cursor:pointer}.vac-vertical-center{display:flex;align-items:center;height:100%}.vac-vertical-center .vac-vertical-container{width:100%;text-align:center}.vac-svg-button{max-height:30px;display:flex;cursor:pointer;transition:all .2s}.vac-svg-button:hover{transform:scale(1.1);opacity:.7}.vac-avatar{background-size:cover;background-position:center center;background-repeat:no-repeat;background-color:#ddd;height:42px;width:42px;min-height:42px;min-width:42px;margin-right:15px;border-radius:50%}.vac-blur-loading{filter:blur(3px)}.vac-badge-counter{height:13px;width:auto;min-width:13px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:3px;font-size:11px;font-weight:500}.vac-text-ellipsis{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vac-text-tag{color:var(--chat-message-color-tag);cursor:pointer}.vac-file-container{display:flex;align-content:center;justify-content:center;flex-wrap:wrap;text-align:center;background:var(--chat-bg-color-input);border:var(--chat-border-style-input);border-radius:4px;padding:10px}.vac-file-container svg{height:28px;width:28px}.vac-file-container .vac-text-extension{font-size:12px;color:var(--chat-message-color-file-extension);margin-top:-2px}.markdown p{margin:0}.markdown ol{display:flex;flex-direction:column;list-style-position:inside}.markdown ul{display:flex;flex-direction:column}.markdown code{display:block;font-size:12px;color:var(--chat-markdown-color-multi);background:var(--chat-markdown-bg);border:1px solid var(--chat-markdown-border);border-radius:3px;margin:4px 0;padding:7px}.markdown p code{display:inline-block;font-size:12px;color:var(--chat-markdown-color);background:var(--chat-markdown-bg);border:1px solid var(--chat-markdown-border);border-radius:3px;margin:2px 0;padding:2px 3px}.vac-card-window{width:100%;display:block;max-width:100%;background:var(--chat-content-bg-color);color:var(--chat-color);overflow-wrap:break-word;white-space:normal;border:var(--chat-container-border);border-radius:var(--chat-container-border-radius);box-shadow:var(--chat-container-box-shadow);-webkit-tap-highlight-color:transparent}.vac-card-window *{font-family:inherit}.vac-card-window a{color:#0d579c;font-weight:500}.vac-card-window .vac-chat-container{height:100%;display:flex}.vac-card-window .vac-chat-container input{min-width:10px}.vac-card-window .vac-chat-container textarea,.vac-card-window .vac-chat-container input[type=text],.vac-card-window .vac-chat-container input[type=search]{-webkit-appearance:none}.vac-media-preview{position:fixed;top:0;left:0;z-index:99;width:100vw;height:100vh;display:flex;align-items:center;background-color:#000c;outline:none}.vac-media-preview .vac-media-preview-container{height:calc(100% - 140px);width:calc(100% - 80px);padding:70px 40px;margin:0 auto}.vac-media-preview .vac-image-preview{width:100%;height:100%;background-size:contain;background-repeat:no-repeat;background-position:center}.vac-media-preview video{width:100%;height:100%}.vac-media-preview .vac-svg-button{position:absolute;top:30px;right:30px;transform:scale(1.4)}@media only screen and (max-width: 768px){.vac-media-preview .vac-svg-button{top:20px;right:20px;transform:scale(1.2)}.vac-media-preview .vac-media-preview-container{width:calc(100% - 40px);padding:70px 20px}}.vac-col-messages{position:relative;height:100%;flex:1;overflow:hidden;display:flex;flex-flow:column}.vac-col-messages .vac-container-center{height:100%;width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.vac-col-messages .vac-room-empty{font-size:14px;color:#9ca6af;font-style:italic;line-height:20px;white-space:pre-line}.vac-col-messages .vac-room-empty div{padding:0 10%}.vac-col-messages .vac-container-scroll{background:var(--chat-content-bg-color);flex:1;overflow-y:auto;margin-right:1px;margin-top:65px;-webkit-overflow-scrolling:touch}.vac-col-messages .vac-container-scroll.vac-scroll-smooth{scroll-behavior:smooth}.vac-col-messages .vac-messages-container{padding:0 5px 5px}.vac-col-messages .vac-text-started{font-size:14px;color:var(--chat-message-color-started);font-style:italic;text-align:center;margin-top:25px;margin-bottom:20px}.vac-col-messages .vac-icon-scroll{position:absolute;bottom:80px;right:20px;padding:8px;background:var(--chat-bg-scroll-icon);border-radius:50%;box-shadow:0 1px 1px -1px #0003,0 1px 1px #00000024,0 1px 2px #0000001f;display:flex;cursor:pointer;z-index:10}.vac-col-messages .vac-icon-scroll svg{height:25px;width:25px}.vac-col-messages .vac-messages-count{position:absolute;top:-8px;left:11px;background-color:var(--chat-message-bg-color-scroll-counter);color:var(--chat-message-color-scroll-counter)}.vac-col-messages .vac-messages-hidden{opacity:0}@media only screen and (max-width: 768px){.vac-col-messages .vac-container-scroll{margin-top:50px}.vac-col-messages .vac-text-started{margin-top:20px}.vac-col-messages .vac-icon-scroll{bottom:70px}}.vac-room-header{position:absolute;display:flex;align-items:center;height:64px;width:100%;z-index:10;margin-right:1px;background:var(--chat-header-bg-color);border-top-right-radius:var(--chat-container-border-radius)}.vac-room-header .vac-room-wrapper{display:flex;align-items:center;min-width:0;height:100%;width:100%;padding:0 16px}.vac-room-header .vac-toggle-button{margin-right:15px}.vac-room-header .vac-toggle-button svg{height:26px;width:26px}.vac-room-header .vac-rotate-icon{transform:rotate(180deg)!important}.vac-room-header .vac-rotate-icon-init{transform:rotate(360deg)}.vac-room-header .vac-info-wrapper,.vac-room-header .vac-room-selection{display:flex;align-items:center;min-width:0;width:100%;height:100%}.vac-room-header .vac-room-selection .vac-selection-button{padding:8px 16px;color:var(--chat-color-button);background-color:var(--chat-bg-color-button);border-radius:4px;margin-right:10px;cursor:pointer;transition:all .2s}.vac-room-header .vac-room-selection .vac-selection-button:hover{opacity:.7}.vac-room-header .vac-room-selection .vac-selection-button:active{opacity:.9}.vac-room-header .vac-room-selection .vac-selection-button .vac-selection-button-count{margin-left:6px;opacity:.9}.vac-room-header .vac-room-selection .vac-selection-cancel{display:flex;align-items:center;margin-left:auto;white-space:nowrap;color:var(--chat-color-button-clear);transition:all .2s}.vac-room-header .vac-room-selection .vac-selection-cancel:hover{opacity:.7}.vac-room-header .vac-room-name{font-size:17px;font-weight:500;line-height:22px;color:var(--chat-header-color-name)}.vac-room-header .vac-room-info{font-size:13px;line-height:18px;color:var(--chat-header-color-info)}.vac-room-header .vac-room-options{margin-left:auto}@media only screen and (max-width: 768px){.vac-room-header{height:50px}.vac-room-header .vac-room-wrapper{padding:0 10px}.vac-room-header .vac-room-name{font-size:16px;line-height:22px}.vac-room-header .vac-room-info{font-size:12px;line-height:16px}.vac-room-header .vac-avatar{height:37px;width:37px;min-height:37px;min-width:37px}}.vac-room-footer{width:100%;border-bottom-right-radius:4px;z-index:10}.vac-box-footer{display:flex;position:relative;background:var(--chat-footer-bg-color);padding:10px 8px}.vac-textarea{max-height:300px;overflow-y:auto;height:20px;width:100%;line-height:20px;outline:0;resize:none;border-radius:20px;padding:12px 16px;box-sizing:content-box;font-size:16px;background:var(--chat-bg-color-input);color:var(--chat-color);caret-color:var(--chat-color-caret);border:var(--chat-border-style-input)}.vac-textarea::placeholder{color:var(--chat-color-placeholder);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vac-textarea-outline{border:1px solid var(--chat-border-color-input-selected);box-shadow:inset 0 0 0 1px var(--chat-border-color-input-selected)}.vac-icon-textarea,.vac-icon-textarea-left{display:flex;align-items:center}.vac-icon-textarea svg,.vac-icon-textarea .vac-wrapper,.vac-icon-textarea-left svg,.vac-icon-textarea-left .vac-wrapper{margin:0 7px}.vac-icon-textarea{margin-left:5px}.vac-icon-textarea-left{display:flex;align-items:center;margin-right:5px}.vac-icon-textarea-left svg,.vac-icon-textarea-left .vac-wrapper{margin:0 7px}.vac-icon-textarea-left .vac-icon-microphone{fill:var(--chat-icon-color-microphone);margin:0 7px}.vac-icon-textarea-left .vac-dot-audio-record{height:15px;width:15px;border-radius:50%;background-color:var(--chat-message-bg-color-audio-record);animation:vac-scaling .8s ease-in-out infinite alternate}@keyframes vac-scaling{0%{transform:scale(1);opacity:.4}to{transform:scale(1.1);opacity:1}}.vac-icon-textarea-left .vac-dot-audio-record-time{font-size:16px;color:var(--chat-color);margin-left:8px;width:45px}.vac-icon-textarea-left .vac-icon-audio-stop,.vac-icon-textarea-left .vac-icon-audio-confirm{min-height:28px;min-width:28px}.vac-icon-textarea-left .vac-icon-audio-stop svg,.vac-icon-textarea-left .vac-icon-audio-confirm svg{min-height:28px;min-width:28px}.vac-icon-textarea-left .vac-icon-audio-stop{margin-right:20px}.vac-icon-textarea-left .vac-icon-audio-stop #vac-icon-close-outline{fill:var(--chat-icon-color-audio-cancel)}.vac-icon-textarea-left .vac-icon-audio-confirm{margin-right:3px;margin-left:12px}.vac-icon-textarea-left .vac-icon-audio-confirm #vac-icon-checkmark{fill:var(--chat-icon-color-audio-confirm)}.vac-send-disabled,.vac-send-disabled svg{cursor:none!important;pointer-events:none!important;transform:none!important}@media only screen and (max-width: 768px){.vac-room-footer{width:100%}.vac-box-footer{padding:7px 2px 7px 7px}.vac-box-footer.vac-box-footer-border{border-top:var(--chat-border-style-input)}.vac-textarea{padding:7px;line-height:18px}.vac-textarea::placeholder{color:transparent}.vac-icon-textarea svg,.vac-icon-textarea .vac-wrapper,.vac-icon-textarea-left svg,.vac-icon-textarea-left .vac-wrapper{margin:0 5px!important}}@media only screen and (max-height: 768px){.vac-textarea{max-height:120px}}.vac-emojis-container{width:calc(100% - 16px);padding:10px 8px;background:var(--chat-footer-bg-color);display:flex;align-items:center;overflow:auto}.vac-emojis-container .vac-emoji-element{padding:0 8px;font-size:30px;border-radius:4px;cursor:pointer;background:var(--chat-footer-bg-color-tag);transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-emojis-container .vac-emoji-element-active{background:var(--chat-footer-bg-color-tag-active)}@media only screen and (max-width: 768px){.vac-emojis-container{width:calc(100% - 10px);padding:7px 5px}.vac-emojis-container .vac-emoji-element{padding:0 7px;font-size:26px}}.vac-reply-container{display:flex;padding:10px 10px 0;background:var(--chat-footer-bg-color);align-items:center;width:calc(100% - 20px)}.vac-reply-container .vac-reply-box{width:100%;overflow:hidden;background:var(--chat-footer-bg-color-reply);border-radius:4px;padding:8px 10px}.vac-reply-container .vac-reply-info{overflow:hidden}.vac-reply-container .vac-reply-username{color:var(--chat-message-color-reply-username);font-size:12px;line-height:15px;margin-bottom:2px}.vac-reply-container .vac-reply-content{font-size:12px;color:var(--chat-message-color-reply-content);white-space:pre-line}.vac-reply-container .vac-icon-reply{margin-left:10px}.vac-reply-container .vac-icon-reply svg{height:20px;width:20px}.vac-reply-container .vac-image-reply{max-height:100px;max-width:200px;margin:4px 10px 0 0;border-radius:4px}.vac-reply-container .vac-audio-reply{margin-right:10px}.vac-reply-container .vac-file-container{max-width:80px}@media only screen and (max-width: 768px){.vac-reply-container{padding:5px 8px;width:calc(100% - 16px)}}.vac-room-files-container{display:flex;align-items:center;padding:10px 6px 0;background:var(--chat-footer-bg-color)}.vac-room-files-container .vac-files-box{display:flex;overflow:auto;width:calc(100% - 30px)}.vac-room-files-container video{height:100px;border:var(--chat-border-style-input);border-radius:4px}.vac-room-files-container .vac-icon-close{margin-left:auto}.vac-room-files-container .vac-icon-close svg{height:20px;width:20px}@media only screen and (max-width: 768px){.vac-files-container{padding:6px 4px 4px 2px}}.vac-room-file-container{display:flex;position:relative;margin:0 4px}.vac-room-file-container .vac-message-image{position:relative;background-color:var(--chat-message-bg-color-image)!important;background-size:cover!important;background-position:center center!important;background-repeat:no-repeat!important;height:100px;width:100px;border:var(--chat-border-style-input);border-radius:4px}.vac-room-file-container .vac-file-container{height:80px;width:80px}.vac-room-file-container .vac-icon-remove{position:absolute;top:6px;left:6px;z-index:10}.vac-room-file-container .vac-icon-remove svg{height:20px;width:20px;border-radius:50%}.vac-room-file-container .vac-icon-remove:before{content:\" \";position:absolute;width:100%;height:100%;background:rgba(0,0,0,.5);border-radius:50%;z-index:-1}.vac-tags-container{display:flex;flex-direction:column;align-items:center;width:100%}.vac-tags-container .vac-tags-box{display:flex;width:100%;height:54px;overflow:hidden;cursor:pointer;background:var(--chat-footer-bg-color-tag);transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-tags-container .vac-tags-box-active{background:var(--chat-footer-bg-color-tag-active)}.vac-tags-container .vac-tags-info{display:flex;overflow:hidden;padding:0 20px;align-items:center}.vac-tags-container .vac-tags-avatar{height:34px;width:34px;min-height:34px;min-width:34px}.vac-tags-container .vac-tags-username{font-size:14px}@media only screen and (max-width: 768px){.vac-tags-container .vac-tags-box{height:50px}.vac-tags-container .vac-tags-info{padding:0 12px}}.vac-template-container{display:flex;flex-direction:column;align-items:center;width:100%}.vac-template-container .vac-template-box{display:flex;width:100%;height:54px;overflow:hidden;cursor:pointer;background:var(--chat-footer-bg-color-tag);transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-template-container .vac-template-active{background:var(--chat-footer-bg-color-tag-active)}.vac-template-container .vac-template-info{display:flex;overflow:hidden;padding:0 20px;align-items:center}.vac-template-container .vac-template-tag{font-size:14px;font-weight:700;margin-right:10px}.vac-template-container .vac-template-text{font-size:14px}@media only screen and (max-width: 768px){.vac-template-container .vac-template-box{height:50px}.vac-template-container .vac-template-info{padding:0 12px}}.vac-rooms-container{display:flex;flex-flow:column;flex:0 0 25%;min-width:260px;max-width:500px;position:relative;background:var(--chat-sidemenu-bg-color);height:100%;border-top-left-radius:var(--chat-container-border-radius);border-bottom-left-radius:var(--chat-container-border-radius)}.vac-rooms-container.vac-rooms-container-full{flex:0 0 100%;max-width:100%}.vac-rooms-container .vac-rooms-empty{font-size:14px;color:#9ca6af;font-style:italic;text-align:center;margin:40px 0;line-height:20px;white-space:pre-line}.vac-rooms-container .vac-room-list{flex:1;position:relative;max-width:100%;padding:0 10px 5px;overflow-y:auto}.vac-rooms-container .vac-room-item{border-radius:8px;align-items:center;display:flex;flex:1 1 100%;margin-bottom:5px;padding:0 14px;position:relative;min-height:71px;transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-rooms-container .vac-room-item:hover{background:var(--chat-sidemenu-bg-color-hover)}.vac-rooms-container .vac-room-item:not(.vac-room-selected){cursor:pointer}.vac-rooms-container .vac-room-selected{color:var(--chat-sidemenu-color-active)!important;background:var(--chat-sidemenu-bg-color-active)!important}.vac-rooms-container .vac-room-selected:hover{background:var(--chat-sidemenu-bg-color-active)!important}@media only screen and (max-width: 768px){.vac-rooms-container .vac-room-list{padding:0 7px 5px}.vac-rooms-container .vac-room-item{min-height:60px;padding:0 8px}}.vac-room-container{display:flex;flex:1;align-items:center;width:100%}.vac-room-container .vac-name-container{flex:1}.vac-room-container .vac-title-container{display:flex;align-items:center;line-height:25px}.vac-room-container .vac-state-circle{width:9px;height:9px;border-radius:50%;background-color:var(--chat-room-color-offline);margin-right:6px;transition:.3s}.vac-room-container .vac-state-online{background-color:var(--chat-room-color-online)}.vac-room-container .vac-room-name{flex:1;color:var(--chat-room-color-username);font-weight:500}.vac-room-container .vac-text-date{margin-left:5px;font-size:11px;color:var(--chat-room-color-timestamp)}.vac-room-container .vac-text-last{display:flex;align-items:center;font-size:12px;line-height:19px;color:var(--chat-room-color-message)}.vac-room-container .vac-message-new{color:var(--chat-room-color-username);font-weight:500}.vac-room-container .vac-icon-check{display:flex;vertical-align:middle;height:14px;width:14px;margin-top:-2px;margin-right:2px}.vac-room-container .vac-icon-microphone{height:15px;width:15px;vertical-align:middle;margin:-3px 1px 0 -2px;fill:var(--chat-room-color-message)}.vac-room-container .vac-room-options-container{display:flex;margin-left:auto}.vac-room-container .vac-room-badge{background-color:var(--chat-room-bg-color-badge);color:var(--chat-room-color-badge);margin-left:5px}.vac-room-container .vac-list-room-options{height:19px;width:19px;align-items:center;margin-left:5px}.vac-box-empty{margin-top:10px}@media only screen and (max-width: 768px){.vac-box-empty{margin-top:7px}}.vac-box-search{position:sticky;display:flex;align-items:center;height:64px;padding:0 15px}.vac-box-search .vac-icon-search{display:flex;position:absolute;left:30px}.vac-box-search .vac-icon-search svg{width:18px;height:18px}.vac-box-search .vac-input{height:38px;width:100%;background:var(--chat-bg-color-input);color:var(--chat-color);font-size:15px;outline:0;caret-color:var(--chat-color-caret);padding:10px 10px 10px 40px;border:1px solid var(--chat-sidemenu-border-color-search);border-radius:20px}.vac-box-search .vac-input::placeholder{color:var(--chat-color-placeholder)}.vac-box-search .vac-add-icon{margin-left:auto;padding-left:10px}@media only screen and (max-width: 768px){.vac-box-search{height:58px}}.vac-message-wrapper .vac-card-info{border-radius:4px;text-align:center;margin:10px auto;font-size:12px;padding:4px;display:block;overflow-wrap:break-word;position:relative;white-space:normal;box-shadow:0 1px 1px -1px #0000001a,0 1px 1px -1px #0000001c,0 1px 2px -1px #0000001c}.vac-message-wrapper .vac-card-date{max-width:150px;font-weight:500;text-transform:uppercase;color:var(--chat-message-color-date);background-color:var(--chat-message-bg-color-date)}.vac-message-wrapper .vac-card-system{max-width:250px;padding:8px 4px;color:var(--chat-message-color-system);background-color:var(--chat-message-bg-color-system)}.vac-message-wrapper .vac-line-new{color:var(--chat-message-color-new-messages);position:relative;text-align:center;font-size:13px;padding:10px 0}.vac-message-wrapper .vac-line-new:after,.vac-message-wrapper .vac-line-new:before{border-top:1px solid var(--chat-message-color-new-messages);content:\"\";left:0;position:absolute;top:50%;width:calc(50% - 60px)}.vac-message-wrapper .vac-line-new:before{left:auto;right:0}.vac-message-wrapper .vac-message-box{display:flex;flex:0 0 50%;max-width:50%;justify-content:flex-start;line-height:1.4}.vac-message-wrapper .vac-avatar{height:28px;width:28px;min-height:28px;min-width:28px;margin:0 0 2px;align-self:flex-end}.vac-message-wrapper .vac-avatar-current-offset{margin-right:28px}.vac-message-wrapper .vac-avatar-offset{margin-left:28px}.vac-message-wrapper .vac-failure-container{position:relative;align-self:flex-end;height:20px;width:20px;margin:0 0 2px -4px;border-radius:50%;background-color:#f44336}.vac-message-wrapper .vac-failure-container.vac-failure-container-avatar{margin-right:6px}.vac-message-wrapper .vac-failure-container .vac-failure-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:15px;font-weight:700}.vac-message-wrapper .vac-message-container{position:relative;padding:2px 10px;align-items:end;min-width:100px;box-sizing:content-box}.vac-message-wrapper .vac-message-container-offset{margin-top:10px}.vac-message-wrapper .vac-offset-current{margin-left:50%;justify-content:flex-end}.vac-message-wrapper .vac-message-card{background-color:var(--chat-message-bg-color);color:var(--chat-message-color);border-radius:8px;font-size:14px;padding:6px 9px 3px;white-space:pre-line;max-width:100%;-webkit-transition-property:box-shadow,opacity;transition-property:box-shadow,opacity;transition:box-shadow .28s cubic-bezier(.4,0,.2,1);will-change:box-shadow;box-shadow:0 1px 1px -1px #0000001a,0 1px 1px -1px #0000001c,0 1px 2px -1px #0000001c}.vac-message-wrapper .vac-message-highlight{box-shadow:0 1px 2px -1px #0000001a,0 1px 2px -1px #0000001c,0 1px 5px -1px #0000001c}.vac-message-wrapper .vac-message-current{background-color:var(--chat-message-bg-color-me)!important}.vac-message-wrapper .vac-message-deleted{color:var(--chat-message-color-deleted)!important;font-size:13px!important;font-style:italic!important;background-color:var(--chat-message-bg-color-deleted)!important}.vac-message-wrapper .vac-message-selected{background-color:var(--chat-message-bg-color-selected)!important;transition:background-color .2s}.vac-message-wrapper .vac-message-image{position:relative;background-color:var(--chat-message-bg-color-image)!important;background-size:cover!important;background-position:center center!important;background-repeat:no-repeat!important;height:250px;width:250px;max-width:100%;border-radius:4px;margin:4px auto 5px;transition:.4s filter linear}.vac-message-wrapper .vac-text-username{font-size:13px;color:var(--chat-message-color-username);margin-bottom:2px}.vac-message-wrapper .vac-username-reply{margin-bottom:5px}.vac-message-wrapper .vac-text-timestamp{font-size:10px;color:var(--chat-message-color-timestamp);text-align:right}.vac-message-wrapper .vac-progress-time{float:left;margin:-2px 0 0 40px;color:var(--chat-color);font-size:12px}.vac-message-wrapper .vac-icon-edited{-webkit-box-align:center;align-items:center;display:-webkit-inline-box;display:inline-flex;justify-content:center;letter-spacing:normal;line-height:1;text-indent:0;vertical-align:middle;margin:0 4px 2px}.vac-message-wrapper .vac-icon-edited svg{height:12px;width:12px}.vac-message-wrapper .vac-icon-check{height:14px;width:14px;vertical-align:middle;margin:-3px -3px 0 3px}@media only screen and (max-width: 768px){.vac-message-wrapper .vac-message-container{padding:2px 3px 1px}.vac-message-wrapper .vac-message-container-offset{margin-top:10px}.vac-message-wrapper .vac-message-box{flex:0 0 80%;max-width:80%}.vac-message-wrapper .vac-avatar{height:25px;width:25px;min-height:25px;min-width:25px;margin:0 6px 1px 0}.vac-message-wrapper .vac-avatar.vac-avatar-current{margin:0 0 1px 6px}.vac-message-wrapper .vac-avatar-current-offset{margin-right:31px}.vac-message-wrapper .vac-avatar-offset{margin-left:31px}.vac-message-wrapper .vac-failure-container{margin-left:2px}.vac-message-wrapper .vac-failure-container.vac-failure-container-avatar{margin-right:0}.vac-message-wrapper .vac-offset-current{margin-left:20%}.vac-message-wrapper .vac-progress-time{margin-left:37px}}.vac-audio-player{display:flex;margin:8px 0 5px}.vac-audio-player .vac-svg-button{max-width:18px;margin-left:7px}@media only screen and (max-width: 768px){.vac-audio-player{margin:4px 0 0}.vac-audio-player .vac-svg-button{max-width:16px;margin-left:5px}}.vac-player-bar{display:flex;align-items:center;max-width:calc(100% - 18px);margin-right:7px;margin-left:20px}.vac-player-bar .vac-player-progress{width:190px}.vac-player-bar .vac-player-progress .vac-line-container{position:relative;height:4px;border-radius:5px;background-color:var(--chat-message-bg-color-audio-line)}.vac-player-bar .vac-player-progress .vac-line-container .vac-line-progress{position:absolute;height:inherit;background-color:var(--chat-message-bg-color-audio-progress);border-radius:inherit}.vac-player-bar .vac-player-progress .vac-line-container .vac-line-dot{position:absolute;top:-5px;margin-left:-7px;height:14px;width:14px;border-radius:50%;background-color:var(--chat-message-bg-color-audio-progress-selector);transition:transform .25s}.vac-player-bar .vac-player-progress .vac-line-container .vac-line-dot__active{transform:scale(1.2)}@media only screen and (max-width: 768px){.vac-player-bar{margin-right:5px}.vac-player-bar .vac-player-progress .vac-line-container{height:3px}.vac-player-bar .vac-player-progress .vac-line-container .vac-line-dot{height:12px;width:12px;top:-5px;margin-left:-5px}}.vac-message-actions-wrapper .vac-options-container{position:absolute;top:2px;right:10px;height:40px;width:70px;overflow:hidden;border-top-right-radius:8px}.vac-message-actions-wrapper .vac-blur-container{position:absolute;height:100%;width:100%;left:8px;bottom:10px;background:var(--chat-message-bg-color);filter:blur(3px);border-bottom-left-radius:8px}.vac-message-actions-wrapper .vac-options-me{background:var(--chat-message-bg-color-me)}.vac-message-actions-wrapper .vac-message-options{background:var(--chat-icon-bg-dropdown-message);border-radius:50%;position:absolute;top:7px;right:7px}.vac-message-actions-wrapper .vac-message-options svg{height:17px;width:17px;padding:5px;margin:-5px}.vac-message-actions-wrapper .vac-message-emojis{position:absolute;top:6px;right:30px}.vac-message-actions-wrapper .vac-menu-options{right:15px}.vac-message-actions-wrapper .vac-menu-left{right:-118px}@media only screen and (max-width: 768px){.vac-message-actions-wrapper .vac-options-container{right:3px}.vac-message-actions-wrapper .vac-menu-left{right:-50px}}.vac-message-files-container .vac-file-wrapper{position:relative;width:fit-content}.vac-message-files-container .vac-file-wrapper .vac-file-container{height:60px;width:60px;margin:3px 0 5px;cursor:pointer;transition:all .6s}.vac-message-files-container .vac-file-wrapper .vac-file-container:hover{opacity:.85}.vac-message-files-container .vac-file-wrapper .vac-file-container svg{height:30px;width:30px}.vac-message-files-container .vac-file-wrapper .vac-file-container.vac-file-container-progress{background-color:#0000004d}.vac-message-file-container{position:relative;z-index:0}.vac-message-file-container .vac-message-image-container{cursor:pointer}.vac-message-file-container .vac-image-buttons{position:absolute;width:100%;height:100%;border-radius:4px;background:linear-gradient(to bottom,rgba(0,0,0,0) 55%,rgba(0,0,0,.02) 60%,rgba(0,0,0,.05) 65%,rgba(0,0,0,.1) 70%,rgba(0,0,0,.2) 75%,rgba(0,0,0,.3) 80%,rgba(0,0,0,.5) 85%,rgba(0,0,0,.6) 90%,rgba(0,0,0,.7) 95%,rgba(0,0,0,.8) 100%)}.vac-message-file-container .vac-image-buttons svg{height:26px;width:26px}.vac-message-file-container .vac-image-buttons .vac-button-view,.vac-message-file-container .vac-image-buttons .vac-button-download{position:absolute;bottom:6px;left:7px}.vac-message-file-container .vac-image-buttons :first-child{left:40px}.vac-message-file-container .vac-image-buttons .vac-button-view{max-width:18px;bottom:8px}.vac-message-file-container .vac-video-container{width:350px;max-width:100%;margin:4px auto 5px;cursor:pointer}.vac-message-file-container .vac-video-container video{width:100%;height:100%;border-radius:4px}.vac-button-reaction{display:inline-flex;align-items:center;border:var(--chat-message-border-style-reaction);outline:none;background:var(--chat-message-bg-color-reaction);border-radius:4px;margin:4px 2px 0;transition:.3s;padding:0 5px;font-size:18px;line-height:23px}.vac-button-reaction span{font-size:11px;font-weight:500;min-width:7px;color:var(--chat-message-color-reaction-counter)}.vac-button-reaction:hover{border:var(--chat-message-border-style-reaction-hover);background:var(--chat-message-bg-color-reaction-hover);cursor:pointer}.vac-button-reaction.vac-reaction-me{border:var(--chat-message-border-style-reaction-me);background:var(--chat-message-bg-color-reaction-me)}.vac-button-reaction.vac-reaction-me span{color:var(--chat-message-color-reaction-counter-me)}.vac-button-reaction.vac-reaction-me:hover{border:var(--chat-message-border-style-reaction-hover-me);background:var(--chat-message-bg-color-reaction-hover-me)}.vac-reply-message{background:var(--chat-message-bg-color-reply);border-radius:4px;margin:-1px -5px 8px;padding:8px 10px}.vac-reply-message .vac-reply-username{color:var(--chat-message-color-reply-username);font-size:12px;line-height:15px;margin-bottom:2px}.vac-reply-message .vac-image-reply-container{width:70px}.vac-reply-message .vac-image-reply-container .vac-message-image-reply{height:70px;width:70px;margin:4px auto 3px}.vac-reply-message .vac-video-reply-container{width:200px;max-width:100%}.vac-reply-message .vac-video-reply-container video{width:100%;height:100%;border-radius:4px}.vac-reply-message .vac-reply-content{font-size:12px;color:var(--chat-message-color-reply-content)}.vac-reply-message .vac-file-container{height:60px;width:60px}.vac-emoji-wrapper{position:relative;display:flex}.vac-emoji-wrapper .vac-emoji-reaction svg{height:19px;width:19px}.vac-emoji-wrapper .vac-emoji-picker{position:absolute;z-index:9999;bottom:32px;right:10px;width:300px;padding-top:4px;overflow:scroll;box-sizing:border-box;border-radius:.5rem;background:var(--chat-emoji-bg-color);box-shadow:0 1px 2px -2px #0000001a,0 1px 2px -1px #0000001a,0 1px 2px 1px #0000001a;scrollbar-width:none}.vac-emoji-wrapper .vac-emoji-picker::-webkit-scrollbar{display:none}.vac-emoji-wrapper .vac-emoji-picker.vac-picker-reaction{position:fixed;top:initial;right:initial}.vac-emoji-wrapper .vac-emoji-picker emoji-picker{height:100%;width:100%;--emoji-size: 1.2rem;--background: var(--chat-emoji-bg-color);--emoji-padding: .4rem;--border-color: var(--chat-sidemenu-border-color-search);--button-hover-background: var(--chat-sidemenu-bg-color-hover);--button-active-background: var(--chat-sidemenu-bg-color-hover)}.vac-format-message-wrapper .vac-format-container{display:inline}.vac-format-message-wrapper .vac-icon-deleted{height:14px;width:14px;vertical-align:middle;margin:-2px 2px 0 0;fill:var(--chat-message-color-deleted)}.vac-format-message-wrapper .vac-icon-deleted.vac-icon-deleted-room{margin:-3px 1px 0 0;fill:var(--chat-room-color-message)}.vac-format-message-wrapper .vac-image-link-container{background-color:var(--chat-message-bg-color-media);padding:8px;margin:2px auto;border-radius:4px}.vac-format-message-wrapper .vac-image-link{position:relative;background-color:var(--chat-message-bg-color-image)!important;background-size:contain;background-position:center center!important;background-repeat:no-repeat!important;height:150px;width:150px;max-width:100%;border-radius:4px;margin:0 auto}.vac-format-message-wrapper .vac-image-link-message{max-width:166px;font-size:12px}.vac-loader-wrapper.vac-container-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:9}.vac-loader-wrapper.vac-container-top{padding:21px}.vac-loader-wrapper.vac-container-top #vac-circle{height:20px;width:20px}.vac-loader-wrapper #vac-circle{margin:auto;height:28px;width:28px;border:3px rgba(0,0,0,.25) solid;border-top:3px var(--chat-color-spinner) solid;border-right:3px var(--chat-color-spinner) solid;border-bottom:3px var(--chat-color-spinner) solid;border-radius:50%;-webkit-animation:vac-spin 1s infinite linear;animation:vac-spin 1s infinite linear}@media only screen and (max-width: 768px){.vac-loader-wrapper #vac-circle{height:24px;width:24px}.vac-loader-wrapper.vac-container-top{padding:18px}.vac-loader-wrapper.vac-container-top #vac-circle{height:16px;width:16px}}@-webkit-keyframes vac-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes vac-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}#vac-icon-search{fill:var(--chat-icon-color-search)}#vac-icon-add{fill:var(--chat-icon-color-add)}#vac-icon-toggle{fill:var(--chat-icon-color-toggle)}#vac-icon-menu{fill:var(--chat-icon-color-menu)}#vac-icon-close{fill:var(--chat-icon-color-close)}#vac-icon-close-image{fill:var(--chat-icon-color-close-image)}#vac-icon-file{fill:var(--chat-icon-color-file)}#vac-icon-paperclip{fill:var(--chat-icon-color-paperclip)}#vac-icon-close-outline{fill:var(--chat-icon-color-close-outline)}#vac-icon-close-outline-preview{fill:var(--chat-icon-color-close-preview)}#vac-icon-send{fill:var(--chat-icon-color-send)}#vac-icon-send-disabled{fill:var(--chat-icon-color-send-disabled)}#vac-icon-emoji{fill:var(--chat-icon-color-emoji)}#vac-icon-emoji-reaction{fill:var(--chat-icon-color-emoji-reaction)}#vac-icon-document{fill:var(--chat-icon-color-document)}#vac-icon-pencil{fill:var(--chat-icon-color-pencil)}#vac-icon-checkmark,#vac-icon-double-checkmark{fill:var(--chat-icon-color-checkmark)}#vac-icon-checkmark-seen,#vac-icon-double-checkmark-seen{fill:var(--chat-icon-color-checkmark-seen)}#vac-icon-eye{fill:var(--chat-icon-color-eye)}#vac-icon-dropdown-message{fill:var(--chat-icon-color-dropdown-message)}#vac-icon-dropdown-room{fill:var(--chat-icon-color-dropdown-room)}#vac-icon-dropdown-scroll{fill:var(--chat-icon-color-dropdown-scroll)}#vac-icon-audio-play{fill:var(--chat-icon-color-audio-play)}#vac-icon-audio-pause{fill:var(--chat-icon-color-audio-pause)}.vac-progress-wrapper{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:9}.vac-progress-wrapper circle{transition:stroke-dashoffset .35s;transform:rotate(-90deg);transform-origin:50% 50%}.vac-progress-wrapper .vac-progress-content{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:-1;margin-top:-2px;background-color:#000000b3;border-radius:50%}.vac-progress-wrapper .vac-progress-content .vac-progress-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-weight:700;color:#fff}.vac-progress-wrapper .vac-progress-content .vac-progress-text .vac-progress-pourcent{font-size:9px;font-weight:400}\\n';\nconst _sfc_main = {\n name: \"ChatContainer\",\n components: {\n RoomsList,\n Room,\n MediaPreview\n },\n props: {\n height: { type: String, default: \"600px\" },\n theme: { type: String, default: \"light\" },\n styles: { type: [Object, String], default: () => ({}) },\n responsiveBreakpoint: { type: Number, default: 900 },\n singleRoom: { type: [Boolean, String], default: false },\n roomsListOpened: { type: [Boolean, String], default: true },\n textMessages: { type: [Object, String], default: () => ({}) },\n currentUserId: { type: String, default: \"\" },\n rooms: { type: [Array, String], default: () => [] },\n roomsOrder: { type: String, default: \"desc\" },\n loadingRooms: { type: [Boolean, String], default: false },\n roomsLoaded: { type: [Boolean, String], default: false },\n roomId: { type: String, default: null },\n loadFirstRoom: { type: [Boolean, String], default: true },\n messages: { type: [Array, String], default: () => [] },\n messagesLoaded: { type: [Boolean, String], default: false },\n roomActions: { type: [Array, String], default: () => [] },\n menuActions: { type: [Array, String], default: () => [] },\n messageActions: {\n type: [Array, String],\n default: () => [\n { name: \"replyMessage\", title: \"Reply\" },\n { name: \"editMessage\", title: \"Edit Message\", onlyMe: true },\n { name: \"deleteMessage\", title: \"Delete Message\", onlyMe: true },\n { name: \"selectMessages\", title: \"Select\" }\n ]\n },\n messageSelectionActions: { type: [Array, String], default: () => [] },\n autoScroll: {\n type: [Object, String],\n default: () => {\n return {\n send: {\n new: true,\n newAfterScrollUp: true\n },\n receive: {\n new: true,\n newAfterScrollUp: false\n }\n };\n }\n },\n customSearchRoomEnabled: { type: [Boolean, String], default: false },\n showSearch: { type: [Boolean, String], default: true },\n showAddRoom: { type: [Boolean, String], default: true },\n showSendIcon: { type: [Boolean, String], default: true },\n showFiles: { type: [Boolean, String], default: true },\n showAudio: { type: [Boolean, String], default: true },\n audioBitRate: { type: Number, default: 128 },\n audioSampleRate: { type: Number, default: 44100 },\n showEmojis: { type: [Boolean, String], default: true },\n showReactionEmojis: { type: [Boolean, String], default: true },\n showNewMessagesDivider: { type: [Boolean, String], default: true },\n showFooter: { type: [Boolean, String], default: true },\n textFormatting: {\n type: [Object, String],\n default: () => ({\n disabled: false\n })\n },\n linkOptions: {\n type: [Object, String],\n default: () => ({ disabled: false, target: \"_blank\", rel: null })\n },\n roomInfoEnabled: { type: [Boolean, String], default: false },\n textareaActionEnabled: { type: [Boolean, String], default: false },\n textareaAutoFocus: { type: [Boolean, String], default: true },\n userTagsEnabled: { type: [Boolean, String], default: true },\n emojisSuggestionEnabled: { type: [Boolean, String], default: true },\n roomMessage: { type: String, default: \"\" },\n scrollDistance: { type: Number, default: 60 },\n acceptedFiles: { type: String, default: \"*\" },\n captureFiles: { type: String, default: \"\" },\n multipleFiles: { type: [Boolean, String], default: true },\n templatesText: { type: [Array, String], default: () => [] },\n mediaPreviewEnabled: { type: [Boolean, String], default: true },\n usernameOptions: {\n type: [Object, String],\n default: () => ({ minUsers: 3, currentUser: false })\n },\n emojiDataSource: { type: String, default: void 0 }\n },\n emits: [\n \"toggle-rooms-list\",\n \"room-info\",\n \"fetch-messages\",\n \"send-message\",\n \"edit-message\",\n \"delete-message\",\n \"open-file\",\n \"open-user-tag\",\n \"open-failed-message\",\n \"menu-action-handler\",\n \"message-action-handler\",\n \"send-message-reaction\",\n \"typing-message\",\n \"textarea-action-handler\",\n \"fetch-more-rooms\",\n \"add-room\",\n \"search-room\",\n \"room-action-handler\",\n \"message-selection-action-handler\"\n ],\n data() {\n return {\n slots: [],\n room: {},\n loadingMoreRooms: false,\n showRoomsList: true,\n isMobile: false,\n showMediaPreview: false,\n previewFile: {}\n };\n },\n computed: {\n t() {\n return {\n ...locales,\n ...this.textMessagesCasted\n };\n },\n cssVars() {\n const defaultStyles = defaultThemeStyles[this.theme];\n const customStyles = {};\n Object.keys(defaultStyles).map((key) => {\n customStyles[key] = {\n ...defaultStyles[key],\n ...this.stylesCasted[key] || {}\n };\n });\n return cssThemeVars(customStyles);\n },\n orderedRooms() {\n return this.roomsCasted.slice().sort((a, b) => {\n const aVal = a.index || 0;\n const bVal = b.index || 0;\n if (this.roomsOrder === \"asc\") {\n return aVal < bVal ? -1 : bVal < aVal ? 1 : 0;\n }\n return aVal > bVal ? -1 : bVal > aVal ? 1 : 0;\n });\n },\n singleRoomCasted() {\n return this.castBoolean(this.singleRoom);\n },\n roomsListOpenedCasted() {\n return this.castBoolean(this.roomsListOpened);\n },\n loadingRoomsCasted() {\n return this.castBoolean(this.loadingRooms);\n },\n roomsLoadedCasted() {\n return this.castBoolean(this.roomsLoaded);\n },\n loadFirstRoomCasted() {\n return this.castBoolean(this.loadFirstRoom);\n },\n messagesLoadedCasted() {\n return this.castBoolean(this.messagesLoaded);\n },\n multipleFilesCasted() {\n return this.castBoolean(this.multipleFiles);\n },\n showSearchCasted() {\n return this.castBoolean(this.showSearch);\n },\n showAddRoomCasted() {\n return this.castBoolean(this.showAddRoom);\n },\n showSendIconCasted() {\n return this.castBoolean(this.showSendIcon);\n },\n showFilesCasted() {\n return this.castBoolean(this.showFiles);\n },\n showAudioCasted() {\n return this.castBoolean(this.showAudio);\n },\n showEmojisCasted() {\n return this.castBoolean(this.showEmojis);\n },\n showReactionEmojisCasted() {\n return this.castBoolean(this.showReactionEmojis);\n },\n showNewMessagesDividerCasted() {\n return this.castBoolean(this.showNewMessagesDivider);\n },\n showFooterCasted() {\n return this.castBoolean(this.showFooter);\n },\n roomInfoEnabledCasted() {\n return this.castBoolean(this.roomInfoEnabled);\n },\n textareaActionEnabledCasted() {\n return this.castBoolean(this.textareaActionEnabled);\n },\n textareaAutoFocusCasted() {\n return this.castBoolean(this.textareaAutoFocus);\n },\n userTagsEnabledCasted() {\n return this.castBoolean(this.userTagsEnabled);\n },\n emojisSuggestionEnabledCasted() {\n return this.castBoolean(this.emojisSuggestionEnabled);\n },\n mediaPreviewEnabledCasted() {\n return this.castBoolean(this.mediaPreviewEnabled);\n },\n roomsCasted() {\n return this.castArray(this.rooms);\n },\n messagesCasted() {\n return this.castArray(this.messages);\n },\n roomActionsCasted() {\n return this.castArray(this.roomActions);\n },\n menuActionsCasted() {\n return this.castArray(this.menuActions);\n },\n messageActionsCasted() {\n return this.castArray(this.messageActions);\n },\n messageSelectionActionsCasted() {\n return this.castArray(this.messageSelectionActions);\n },\n templatesTextCasted() {\n return this.castArray(this.templatesText);\n },\n stylesCasted() {\n return this.castObject(this.styles);\n },\n textMessagesCasted() {\n return this.castObject(this.textMessages);\n },\n autoScrollCasted() {\n return this.castObject(this.autoScroll);\n },\n textFormattingCasted() {\n return this.castObject(this.textFormatting);\n },\n linkOptionsCasted() {\n return this.castObject(this.linkOptions);\n },\n usernameOptionsCasted() {\n return this.castObject(this.usernameOptions);\n }\n },\n watch: {\n roomsCasted: {\n immediate: true,\n deep: true,\n handler(newVal, oldVal) {\n if (!newVal[0] || !newVal.find((room) => room.roomId === this.room.roomId)) {\n this.showRoomsList = true;\n }\n if (!this.loadingMoreRooms && this.loadFirstRoomCasted && newVal[0] && (!oldVal || newVal.length !== oldVal.length)) {\n if (this.roomId) {\n const room = newVal.find((r) => r.roomId === this.roomId) || {};\n this.fetchRoom({ room });\n } else if (!this.isMobile || this.singleRoomCasted) {\n this.fetchRoom({ room: this.orderedRooms[0] });\n } else {\n this.showRoomsList = true;\n }\n }\n }\n },\n loadingRoomsCasted(val) {\n if (val)\n this.room = {};\n },\n roomId: {\n immediate: true,\n handler(newVal, oldVal) {\n if (newVal && !this.loadingRoomsCasted && this.roomsCasted.length) {\n const room = this.roomsCasted.find((r) => r.roomId === newVal);\n this.fetchRoom({ room });\n } else if (oldVal && !newVal) {\n this.room = {};\n }\n }\n },\n room(val) {\n if (!val || Object.entries(val).length === 0)\n return;\n roomsValidation(val);\n val.users.forEach((user) => {\n partcipantsValidation(user);\n });\n },\n roomsListOpenedCasted: {\n immediate: true,\n handler(val) {\n this.showRoomsList = val;\n }\n }\n },\n created() {\n this.updateResponsive();\n window.addEventListener(\"resize\", (ev) => {\n if (ev.isTrusted)\n this.updateResponsive();\n });\n },\n updated() {\n const slots = document.querySelectorAll(\"[slot]\");\n if (this.slots.length !== slots.length) {\n this.slots = slots;\n }\n },\n methods: {\n castBoolean(val) {\n return val === \"true\" || val === true;\n },\n castArray(val) {\n return !val ? [] : Array.isArray(val) ? val : JSON.parse(val);\n },\n castObject(val) {\n return !val ? {} : typeof val === \"object\" ? val : JSON.parse(val);\n },\n updateResponsive() {\n this.isMobile = window.innerWidth < Number(this.responsiveBreakpoint);\n },\n toggleRoomsList() {\n this.showRoomsList = !this.showRoomsList;\n if (this.isMobile)\n this.room = {};\n this.$emit(\"toggle-rooms-list\", { opened: this.showRoomsList });\n },\n fetchRoom({ room }) {\n this.room = room;\n this.fetchMessages({ reset: true });\n if (this.isMobile)\n this.showRoomsList = false;\n },\n fetchMoreRooms() {\n this.$emit(\"fetch-more-rooms\");\n },\n roomInfo() {\n this.$emit(\"room-info\", this.room);\n },\n addRoom() {\n this.$emit(\"add-room\");\n },\n searchRoom(val) {\n this.$emit(\"search-room\", { value: val, roomId: this.room.roomId });\n },\n fetchMessages(options) {\n this.$emit(\"fetch-messages\", { room: this.room, options });\n },\n sendMessage(message) {\n this.$emit(\"send-message\", { ...message, roomId: this.room.roomId });\n },\n editMessage(message) {\n this.$emit(\"edit-message\", { ...message, roomId: this.room.roomId });\n },\n deleteMessage(message) {\n this.$emit(\"delete-message\", { message, roomId: this.room.roomId });\n },\n openFile({ message, file }) {\n if (this.mediaPreviewEnabledCasted && file.action === \"preview\") {\n this.previewFile = file.file;\n this.showMediaPreview = true;\n } else {\n this.$emit(\"open-file\", { message, file });\n }\n },\n openUserTag({ user }) {\n this.$emit(\"open-user-tag\", { user });\n },\n openFailedMessage({ message }) {\n this.$emit(\"open-failed-message\", {\n message,\n roomId: this.room.roomId\n });\n },\n menuActionHandler(ev) {\n this.$emit(\"menu-action-handler\", {\n action: ev,\n roomId: this.room.roomId\n });\n },\n roomActionHandler({ action, roomId }) {\n this.$emit(\"room-action-handler\", {\n action,\n roomId\n });\n },\n messageActionHandler(ev) {\n this.$emit(\"message-action-handler\", {\n ...ev,\n roomId: this.room.roomId\n });\n },\n messageSelectionActionHandler(ev) {\n this.$emit(\"message-selection-action-handler\", {\n ...ev,\n roomId: this.room.roomId\n });\n },\n sendMessageReaction(messageReaction) {\n this.$emit(\"send-message-reaction\", {\n ...messageReaction,\n roomId: this.room.roomId\n });\n },\n typingMessage(message) {\n this.$emit(\"typing-message\", {\n message,\n roomId: this.room.roomId\n });\n },\n textareaActionHandler(message) {\n this.$emit(\"textarea-action-handler\", {\n message,\n roomId: this.room.roomId\n });\n }\n }\n};\nconst _hoisted_1 = { class: \"vac-chat-container\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_rooms_list = resolveComponent(\"rooms-list\");\n const _component_room = resolveComponent(\"room\");\n const _component_media_preview = resolveComponent(\"media-preview\");\n return openBlock(), createElementBlock(\"div\", {\n class: \"vac-card-window\",\n style: normalizeStyle([{ height: $props.height }, $options.cssVars])\n }, [\n createBaseVNode(\"div\", _hoisted_1, [\n !$options.singleRoomCasted ? (openBlock(), createBlock(_component_rooms_list, {\n key: 0,\n \"current-user-id\": $props.currentUserId,\n rooms: $options.orderedRooms,\n \"loading-rooms\": $options.loadingRoomsCasted,\n \"rooms-loaded\": $options.roomsLoadedCasted,\n room: $data.room,\n \"room-actions\": $options.roomActionsCasted,\n \"custom-search-room-enabled\": $props.customSearchRoomEnabled,\n \"text-messages\": $options.t,\n \"show-search\": $options.showSearchCasted,\n \"show-add-room\": $options.showAddRoomCasted,\n \"show-rooms-list\": $data.showRoomsList && $options.roomsListOpenedCasted,\n \"text-formatting\": $options.textFormattingCasted,\n \"link-options\": $options.linkOptionsCasted,\n \"is-mobile\": $data.isMobile,\n \"scroll-distance\": $props.scrollDistance,\n onFetchRoom: $options.fetchRoom,\n onFetchMoreRooms: $options.fetchMoreRooms,\n onLoadingMoreRooms: _cache[0] || (_cache[0] = ($event) => $data.loadingMoreRooms = $event),\n onAddRoom: $options.addRoom,\n onSearchRoom: $options.searchRoom,\n onRoomActionHandler: $options.roomActionHandler\n }, createSlots({ _: 2 }, [\n renderList($data.slots, (el) => {\n return {\n name: el.slot,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, el.slot, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"current-user-id\", \"rooms\", \"loading-rooms\", \"rooms-loaded\", \"room\", \"room-actions\", \"custom-search-room-enabled\", \"text-messages\", \"show-search\", \"show-add-room\", \"show-rooms-list\", \"text-formatting\", \"link-options\", \"is-mobile\", \"scroll-distance\", \"onFetchRoom\", \"onFetchMoreRooms\", \"onAddRoom\", \"onSearchRoom\", \"onRoomActionHandler\"])) : createCommentVNode(\"\", true),\n createVNode(_component_room, {\n \"current-user-id\": $props.currentUserId,\n rooms: $options.roomsCasted,\n \"room-id\": $data.room.roomId || \"\",\n \"load-first-room\": $options.loadFirstRoomCasted,\n messages: $options.messagesCasted,\n \"room-message\": $props.roomMessage,\n \"messages-loaded\": $options.messagesLoadedCasted,\n \"menu-actions\": $options.menuActionsCasted,\n \"message-actions\": $options.messageActionsCasted,\n \"message-selection-actions\": $options.messageSelectionActionsCasted,\n \"auto-scroll\": $options.autoScrollCasted,\n \"show-send-icon\": $options.showSendIconCasted,\n \"show-files\": $options.showFilesCasted,\n \"show-audio\": $options.showAudioCasted,\n \"audio-bit-rate\": $props.audioBitRate,\n \"audio-sample-rate\": $props.audioSampleRate,\n \"show-emojis\": $options.showEmojisCasted,\n \"show-reaction-emojis\": $options.showReactionEmojisCasted,\n \"show-new-messages-divider\": $options.showNewMessagesDividerCasted,\n \"show-footer\": $options.showFooterCasted,\n \"text-messages\": $options.t,\n \"single-room\": $options.singleRoomCasted,\n \"show-rooms-list\": $data.showRoomsList && $options.roomsListOpenedCasted,\n \"text-formatting\": $options.textFormattingCasted,\n \"link-options\": $options.linkOptionsCasted,\n \"is-mobile\": $data.isMobile,\n \"loading-rooms\": $options.loadingRoomsCasted,\n \"room-info-enabled\": $options.roomInfoEnabledCasted,\n \"textarea-action-enabled\": $options.textareaActionEnabledCasted,\n \"textarea-auto-focus\": $options.textareaAutoFocusCasted,\n \"user-tags-enabled\": $options.userTagsEnabledCasted,\n \"emojis-suggestion-enabled\": $options.emojisSuggestionEnabledCasted,\n \"scroll-distance\": $props.scrollDistance,\n \"accepted-files\": $props.acceptedFiles,\n \"capture-files\": $props.captureFiles,\n \"multiple-files\": $options.multipleFilesCasted,\n \"templates-text\": $options.templatesTextCasted,\n \"username-options\": $options.usernameOptionsCasted,\n \"emoji-data-source\": $props.emojiDataSource,\n onToggleRoomsList: $options.toggleRoomsList,\n onRoomInfo: $options.roomInfo,\n onFetchMessages: $options.fetchMessages,\n onSendMessage: $options.sendMessage,\n onEditMessage: $options.editMessage,\n onDeleteMessage: $options.deleteMessage,\n onOpenFile: $options.openFile,\n onOpenUserTag: $options.openUserTag,\n onOpenFailedMessage: $options.openFailedMessage,\n onMenuActionHandler: $options.menuActionHandler,\n onMessageActionHandler: $options.messageActionHandler,\n onMessageSelectionActionHandler: $options.messageSelectionActionHandler,\n onSendMessageReaction: $options.sendMessageReaction,\n onTypingMessage: $options.typingMessage,\n onTextareaActionHandler: $options.textareaActionHandler\n }, createSlots({ _: 2 }, [\n renderList($data.slots, (el) => {\n return {\n name: el.slot,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, el.slot, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"current-user-id\", \"rooms\", \"room-id\", \"load-first-room\", \"messages\", \"room-message\", \"messages-loaded\", \"menu-actions\", \"message-actions\", \"message-selection-actions\", \"auto-scroll\", \"show-send-icon\", \"show-files\", \"show-audio\", \"audio-bit-rate\", \"audio-sample-rate\", \"show-emojis\", \"show-reaction-emojis\", \"show-new-messages-divider\", \"show-footer\", \"text-messages\", \"single-room\", \"show-rooms-list\", \"text-formatting\", \"link-options\", \"is-mobile\", \"loading-rooms\", \"room-info-enabled\", \"textarea-action-enabled\", \"textarea-auto-focus\", \"user-tags-enabled\", \"emojis-suggestion-enabled\", \"scroll-distance\", \"accepted-files\", \"capture-files\", \"multiple-files\", \"templates-text\", \"username-options\", \"emoji-data-source\", \"onToggleRoomsList\", \"onRoomInfo\", \"onFetchMessages\", \"onSendMessage\", \"onEditMessage\", \"onDeleteMessage\", \"onOpenFile\", \"onOpenUserTag\", \"onOpenFailedMessage\", \"onMenuActionHandler\", \"onMessageActionHandler\", \"onMessageSelectionActionHandler\", \"onSendMessageReaction\", \"onTypingMessage\", \"onTextareaActionHandler\"])\n ]),\n createVNode(Transition, {\n name: \"vac-fade-preview\",\n appear: \"\"\n }, {\n default: withCtx(() => [\n $data.showMediaPreview ? (openBlock(), createBlock(_component_media_preview, {\n key: 0,\n file: $data.previewFile,\n onCloseMediaPreview: _cache[1] || (_cache[1] = ($event) => $data.showMediaPreview = false)\n }, createSlots({ _: 2 }, [\n renderList($data.slots, (el) => {\n return {\n name: el.slot,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, el.slot, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"file\"])) : createCommentVNode(\"\", true)\n ]),\n _: 3\n })\n ], 4);\n}\nvar ChatWindow = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"styles\", [_style_0]]]);\nconst VueAdvancedChat = defineCustomElement(ChatWindow);\nconst PACKAGE_NAME = \"vue-advanced-chat\";\nfunction register() {\n if (!customElements.get(PACKAGE_NAME)) {\n customElements.define(PACKAGE_NAME, VueAdvancedChat);\n }\n}\nexport { VueAdvancedChat, register };\n","import { render } from \"./ChatComponent.vue?vue&type=template&id=61a89d0e&ts=true\"\nimport script from \"./ChatComponent.vue?vue&type=script&lang=ts\"\nexport * from \"./ChatComponent.vue?vue&type=script&lang=ts\"\n\nimport \"./ChatComponent.vue?vue&type=style&index=0&id=61a89d0e&lang=css\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, resolveComponent as _resolveComponent, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4610efbd\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"bell\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: \"/static/teleforma/images/bell.svg\",\n alt: \"Notifications\",\n title: \"Notifications\",\n class: \"bell-image\"\n}, null, -1))\nconst _hoisted_3 = {\n key: 0,\n class: \"bell-count\"\n}\nconst _hoisted_4 = {\n key: 0,\n class: \"notifications-list\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_notification_message = _resolveComponent(\"notification-message\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n id: \"notifications\",\n onFocus: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.open && _ctx.open(...args))),\n onFocusout: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.close && _ctx.close(...args))),\n tabindex: \"0\"\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _hoisted_2,\n (_ctx.numberOfUnread > 0)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_3, _toDisplayString(_ctx.numberOfUnread), 1))\n : _createCommentVNode(\"\", true)\n ]),\n (_ctx.opened)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"ul\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.messages, (message) => {\n return (_openBlock(), _createBlock(_component_notification_message, {\n key: message._id,\n id: message._id,\n content: message.content,\n url: message.url,\n viewed: message.viewed,\n \"creation-date\": message.created\n }, null, 8, [\"id\", \"content\", \"url\", \"viewed\", \"creation-date\"]))\n }), 128))\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ], 32))\n}","<template>\n <div id=\"notifications\" @focus=\"open\" @focusout=\"close\" tabindex=\"0\">\n <div class=\"bell\">\n <img src=\"/static/teleforma/images/bell.svg\" alt=\"Notifications\" title=\"Notifications\" class=\"bell-image\" />\n <span v-if=\"numberOfUnread > 0\" class=\"bell-count\">{{ numberOfUnread }}</span>\n </div>\n <div v-if=\"opened\" class=\"notifications-list\">\n <!-- <h1 v-if=\"currentUserId\">{{ currentUserId }}</h1>\n <h1 v-else>Pas d'utilisateur</h1> -->\n <ul>\n <notification-message\n v-for=\"message in messages\"\n :key=\"message._id\"\n :id=\"message._id\"\n :content=\"message.content\"\n :url=\"message.url\"\n :viewed=\"message.viewed\"\n :creation-date=\"message.created\"\n ></notification-message>\n </ul>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport NotificationMessage from \"./sub/NotificationMessage.vue\"\n\ninterface BaseComponentData {\n socket: WebSocket | null\n messagesLoaded: boolean\n messages: any[]\n currentUserId: number | null\n opened: boolean\n}\n\nexport default defineComponent({\n \n data(): BaseComponentData {\n return {\n socket: null,\n messagesLoaded: false,\n messages: [],\n currentUserId: null,\n opened: false\n }\n },\n components: {\n NotificationMessage\n },\n created() {\n // get room info\n const userId = document.getElementById(\"user_id\")\n if (!userId) return\n // this.connect(`notifications_${userId}`)\n this.currentUserId = parseInt(userId.getAttribute(\"value\")!, 10)\n this.connect()\n },\n\n methods: {\n connect() {\n // connect to socket\n let protocol = \"wss\"\n if (window.location.protocol != \"https:\") protocol = \"ws\"\n this.socket = new WebSocket(\n protocol + \"://\" + window.location.host + \"/ws/notification/\" + this.currentUserId + \"/\"\n )\n this.fetchMessages()\n\n this.socket.onclose = () => {\n console.log(\"Chat socket closed\")\n }\n },\n\n async fetchMessages() {\n this.socket!.onmessage = (e) => {\n const data = JSON.parse(e.data)\n const type = data.type\n // debugger;\n // do not load messages in case of socket reconnect\n if (type === \"initial\" && this.messagesLoaded) return\n\n const newMessages = data.messages\n\n // check if a message with the same id already exists\n // it means the message have been updated (probably the \"viewed\" state)\n let existing = null\n if (type === \"new\" && newMessages.length === 1) {\n existing = this.messages.findIndex((message) => message._id === newMessages[0]._id)\n }\n\n // if it exists, then we update it instead of appending a new one\n if (existing !== null && existing !== -1) {\n this.messages = [...this.messages.slice(0, existing), newMessages[0], ...this.messages.slice(existing + 1)]\n } else this.messages = [...newMessages, ...this.messages]\n if (type === \"initial\") this.messagesLoaded = true\n }\n },\n\n open() {\n this.opened = true\n },\n close() {\n this.opened = false\n }\n },\n\n computed: {\n numberOfUnread(): any {\n return this.messages.filter((message) => !message.viewed).length\n }\n }\n})\n</script>\n\n<style scoped>\n#notifications {\n position: absolute;\n top: 0px;\n right: 5px;\n text-align: left;\n}\n.bell {\n width: 40px;\n height: 40px;\n position: relative;\n cursor: pointer;\n}\n.bell-count {\n position: absolute;\n width: 20px;\n height: 20px;\n top: 5px;\n right: 0px;\n display: flex;\n justify-content: center;\n align-items: center;\n color: white;\n border-radius: 10px;\n background-color: red;\n}\n\n.notifications-list {\n position: absolute;\n background-color: white;\n z-index: 100;\n right: 10px;\n width: 400px;\n max-height: calc(100vh - 300px);\n max-width: calc(100vw - 50px);\n border: 1px solid lightblue;\n border-radius: 3px;\n overflow-y: scroll;\n}\n\nul {\n margin: 0;\n padding: 0;\n box-shadow: 5px 5px 5px grey;\n}\n</style>\n","import { toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, withModifiers as _withModifiers, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-fa1f8db4\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"date\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"li\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.onClick())),\n onMouseup: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (_ctx.onMiddleClick()), [\"middle\"]))\n }, [\n _createElementVNode(\"span\", {\n class: _normalizeClass({ unviewed: !_ctx.viewed, text: true })\n }, _toDisplayString(_ctx.content), 3),\n _createElementVNode(\"span\", _hoisted_1, _toDisplayString(_ctx.relativeCreationDate), 1)\n ], 32))\n}","<template>\n <li @click=\"onClick()\" @click.middle=\"onMiddleClick()\">\n <span :class=\"{ unviewed: !viewed, text: true }\">{{ content }}</span>\n <span class=\"date\">{{ relativeCreationDate }} </span>\n </li>\n</template>\n\n<script lang=\"ts\">\n\nimport { defineComponent } from 'vue'\nimport { formatRelative } from \"date-fns\"\nimport { fr } from \"date-fns/locale\"\nimport axios from \"axios\"\n\n\nexport default defineComponent({\n props: {\n id: Number,\n content: String,\n url: String,\n viewed: Boolean,\n creationDate: String\n },\n\n methods: {\n async setAsViewed() {\n if (this.viewed === false) {\n await axios.post(\"/notification\", { id: this.id, viewed: true })\n }\n },\n\n async onClick() {\n await this.setAsViewed()\n if (this.url) window.location.href = this.url\n },\n\n async onMiddleClick() {\n await this.setAsViewed()\n if (this.url) window.open(this.url, \"_blank\")\n }\n },\n computed: {\n relativeCreationDate():string {\n return formatRelative(new Date(this.creationDate as string), new Date(), { locale: fr })\n }\n }\n})\n</script>\n\n<style scoped>\nli {\n list-style: none;\n display: block;\n align-items: center;\n margin: 0;\n border-radius: 0;\n padding: 10px;\n cursor: pointer;\n overflow: hidden;\n}\nli:hover {\n background-color: #ccf2cf;\n}\nli:not(:last-child) {\n border-bottom: 1px solid lightblue;\n}\n\n.unviewed {\n font-weight: bold;\n}\n.date {\n float: right;\n color: lightslategrey;\n font-size: 0.9em;\n font-style: italic;\n}\n</style>\n","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\n\nexport default function startOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\n\nexport default function differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var startOfDayLeft = startOfDay(dirtyDateLeft);\n var startOfDayRight = startOfDay(dirtyDateRight);\n var timestampLeft = startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n var timestampRight = startOfDayRight.getTime() - getTimezoneOffsetInMilliseconds(startOfDayRight); // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\n\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || typeof value === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now `isValid` doesn't throw an exception\n * if the first argument is not an instance of Date.\n * Instead, argument is converted beforehand using `toDate`.\n *\n * Examples:\n *\n * | `isValid` argument | Before v2.0.0 | v2.0.0 onward |\n * |---------------------------|---------------|---------------|\n * | `new Date()` | `true` | `true` |\n * | `new Date('2016-01-01')` | `true` | `true` |\n * | `new Date('')` | `false` | `false` |\n * | `new Date(1488370835081)` | `true` | `true` |\n * | `new Date(NaN)` | `false` | `false` |\n * | `'2016-01-01'` | `TypeError` | `false` |\n * | `''` | `TypeError` | `false` |\n * | `1488370835081` | `TypeError` | `true` |\n * | `NaN` | `TypeError` | `false` |\n *\n * We introduce this change to make *date-fns* consistent with ECMAScript behavior\n * that try to coerce arguments to the expected type\n * (which is also the case with other *date-fns* functions).\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\n\nvar formatDistance = function (token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n};\n\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\n\nvar formatRelative = function (token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\n\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n\n return valuesArray[index];\n };\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n}; // Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\n\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nvar ordinalNumber = function (dirtyNumber, _options) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n};\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n\n return undefined;\n}","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, dirtyOptions);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);\n var year = getUTCWeekYear(dirtyDate, dirtyOptions);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, dirtyOptions);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n\n while (output.length < targetLength) {\n output = '0' + output;\n }\n\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n // Year\n y: function (date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function (date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function (date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function (date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n\n case 'aaa':\n return dayPeriodEnumValue;\n\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function (date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function (date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function (date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function (date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function (date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function (date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n } // Ordinal number\n\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function (date, token) {\n var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function (date, token, localize, options) {\n var week = getUTCWeek(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function (date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function (date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function (date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function (date, token, localize) {\n var hours = date.getUTCHours() % 12;\n\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function (date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function (date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n\n return lightFormatters.m(date, token);\n },\n // Second\n s: function (date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return 'Z';\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\n\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n\n if (minutes === 0) {\n return sign + String(hours);\n }\n\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n\n return formatTimezone(offset, dirtyDelimiter);\n}\n\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n\nexport default formatters;","function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n}\n\nfunction timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n}\n\nfunction dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n}\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n }\n}","import isValid from \"../isValid/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The second argument is now required for the sake of explicitness.\n *\n * ```javascript\n * // Before v2.0.0\n * format(new Date(2016, 0, 1))\n *\n * // v2.0.0 onward\n * format(new Date(2016, 0, 1), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n * ```\n *\n * - New format string API for `format` function\n * which is based on [Unicode Technical Standard #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table).\n * See [this post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.\n *\n * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * var result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, formatterOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = formatters[firstCharacter];\n\n if (formatter) {\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import differenceInCalendarDays from \"../differenceInCalendarDays/index.js\";\nimport format from \"../format/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n\n/**\n * @name formatRelative\n * @category Common Helpers\n * @summary Represent the date in words relative to the given base date.\n *\n * @description\n * Represent the date in words relative to the given base date.\n *\n * | Distance to the base date | Result |\n * |---------------------------|---------------------------|\n * | Previous 6 days | last Sunday at 04:30 AM |\n * | Last day | yesterday at 04:30 AM |\n * | Same day | today at 04:30 AM |\n * | Next day | tomorrow at 04:30 AM |\n * | Next 6 days | Sunday at 04:30 AM |\n * | Other | 12/31/2017 |\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to format\n * @param {Date|Number} baseDate - the date to compare with\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {String} the date in words\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `baseDate` must not be Invalid Date\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.locale` must contain `formatRelative` property\n *\n * @example\n * // Represent the date of 6 days ago in words relative to the given base date. In this example, today is Wednesday\n * const result = formatRelative(addDays(new Date(), -6), new Date())\n * //=> \"last Thursday at 12:45 AM\"\n */\nexport default function formatRelative(dirtyDate, dirtyBaseDate, dirtyOptions) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var baseDate = toDate(dirtyBaseDate);\n\n var _ref = dirtyOptions || {},\n _ref$locale = _ref.locale,\n locale = _ref$locale === void 0 ? defaultLocale : _ref$locale,\n _ref$weekStartsOn = _ref.weekStartsOn,\n weekStartsOn = _ref$weekStartsOn === void 0 ? 0 : _ref$weekStartsOn;\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n if (!locale.formatRelative) {\n throw new RangeError('locale must contain formatRelative property');\n }\n\n var diff = differenceInCalendarDays(date, baseDate);\n\n if (isNaN(diff)) {\n throw new RangeError('Invalid time value');\n }\n\n var token;\n\n if (diff < -6) {\n token = 'other';\n } else if (diff < -1) {\n token = 'lastWeek';\n } else if (diff < 0) {\n token = 'yesterday';\n } else if (diff < 1) {\n token = 'today';\n } else if (diff < 2) {\n token = 'tomorrow';\n } else if (diff < 7) {\n token = 'nextWeek';\n } else {\n token = 'other';\n }\n\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var utcBaseDate = subMilliseconds(baseDate, getTimezoneOffsetInMilliseconds(baseDate));\n var formatStr = locale.formatRelative(token, utcDate, utcBaseDate, {\n locale: locale,\n weekStartsOn: weekStartsOn\n });\n return format(date, formatStr, {\n locale: locale,\n weekStartsOn: weekStartsOn\n });\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'moins d’une seconde',\n other: 'moins de {{count}} secondes'\n },\n xSeconds: {\n one: '1 seconde',\n other: '{{count}} secondes'\n },\n halfAMinute: '30 secondes',\n lessThanXMinutes: {\n one: 'moins d’une minute',\n other: 'moins de {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'environ 1 heure',\n other: 'environ {{count}} heures'\n },\n xHours: {\n one: '1 heure',\n other: '{{count}} heures'\n },\n xDays: {\n one: '1 jour',\n other: '{{count}} jours'\n },\n aboutXWeeks: {\n one: 'environ 1 semaine',\n other: 'environ {{count}} semaines'\n },\n xWeeks: {\n one: '1 semaine',\n other: '{{count}} semaines'\n },\n aboutXMonths: {\n one: 'environ 1 mois',\n other: 'environ {{count}} mois'\n },\n xMonths: {\n one: '1 mois',\n other: '{{count}} mois'\n },\n aboutXYears: {\n one: 'environ 1 an',\n other: 'environ {{count}} ans'\n },\n xYears: {\n one: '1 an',\n other: '{{count}} ans'\n },\n overXYears: {\n one: 'plus d’un an',\n other: 'plus de {{count}} ans'\n },\n almostXYears: {\n one: 'presqu’un an',\n other: 'presque {{count}} ans'\n }\n};\n\nvar formatDistance = function (token, count, options) {\n var result;\n var form = formatDistanceLocale[token];\n\n if (typeof form === 'string') {\n result = form;\n } else if (count === 1) {\n result = form.one;\n } else {\n result = form.other.replace('{{count}}', String(count));\n }\n\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'dans ' + result;\n } else {\n return 'il y a ' + result;\n }\n }\n\n return result;\n};\n\nexport default formatDistance;","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE d MMMM y',\n long: 'd MMMM y',\n medium: 'd MMM y',\n short: 'dd/MM/y'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'à' {{time}}\",\n long: \"{{date}} 'à' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"eeee 'dernier à' p\",\n yesterday: \"'hier à' p\",\n today: \"'aujourd’hui à' p\",\n tomorrow: \"'demain à' p'\",\n nextWeek: \"eeee 'prochain à' p\",\n other: 'P'\n};\n\nvar formatRelative = function (token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\n\nexport default formatRelative;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['av. J.-C', 'ap. J.-C'],\n abbreviated: ['av. J.-C', 'ap. J.-C'],\n wide: ['avant Jésus-Christ', 'après Jésus-Christ']\n};\nvar quarterValues = {\n narrow: ['T1', 'T2', 'T3', 'T4'],\n abbreviated: ['1er trim.', '2ème trim.', '3ème trim.', '4ème trim.'],\n wide: ['1er trimestre', '2ème trimestre', '3ème trimestre', '4ème trimestre']\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'],\n wide: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']\n};\nvar dayValues = {\n narrow: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],\n short: ['di', 'lu', 'ma', 'me', 'je', 've', 'sa'],\n abbreviated: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'],\n wide: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'minuit',\n noon: 'midi',\n morning: 'mat.',\n afternoon: 'ap.m.',\n evening: 'soir',\n night: 'mat.'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'minuit',\n noon: 'midi',\n morning: 'matin',\n afternoon: 'après-midi',\n evening: 'soir',\n night: 'matin'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'minuit',\n noon: 'midi',\n morning: 'du matin',\n afternoon: 'de l’après-midi',\n evening: 'du soir',\n night: 'du matin'\n }\n};\n\nvar ordinalNumber = function (dirtyNumber, options) {\n var number = Number(dirtyNumber);\n var unit = options === null || options === void 0 ? void 0 : options.unit;\n if (number === 0) return '0';\n var feminineUnits = ['year', 'week', 'hour', 'minute', 'second'];\n var suffix;\n\n if (number === 1) {\n suffix = unit && feminineUnits.includes(unit) ? 'ère' : 'er';\n } else {\n suffix = 'ème';\n }\n\n return number + suffix;\n};\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide'\n })\n};\nexport default localize;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(ième|ère|ème|er|e)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(av\\.J\\.C|ap\\.J\\.C|ap\\.J\\.-C)/i,\n abbreviated: /^(av\\.J\\.-C|av\\.J-C|apr\\.J\\.-C|apr\\.J-C|ap\\.J-C)/i,\n wide: /^(avant Jésus-Christ|après Jésus-Christ)/i\n};\nvar parseEraPatterns = {\n any: [/^av/i, /^ap/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^T?[1234]/i,\n abbreviated: /^[1234](er|ème|e)? trim\\.?/i,\n wide: /^[1234](er|ème|e)? trimestre/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(janv|févr|mars|avr|mai|juin|juill|juil|août|sept|oct|nov|déc)\\.?/i,\n wide: /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^av/i, /^ma/i, /^juin/i, /^juil/i, /^ao/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[lmjvsd]/i,\n short: /^(di|lu|ma|me|je|ve|sa)/i,\n abbreviated: /^(dim|lun|mar|mer|jeu|ven|sam)\\.?/i,\n wide: /^(dimanche|lundi|mardi|mercredi|jeudi|vendredi|samedi)/i\n};\nvar parseDayPatterns = {\n narrow: [/^d/i, /^l/i, /^m/i, /^m/i, /^j/i, /^v/i, /^s/i],\n any: [/^di/i, /^lu/i, /^ma/i, /^me/i, /^je/i, /^ve/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|minuit|midi|mat\\.?|ap\\.?m\\.?|soir|nuit)/i,\n any: /^([ap]\\.?\\s?m\\.?|du matin|de l'après[-\\s]midi|du soir|de la nuit)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^min/i,\n noon: /^mid/i,\n morning: /mat/i,\n afternoon: /ap/i,\n evening: /soir/i,\n night: /nuit/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary French locale.\n * @language French\n * @iso-639-2 fra\n * @author Jean Dupouy [@izeau]{@link https://github.com/izeau}\n * @author François B [@fbonzon]{@link https://github.com/fbonzon}\n */\n\nvar locale = {\n code: 'fr',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","import { render } from \"./NotificationMessage.vue?vue&type=template&id=fa1f8db4&scoped=true&ts=true\"\nimport script from \"./NotificationMessage.vue?vue&type=script&lang=ts\"\nexport * from \"./NotificationMessage.vue?vue&type=script&lang=ts\"\n\nimport \"./NotificationMessage.vue?vue&type=style&index=0&id=fa1f8db4&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-fa1f8db4\"]])\n\nexport default __exports__","import { render } from \"./NotificationsBell.vue?vue&type=template&id=4610efbd&scoped=true&ts=true\"\nimport script from \"./NotificationsBell.vue?vue&type=script&lang=ts\"\nexport * from \"./NotificationsBell.vue?vue&type=script&lang=ts\"\n\nimport \"./NotificationsBell.vue?vue&type=style&index=0&id=4610efbd&scoped=true&lang=css\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4610efbd\"]])\n\nexport default __exports__","export enum PlayerState {\n UNSTARTED = 'UNSTARTED',\n ENDED = 'ENDED',\n PLAYING = 'PLAYING',\n PAUSE = 'PAUSE',\n BUFFERING = 'BUFFERING',\n READY = 'READY', // ready to be played after buffering\n LOADING = 'LOADING',\n LOADED = 'LOADED',\n }","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : String(i);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","const ENABLE_DEBUG = true;\nexport const Logger = {\n debug: (...args: unknown[]) => {\n if (!ENABLE_DEBUG) return;\n console.debug(...args);\n },\n error: (...args: unknown[]) => {\n console.error(...args);\n }\n};","import { PlayerState } from './constants';\nimport { MultiVideoPlayer, VideoPlayerOptions } from './main';\nimport { Logger } from \"./utils\";\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = () => { };\nclass VideoPlayer {\n public videoId: string;\n public videoPlayerConfig: VideoPlayerOptions;\n // video js player\n public videojs: any;\n private player: MultiVideoPlayer;\n public controls: boolean;\n public main: boolean;\n public sound: boolean;\n public canWait: boolean;\n public videoPlayerArea: Element | null;\n // public videoElement: HTMLVideoElement | null;\n public videoState: PlayerState;\n private readonly _startSeconds: number;\n private readonly loop: boolean;\n public isPlaying: boolean;\n constructor(player: MultiVideoPlayer, videoPlayerConfig: VideoPlayerOptions) {\n this.videoId = Math.random().toString(36).substring(2, 15);\n this.player = player;\n this.videoPlayerConfig = videoPlayerConfig;\n this.main = this.videoPlayerConfig.main ?? false;\n this.sound = this.videoPlayerConfig.sound ?? false;\n this.canWait = true;\n this.controls = this.videoPlayerConfig.controls ?? player.options.controls ?? true;\n this.loop = player.options.loop ?? false;\n\n this._startSeconds = parseFloat(String(this.videoPlayerConfig.startSeconds ?? 0));\n\n this.videoPlayerArea = null;\n // this.videoElement = null;\n this.videoState = PlayerState.LOADING;\n this.isPlaying = false;\n\n this.mount();\n }\n\n private mount() {\n this.render();\n // this.videoElementId = document.querySelector(`#video_player_${this.videoId} video`);\n // console.log(this.videoElement)\n\n if (!this.videoElement) {\n return Logger.debug('video element not found');\n }\n\n // if we do not setTimeout here, controls act weirdly (no explanation...)\n setTimeout(() => {\n this.setupVideoElement({ controls: this.controls, main: this.main });\n }, 1);\n\n // this.videojs.on('volumechange', (e: any) => {\n // console.log(e)\n // // find the videos with the sound on\n // const videos = this.player.videoPlayers.filter(v => v.sound)\n\n // console.log(\"volume change\", this.player.videoPlayers[0].videojs!.volume())\n // console.log(this.player.videoPlayers[0])\n // // console.log(\"change volume of \", videos)\n // // this.player.videoPlayers[0].videojs!.volume(0)\n // for (const video of videos) {\n // video.videojs!.volume(this.player.videoPlayers[0].videojs!.volume())\n // // this.videojs.volume(this.player.videoPlayers[0].videojs!.volume())\n // }\n // e.preventDefault()\n // e.stopPropagation()\n\n // })\n window.addEventListener(\"unhandledrejection\", (event) => {\n if (event.reason?.name === \"AbortError\" || event.reason?.message.includes(\"The play() request was interrupted\")) {\n console.warn(\"❌❌❌❌❌❌❌❌The play() request was interrupted❌❌❌❌❌❌❌❌❌❌\");\n\n event.preventDefault();\n event.stopPropagation();\n }\n });\n\n document.addEventListener(\"fullscreenchange\", () => {\n const videoElement = document.querySelector('video');\n if (!document.fullscreenElement) {\n if (videoElement) {\n videoElement.style.height = \"100%\";\n videoElement.style.width = \"100%\";\n }\n }\n // else{\n // if(videoElement)\n // {\n // videoElement.style.height = \"100vh\";\n // videoElement.style.width = \"100%\";\n // }\n // }\n\n });\n\n this.videojs.on('ratechange', () => {\n const newRate = this.videojs.playbackRate();\n console.log(`Playback rate changed to: ${newRate}`);\n \n // Apply the new speed to all other videos\n this.player.videoPlayers.forEach(video => {\n if (video.videojs && video.videojs.playbackRate() !== newRate) {\n video.videojs.playbackRate(newRate);\n console.log(`Updated video ${video.videoId} to speed ${newRate}`);\n }\n });\n });\n \n\n this.videojs.on('loadeddata', this.onReady.bind(this))\n this.videojs.on('timeupdate', this.onTimeUpdate.bind(this))\n this.videojs.on('seeking', this.onSeeking.bind(this))\n this.videojs.on('ended', this.onStateChange.bind(this, PlayerState.ENDED))\n\n this.videojs.on('play', () => {\n this.syncTime();\n if (!this.isPlaying && this.player.state !== PlayerState.BUFFERING) {\n this.onStateChange(PlayerState.PLAYING);\n }\n });\n\n this.videojs.on('pause', () => {\n\n if (this.isPlaying) {\n this.onStateChange(PlayerState.PAUSE);\n }\n });\n // this.videojs.on('waiting', () => {\n // // console.log(\"WAITING FOR BUFFERING\", this.videoState, e)\n // // if(this.isPlaying)\n\n // this.onStateChange(PlayerState.BUFFERING)\n // })\n this.videojs.on('canplay', () => {\n this.syncTime();\n if (this.player.state === PlayerState.PAUSE) return;\n\n\n // debugger;\n if (![PlayerState.LOADING, PlayerState.LOADED].includes(this.player.state as PlayerState)) {\n this.onStateChange(PlayerState.READY)\n }\n this.canWait = false\n setTimeout(() => {\n this.canWait = true\n\n }, 1000)\n })\n\n this.videojs.on('waiting', () => {\n if (!this.canWait)\n return\n if (this.videoElement!.readyState === 4)\n return\n console.log(\"BUFFERING...\", this.videoElement!.readyState)\n if (![PlayerState.LOADING, PlayerState.LOADED].includes(this.player.state as PlayerState)) {\n if (!this.isPlaying) {\n this.onStateChange(PlayerState.BUFFERING)\n }\n }\n })\n\n // this.videojs.on('progress', (e:any) => {\n // console.log('progress')\n // console.log(e)\n // this.onStateChange.bind(this, PlayerState.PLAYING)\n // })\n\n\n // this.videoElement.addEventListener('play', this.onStateChange.bind(this, PlayerState.PLAYING), false);\n // this.videoElement.addEventListener('pause', this.onStateChange.bind(this, PlayerState.PAUSE), false);\n // this.videoElement.addEventListener('seeking', this.onSeeking.bind(this), false);\n // this.videoElement.addEventListener('timeupdate', this.onTimeUpdate.bind(this), false);\n // this.videoElement.addEventListener('loadeddata', this.onReady.bind(this), false);\n // this.videoElement.addEventListener('canplaythrough', this.onStateChange.bind(this, PlayerState.UNSTARTED), false);\n\n // this.videoElement.addEventListener('ended', this.onStateChange.bind(this, PlayerState.ENDED), false);\n // this.videoElement.addEventListener('waiting', this.onStateChange.bind(this, PlayerState.BUFFERING), false);\n }\n\n public syncTime() {\n const mainVideo = this.player.videoPlayers.find(v => v.main);\n const syncLoop = () => {\n if (this.main) {\n // Sync all other videos with the main one\n this.player.videoPlayers.forEach(video => {\n if (!video.main && video.videojs) {\n const videoCurrentTime = video.videojs.currentTime();\n const mainCurrentTime = this.videojs.currentTime();\n if (Math.abs(mainCurrentTime - videoCurrentTime) > 0.2) {\n video.videojs.currentTime(mainCurrentTime);\n console.log(`🔄 Synced video ${video.videoId} to ${mainCurrentTime}s`);\n }\n }\n });\n } else if (mainVideo && mainVideo.videojs) {\n const mainCurrentTime = mainVideo.videojs.currentTime();\n const thisCurrentTime = this.videojs.currentTime();\n \n if (Math.abs(mainCurrentTime - thisCurrentTime) > 0.2) {\n this.videojs.currentTime(mainCurrentTime);\n console.log(`🔄 Synced video ${this.videoId} to ${mainCurrentTime}s`);\n }\n }\n };\n \n requestAnimationFrame(syncLoop);\n }\n \n\n get videoElement(): HTMLVideoElement | null {\n return document.querySelector(`#video_player_${this.videoId} video`) as HTMLVideoElement\n }\n\n private onReady() {\n Logger.debug(this.videoId, '::[onReady]');\n this.timeTo(0);\n this.player.onReady();\n }\n\n private onSeeking() {\n Logger.debug(this.videoId, '::[onSeeking]');\n if (!this.main) {\n return;\n }\n // this.player.onTimeUpdate(this, this.getPlayedTime());\n requestAnimationFrame(() => {\n this.syncTime();\n });\n }\n\n private onTimeUpdate() {\n if (!this.main) {\n return;\n }\n requestAnimationFrame(() => {\n this.syncTime();\n });\n }\n\n private onStateChange(state: PlayerState) {\n Logger.debug(this.videoId, '::[onStateChange]', state);\n this.videoState = state;\n\n const statesToPropagate = [\n PlayerState.BUFFERING,\n PlayerState.READY,\n PlayerState.PLAYING,\n PlayerState.PAUSE,\n PlayerState.ENDED,\n PlayerState.UNSTARTED,\n ];\n if (state === PlayerState.PLAYING) {\n this.isPlaying = true;\n\n if (!this.main) {\n return;\n }\n }\n\n if (state === PlayerState.PAUSE) {\n this.isPlaying = false;\n if (!this.main) {\n return;\n }\n }\n\n if (state === PlayerState.BUFFERING) {\n this.isPlaying = false;\n }\n\n if (statesToPropagate.includes(state)) {\n this.player.changeState(state, this);\n }\n }\n\n private render() {\n // if video area is defined, add video to area\n this.videoPlayerArea = document.querySelector(this.videoPlayerConfig.id);\n if (!this.videoPlayerArea) {\n return Logger.debug('id not found: ', this.videoPlayerConfig.id);\n }\n this.videoPlayerArea.innerHTML = `\n <video \n id=\"video_player_${this.videoId}\"\n class=\"video-js vjs-theme-fantasy\"\n controls\n preload=\"auto\"\n data-setup='{\"playbackRates\": [1, 1.25, 1.5, 2]}'\n style=\"width:100%;height:100%;\"\n >\n <source src=\"${this.videoPlayerConfig.initialSrc}\" type=\"video/mp4\" />\n <p class=\"vjs-no-js\">\n To view this video please enable JavaScript, and consider upgrading to a\n web browser that\n <a href=\"https://videojs.com/html5-video-support/\" target=\"_blank\"\n >supports HTML5 video</a\n >\n </p>\n </video>\n `;\n // console.log(\"test\")\n this.videojs = window.videojs(`video_player_${this.videoId}`, {\n userActions: {\n doubleClick: false\n },\n controlBar: {\n // 'pictureInPictureToggle': false,\n volumePanel: this.sound,\n fullscreenToggle: false,\n // playbackRateMenuButton: false\n\n }\n });\n this.videojs.controls(true)\n this.videojs.muted(!this.sound)\n this._createFullscreenButton()\n // console.log(player);\n }\n\n private setupVideoElement(options: { controls?: boolean, main: boolean }) {\n if (options.controls !== undefined)\n this.setControls(options.controls);\n this.setMain(options.main);\n }\n\n public _swap(videoPlayer: VideoPlayer) {\n if (!this.videoElement || !videoPlayer.videoElement) return;\n\n const animateSwap = () => {\n if (window.innerHeight > window.innerWidth) {\n // Portrait mode\n this.videoElement!.style.height = \"100%\";\n videoPlayer.videoElement!.style.height = \"100%\";\n } else {\n if (window.document.fullscreenElement) {\n this.videoElement!.style.height = \"100%\";\n videoPlayer.videoElement!.style.height = \"100vh\";\n } else {\n this.videoElement!.style.height = \"100%\";\n videoPlayer.videoElement!.style.height = \"100%\";\n }\n }\n };\n\n requestAnimationFrame(animateSwap);\n\n const nodeA = this.videoElement.parentElement;\n const nodeB = videoPlayer.videoElement.parentElement;\n // console.log(this.videoElement.attr('id'))\n // const nodeA = document.getElementById(this.videoElement.id)?.parentElement\n // const nodeB = document.getElementById(videoPlayer.videoElement.id)?.parentElement\n // console.log(videoInDom)\n // debugger\n const parentA = nodeA!.parentNode;\n const parentB = nodeB!.parentNode;\n\n\n // const newvideojs = videoPlayer.videojs;\n // videoPlayer.videojs = this.videojs;\n // this.videojs = newvideojs;\n\n if (!parentA || !parentB) throw new Error('Parent node not found');\n\n const siblingA = nodeA!.nextSibling === nodeB ? nodeA : nodeA!.nextSibling;\n parentB.insertBefore(nodeA!, nodeB!);\n parentA.insertBefore(nodeB!, siblingA!);\n\n const thisControls = this.controls;\n const thisMain = this.main;\n\n\n this.setupVideoElement({ controls: videoPlayer.controls, main: videoPlayer.main });\n videoPlayer.setupVideoElement({ controls: thisControls, main: thisMain });\n\n\n // this.videojs.dispose();\n // videoPlayer.videojs.dispose();\n // this.videojs = videojs(`video_player_${this.videoId}`);\n // videoPlayer.videojs = videojs(`video_player_${videoPlayer.videoId}`);\n }\n\n /**\n * -------------------------------\n * PUBLIC METHODS FOR VIDEO PLAYER\n * -------------------------------\n */\n\n public async play() {\n if (!this.videoElement) return;\n if (this.videoState === PlayerState.PLAYING || this.videoState === PlayerState.BUFFERING) return;\n const isPlaying = this.videoElement.currentTime > 0 && !this.videoElement.paused && !this.videoElement.ended && this.videoElement.readyState > this.videoElement.HAVE_CURRENT_DATA;\n if (isPlaying) {\n console.log(\"already playing\")\n return\n }\n\n // debugger;\n // const video = document.getElementById(this.videoElement.id)\n // await video!.play()\n await this.videoElement.play().then(() => {\n console.log(\"Playback started!\");\n })\n .catch(error => {\n console.warn(\"Playback failed:\", error);\n });;\n\n\n }\n\n public pause() {\n if (!this.videoElement) return;\n if (this.videoState === PlayerState.PAUSE) return;\n if (!this.isPlaying) return;\n try {\n this.videoElement.pause();\n }\n catch (error) {\n console.log(error)\n }\n }\n\n public stop() {\n if (!this.videoElement) return;\n try {\n this.videoElement.pause();\n this.timeTo(this.getDuration() - 0.5);\n }\n catch (error) {\n console.log(error)\n }\n }\n\n public setControls(controls: boolean) {\n if (!this.videoElement) return;\n this.videojs.controls(controls)\n // this.videojs.player.userActive(false)\n // this.videoElement.controls = controls;\n this.controls = controls;\n }\n\n public setMain(main: boolean) {\n this.main = main;\n }\n\n public timeTo(time: number) {\n if (!this.videoElement) return;\n time = parseFloat(time.toString());\n time = (time + this._startSeconds);\n\n if (time >= this.getDuration()) {\n this.videoElement.currentTime = this.getDuration() - 0.05;\n Logger.debug('timeTo: time is greater than duration');\n this.pause();\n return;\n }\n\n Logger.debug('set time to: ', time);\n this.videoElement.currentTime = time;\n }\n\n public getDuration() {\n return (this.videoElement?.duration || 0);\n }\n\n public getPlayLength() {\n return this.getDuration() - this._startSeconds;\n }\n\n public getCurrentTime() {\n return (this.videoElement?.currentTime || 0);\n }\n\n public getPlayedTime() {\n const time = this.getCurrentTime() - this._startSeconds;\n return Math.max(time, 0);\n }\n\n public isEnded() {\n const diff = Math.abs(this.getCurrentTime() - this.getDuration());\n return diff < 0.1;\n\n }\n\n private _createFullscreenButton() {\n const fullscreenButton = this.videojs?.controlBar.addChild('button', {\n clickHandler: function () {\n const doc = window.document;\n const videoElement = document.querySelector('video');\n\n if (!doc.fullscreenElement) {\n // Request fullscreen for the video container\n const videoContainer = document.getElementById(\"fullscreen-part\");\n\n videoContainer?.requestFullscreen().then(() => {\n if (videoElement) {\n videoElement.style.height = '100vh';\n videoElement.style.width = '100%';\n }\n screen.orientation.lock(\"landscape\").catch((error: any) => {\n console.error(\"Error locking orientation:\", error);\n });\n });\n\n }\n else {\n // Exit fullscreen and reset video styles\n document.exitFullscreen().then(() => {\n if (videoElement) {\n videoElement.style.height = '100%';\n videoElement.style.width = '100%';\n }\n });\n // Unlock the orientation when exiting fullscreen\n screen.orientation.unlock();\n }\n }\n });\n\n fullscreenButton.controlText('Fullscreen');\n\n this.videojs?.controlBar.el().appendChild(fullscreenButton.el());\n const buttonDom = fullscreenButton.el();\n buttonDom.innerHTML = `<span aria-hidden=\"true\" class=\"vjs-icon-placeholder\"></span><span class=\"vjs-control-text\" aria-live=\"polite\">Fullscreen</span>`;\n buttonDom.classList.add('vjs-fullscreen-control');\n }\n\n\n\n}\n\nexport default VideoPlayer;","import { fi } from 'date-fns/locale';\nimport { PlayerState } from './constants';\nimport { MultiVideoPlayerOptions, VideoPlayerOptions } from './main';\nimport { Logger } from \"./utils\";\nimport VideoPlayer from './VideoPlayer';\n\nconst validStates = {\n [PlayerState.LOADING]: [PlayerState.LOADED],\n [PlayerState.LOADED]: [PlayerState.PLAYING],\n [PlayerState.PLAYING]: [PlayerState.PAUSE, PlayerState.ENDED, PlayerState.BUFFERING],\n [PlayerState.PAUSE]: [PlayerState.PLAYING, PlayerState.ENDED],\n [PlayerState.ENDED]: [PlayerState.PLAYING],\n\n [PlayerState.BUFFERING]: [PlayerState.READY, PlayerState.PAUSE, PlayerState.PLAYING],\n [PlayerState.READY]: [PlayerState.PLAYING],\n [PlayerState.UNSTARTED]: [],\n};\n\nconst isValidState = (currentState: PlayerState, nextState: PlayerState) => {\n const stateOuts: PlayerState[] = validStates[currentState];\n if (!stateOuts) {\n return false;\n }\n\n return stateOuts.includes(nextState);\n};\n\n\nclass SyncVideoPlayer {\n public options: MultiVideoPlayerOptions;\n public $container: Element | null;\n public videoPlayers: VideoPlayer[] = [];\n public state: PlayerState;\n private readyCount: number;\n private currentTime: number;\n\n constructor(options: MultiVideoPlayerOptions) {\n this.options = {\n controls: options.controls ?? true,\n loop: options.loop ?? false,\n area: options.area || '',\n videoPlayers: options.videoPlayers || [],\n template: '<div id=\"sync_video_player_container\"></div>'\n };\n\n this.state = PlayerState.LOADING;\n this.readyCount = 0;\n\n this.$container = null;\n\n this.videoPlayers = [];\n this.currentTime = 0;\n }\n\n public getDebugInfo() {\n return {\n state: this.state,\n currentTime: this.currentTime,\n videoPlayers: this.videoPlayers.map(vp => {\n return {\n id: vp.videoId,\n state: vp.videoState,\n currentTime: vp.getCurrentTime(),\n duration: vp.getDuration,\n isMain: vp.main,\n isPlaying: vp.isPlaying,\n };\n }),\n };\n }\n\n public mount() {\n this.render();\n this.addVideoPlayers(this.options.videoPlayers);\n }\n\n private render() {\n const { template, area } = this.options;\n if (!area) {\n return;\n }\n const areaEl = document.querySelector(area);\n if (!areaEl) {\n return Logger.error('area not found: ', area);\n }\n\n areaEl.innerHTML = template || '';\n this.$container = document.querySelector('#sync_video_player_container');\n }\n\n public async changeState(state: PlayerState, videoPlayer: VideoPlayer) {\n const mainVideoPlayer = this.videoPlayers.find((vp) => vp.main);\n\n if (state === PlayerState.BUFFERING) {\n if (mainVideoPlayer && mainVideoPlayer === videoPlayer) {\n return this.pause();\n }\n return;\n }\n\n if (state === PlayerState.PLAYING) {\n \n if (this.state !== PlayerState.BUFFERING) {\n return await this.play();\n }\n return;\n }\n\n if (state === PlayerState.PAUSE) {\n if (videoPlayer.isEnded()) {\n return;\n }\n return this.pause(true);\n }\n\n if (state === PlayerState.ENDED) {\n if (mainVideoPlayer && mainVideoPlayer !== videoPlayer) {\n return;\n }\n await this.moveStateTo(PlayerState.ENDED, () => {\n if (this.options.loop) {\n return this.timeTo(0);\n }\n });\n }\n\n if (state === PlayerState.READY) {\n const allReady = this.videoPlayers.every((vp) =>\n [PlayerState.READY, PlayerState.PLAYING, PlayerState.PAUSE].includes(vp.videoState)\n );\n\n if (allReady) {\n return await this.play();\n }\n }\n\n if (state === PlayerState.UNSTARTED) {\n if (this.state === PlayerState.ENDED && this.options.loop) {\n console.log(\"changeState - UNSTARTED - call : this.play()\");\n return await this.play();\n }\n }\n}\n\n\n private async moveStateTo(state: PlayerState, success?: (newState: PlayerState, oldState: PlayerState) => void, fail?: (newState: PlayerState, oldState: PlayerState) => void) {\n if (state === this.state) return;\n if (isValidState(this.state, state)) {\n const oldState = this.state;\n this.state = state;\n if (success) {\n await success(this.state, oldState);\n }\n Logger.debug('state changed to: ', state);\n } else {\n if (fail) {\n await fail(this.state, state);\n }\n Logger.error('invalid state change: ', this.state, state);\n }\n }\n\n public async onReady() {\n this.readyCount++;\n if (this.readyCount !== this.videoPlayers.length) return;\n await this.moveStateTo(PlayerState.LOADED);\n }\n\n public onTimeUpdate(videoPlayer: VideoPlayer, time: number) {\n const diff = Math.abs(this.currentTime - time);\n if (diff >= 0.2) {\n this.timeTo(time);\n }\n this.currentTime = time;\n this.fixVideoStates();\n }\n\n private fixVideoStates() {\n const mainVideoPlayer = this.videoPlayers.find((vp) => vp.main);\n if (!mainVideoPlayer) return;\n\n this.videoPlayers.forEach(async vp => {\n if (vp === mainVideoPlayer || vp.isEnded()) return;\n if (mainVideoPlayer.isPlaying && !vp.isPlaying) {\n await vp.play();\n } else if (!mainVideoPlayer.isPlaying && vp.isPlaying) {\n await vp.pause();\n }\n });\n }\n\n\n /**\n * ------------------------------\n * Public methods\n * ------------------------------\n */\n\n public addVideoPlayers(videoPlayers: VideoPlayerOptions[] | undefined) {\n if (!videoPlayers) return;\n\n videoPlayers.forEach(videoPlayer => {\n this.addVideoPlayer(videoPlayer);\n });\n }\n\n public addVideoPlayer(videoPlayer: VideoPlayerOptions) {\n const videoInstance = new VideoPlayer(this, videoPlayer);\n if (!videoInstance.videoElement) return;\n this.videoPlayers.push(videoInstance);\n }\n\n public async play() {\n await this.moveStateTo(PlayerState.PLAYING, async () => {\n // this.timeTo(this.currentTime);\n await Promise.all(\n this.videoPlayers.map(async (video) => {\n if (this.currentTime < video.getPlayLength()) {\n await video.play();\n }\n })\n );\n });\n }\n\n public pause(excludeMain?: boolean) {\n this.moveStateTo(PlayerState.PAUSE, () => {\n this.videoPlayers.forEach((video) => {\n video.pause();\n });\n });\n}\n\n public async stop() {\n await this.moveStateTo(PlayerState.PAUSE, async () => {\n await Promise.all(this.videoPlayers.map(async video => {\n await video.stop();\n }));\n });\n }\n\n public async timeTo(time: number) {\n this.currentTime = time;\n this.videoPlayers.forEach(async video => {\n await video.timeTo(time);\n });\n }\n\n public swapVideo(index1: number, index2: number) {\n if (index1 === index2) return;\n this.videoPlayers[index1]._swap(this.videoPlayers[index2]);\n const tmp = this.videoPlayers[index1];\n this.videoPlayers[index1] = this.videoPlayers[index2];\n this.videoPlayers[index2] = tmp;\n }\n}\n\nexport default SyncVideoPlayer;","import { defineComponent as _defineComponent } from 'vue'\nimport { openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, withModifiers as _withModifiers, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode } from \"vue\"\n\nconst _hoisted_1 = {\n class: \"container\",\n id: \"fullscreen-part\"\n}\nconst _hoisted_2 = { id: \"main-video\" }\nconst _hoisted_3 = { id: \"thumbnails-videos\" }\nconst _hoisted_4 = [\"id\", \"onClick\", \"onTouchend\"]\nconst _hoisted_5 = { class: \"controls\" }\nconst _hoisted_6 = { class: \"time\" }\n\nimport { onMounted, nextTick, ref } from \"vue\"\n\nimport SyncVideoPlayer from \"./SyncVideoPlayer\"\nimport { PlayerState } from './constants';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'VideoComponent',\n setup(__props) {\n\nconst multivideos = (window as any).multivideos\nconsole.log(multivideos)\n\nconst syncVideoPlayer = new SyncVideoPlayer({\n controls: false,\n loop: false,\n videoPlayers: multivideos || []\n})\n\n\n// build a list of video ids equal to multivideos length\nconst ids = ref(Array.from({ length: multivideos.length }, (_, i) => `video-${i}`))\nconst debugInfo = ref({})\n\nvar count = 0;\n\nonMounted(() => {\n syncVideoPlayer.mount();\n\n setInterval(() => {\n debugInfo.value = syncVideoPlayer.getDebugInfo();\n }, 50);\n\n // const videoElement = document.querySelector(\"#video-0 video\");\n // console.log(\"✅✅✅✅✅ videoElement = \", videoElement)\n // videoElement.addEventListener('play', (event) => {\n // count = count + 1;\n // try{\n // console.log(\"✅✅✅✅✅ 778999454555555555\", count)\n // syncVideoPlayer.play();\n // console.log(\"✅✅✅✅✅ 778999454555555555\")\n // }\n // catch(error){\n // console.log(error)\n // }\n // });\n\n // videoElement.addEventListener('pause', (event) => {\n // try{\n // syncVideoPlayer.pause();\n // }\n // catch(error){\n // console.log(error)\n // }\n // });\n \n\n // const buttonTest = document.querySelector('.vjs-play-control');\n // if (buttonTest) {\n // buttonTest.addEventListener('click', (event) => {\n // event.preventDefault();\n // event.stopPropagation(); \n // if(buttonTest.classList.contains('vjs-paused'))\n // {\n // console.log(\"✅✅✅✅✅ Play ✅✅✅✅✅\")\n // }\n // else {\n // console.log(\"✅✅✅✅✅ Pause ✅✅✅✅✅\")\n // }\n // });\n // }\n\n})\n\n\n// function resizeVideoContainers() {\n// /** resize video containers so it fits a 2/3 - 1/3 */\n\n// console.log(\"resizeVideoContainers\")\n// const mainVideoContainer = document.getElementById(\"main-video\")\n// const mainVideoHeight = mainVideoContainer?.clientHeight\n// // set height to thumbnails list\n// const thumbnailsVideos = document.getElementById(\"thumbnails-videos\")\n// // check if window size is less than 1280px (thumbnails wraps below in this case)\n// let thumbnailsVideoHeight = mainVideoHeight\n// if (window.innerWidth < 1280) {\n// thumbnailsVideoHeight = mainVideoHeight / 2\n\n// }\n// console.log(thumbnailsVideos, thumbnailsVideoHeight)\n\n// thumbnailsVideos!.style.height = `${thumbnailsVideoHeight}px`\n// }\n\n\nasync function onPlay() {\n await syncVideoPlayer.play()\n}\n\nasync function onPause() {\n await syncVideoPlayer.pause()\n}\n\nfunction onAdd() {\n // create area for video1\n const id = `video-${Math.random().toString(36).substring(2, 9)}`\n ids.value.push(id)\n nextTick(() => {\n // add video\n syncVideoPlayer.addVideoPlayer({\n id: `#${id}`,\n initialSrc:\n \"https://static.videezy.com/system/resources/previews/000/004/294/original/18_20Dragon_20Coaster_20Part_202.mp4\"\n })\n })\n}\n\nfunction onFullscreen() {\n document.getElementById(\"multivideo\")!.requestFullscreen()\n}\n\nasync function onClick(index: number) {\n syncVideoPlayer.swapVideo(0, index)\n}\n\nasync function onChange(e: Event) {\n const value = (e.target as HTMLInputElement).value\n await syncVideoPlayer.timeTo(parseFloat(value))\n}\n\n\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_openBlock(), _createElementBlock(\"div\", {\n class: \"box\",\n id: \"video-0\",\n key: 0,\n onClick: _cache[0] || (_cache[0] = ($event: any) => (onClick(0))),\n onTouchend: _cache[1] || (_cache[1] = ($event: any) => (onClick(0)))\n }, null, 32))\n ]),\n _createElementVNode(\"div\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(ids.value.slice(1), (id, i) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"box\",\n id: id,\n key: i + 1,\n onClick: _withModifiers(($event: any) => (onClick(i + 1)), [\"prevent\"]),\n onTouchend: _withModifiers(($event: any) => (onClick(i + 1)), [\"prevent\"])\n }, null, 40, _hoisted_4))\n }), 128))\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _createTextVNode(\" MAIN STATE = \" + _toDisplayString(debugInfo.value.state) + \" \", 1),\n _createElementVNode(\"ul\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(debugInfo.value.videoPlayers, (player) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: player.id\n }, _toDisplayString(player.id) + \" - \" + _toDisplayString(player.state), 1))\n }), 128))\n ]),\n _createElementVNode(\"button\", { onClick: onAdd }, \"Add video\"),\n _createElementVNode(\"button\", { onClick: onPlay }, \"Play\"),\n _createElementVNode(\"button\", { onClick: onPause }, \"Pause\"),\n _createElementVNode(\"button\", { onClick: onFullscreen }, \"fullscreen\"),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"input\", {\n type: \"range\",\n min: \"0\",\n max: \"100\",\n value: \"0\",\n class: \"slider\",\n id: \"myRange\",\n onInput: onChange\n }, null, 32)\n ])\n ])\n ]))\n}\n}\n\n})","<script setup lang=\"ts\">\nimport { onMounted, nextTick, ref } from \"vue\"\n\nimport SyncVideoPlayer from \"./SyncVideoPlayer\"\nimport { PlayerState } from './constants';\n\nconst multivideos = (window as any).multivideos\nconsole.log(multivideos)\n\nconst syncVideoPlayer = new SyncVideoPlayer({\n controls: false,\n loop: false,\n videoPlayers: multivideos || []\n})\n\n\n// build a list of video ids equal to multivideos length\nconst ids = ref(Array.from({ length: multivideos.length }, (_, i) => `video-${i}`))\nconst debugInfo = ref({})\n\nvar count = 0;\n\nonMounted(() => {\n syncVideoPlayer.mount();\n\n setInterval(() => {\n debugInfo.value = syncVideoPlayer.getDebugInfo();\n }, 50);\n\n // const videoElement = document.querySelector(\"#video-0 video\");\n // console.log(\"✅✅✅✅✅ videoElement = \", videoElement)\n // videoElement.addEventListener('play', (event) => {\n // count = count + 1;\n // try{\n // console.log(\"✅✅✅✅✅ 778999454555555555\", count)\n // syncVideoPlayer.play();\n // console.log(\"✅✅✅✅✅ 778999454555555555\")\n // }\n // catch(error){\n // console.log(error)\n // }\n // });\n\n // videoElement.addEventListener('pause', (event) => {\n // try{\n // syncVideoPlayer.pause();\n // }\n // catch(error){\n // console.log(error)\n // }\n // });\n \n\n // const buttonTest = document.querySelector('.vjs-play-control');\n // if (buttonTest) {\n // buttonTest.addEventListener('click', (event) => {\n // event.preventDefault();\n // event.stopPropagation(); \n // if(buttonTest.classList.contains('vjs-paused'))\n // {\n // console.log(\"✅✅✅✅✅ Play ✅✅✅✅✅\")\n // }\n // else {\n // console.log(\"✅✅✅✅✅ Pause ✅✅✅✅✅\")\n // }\n // });\n // }\n\n})\n\n\n// function resizeVideoContainers() {\n// /** resize video containers so it fits a 2/3 - 1/3 */\n\n// console.log(\"resizeVideoContainers\")\n// const mainVideoContainer = document.getElementById(\"main-video\")\n// const mainVideoHeight = mainVideoContainer?.clientHeight\n// // set height to thumbnails list\n// const thumbnailsVideos = document.getElementById(\"thumbnails-videos\")\n// // check if window size is less than 1280px (thumbnails wraps below in this case)\n// let thumbnailsVideoHeight = mainVideoHeight\n// if (window.innerWidth < 1280) {\n// thumbnailsVideoHeight = mainVideoHeight / 2\n\n// }\n// console.log(thumbnailsVideos, thumbnailsVideoHeight)\n\n// thumbnailsVideos!.style.height = `${thumbnailsVideoHeight}px`\n// }\n\n\nasync function onPlay() {\n await syncVideoPlayer.play()\n}\n\nasync function onPause() {\n await syncVideoPlayer.pause()\n}\n\nfunction onAdd() {\n // create area for video1\n const id = `video-${Math.random().toString(36).substring(2, 9)}`\n ids.value.push(id)\n nextTick(() => {\n // add video\n syncVideoPlayer.addVideoPlayer({\n id: `#${id}`,\n initialSrc:\n \"https://static.videezy.com/system/resources/previews/000/004/294/original/18_20Dragon_20Coaster_20Part_202.mp4\"\n })\n })\n}\n\nfunction onFullscreen() {\n document.getElementById(\"multivideo\")!.requestFullscreen()\n}\n\nasync function onClick(index: number) {\n syncVideoPlayer.swapVideo(0, index)\n}\n\nasync function onChange(e: Event) {\n const value = (e.target as HTMLInputElement).value\n await syncVideoPlayer.timeTo(parseFloat(value))\n}\n\n\n</script>\n\n<template>\n <div>\n <div>\n <div class=\"container\" id=\"fullscreen-part\">\n <div id=\"main-video\">\n <div class=\"box\" id=\"video-0\" :key=\"0\" @click=\"onClick(0)\" @touchend=\"onClick(0)\"></div>\n </div>\n <div id=\"thumbnails-videos\">\n <div v-for=\"(id, i) in ids.slice(1)\" class=\"box\" :id=\"id\" :key=\"i + 1\" @click.prevent=\"onClick(i + 1)\"\n @touchend.prevent=\"onClick(i + 1)\"></div>\n </div>\n </div>\n </div>\n\n <div class=\"controls\">\n MAIN STATE = {{ debugInfo.state }}\n <ul>\n <li v-for=\"player in debugInfo.videoPlayers\" :key=\"player.id\">\n {{ player.id }} - {{ player.state }}\n </li>\n </ul>\n\n <button @click=\"onAdd\">Add video</button>\n <button @click=\"onPlay\">Play</button>\n <button @click=\"onPause\">Pause</button>\n <button @click=\"onFullscreen\">fullscreen</button>\n <!-- range selector for time -->\n <div class=\"time\">\n <input type=\"range\" min=\"0\" max=\"100\" value=\"0\" class=\"slider\" id=\"myRange\" @input=\"onChange\" />\n </div>\n </div>\n </div>\n</template>\n\n<style>\n.container {\n position: relative;\n}\n\n#thumbnails-videos {\n position: absolute;\n top: 0;\n right: 0;\n width: 25%;\n margin-left: 10px;\n\n max-height: 100%;\n overflow-y: auto;\n}\n</style>\n","import script from \"./VideoComponent.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./VideoComponent.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./VideoComponent.vue?vue&type=style&index=0&id=482f0b94&lang=css\"\n\nconst __exports__ = script;\n\nexport default __exports__","import \"./compatibility\"\nimport { createApp } from \"vue\"\n\nimport ChatComponent from \"./components/ChatComponent.vue\"\nimport NotificationsBell from \"./components/NotificationsBell.vue\"\nimport VideoComponent from \"./video/VideoComponent.vue\"\n\nimport axios from \"axios\";\n// default axios config\naxios.defaults.xsrfHeaderName = \"X-CSRFTOKEN\";\naxios.defaults.xsrfCookieName = \"csrftoken\";\naxios.defaults.withCredentials = true\n\nif (document.getElementById(\"chat\")) {\n createApp(ChatComponent).mount('#chat')\n}\n\nif (document.getElementById(\"notifications\")) {\n createApp(NotificationsBell).mount('#notifications')\n}\n\nif(document.getElementById(\"multivideo\")) {\n createApp(VideoComponent).mount('#multivideo');\n}"],"names":["module","exports","utils","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","config","Promise","resolve","reject","requestData","data","requestHeaders","headers","isFormData","request","XMLHttpRequest","auth","username","password","unescape","encodeURIComponent","Authorization","btoa","fullPath","baseURL","url","open","method","toUpperCase","params","paramsSerializer","timeout","onreadystatechange","readyState","status","responseURL","indexOf","responseHeaders","getAllResponseHeaders","responseData","responseType","response","responseText","statusText","onabort","onerror","ontimeout","timeoutErrorMessage","isStandardBrowserEnv","xsrfValue","withCredentials","xsrfCookieName","read","undefined","xsrfHeaderName","forEach","val","key","toLowerCase","setRequestHeader","isUndefined","e","onDownloadProgress","addEventListener","onUploadProgress","upload","cancelToken","promise","then","cancel","abort","send","bind","Axios","mergeConfig","defaults","createInstance","defaultConfig","context","instance","prototype","extend","axios","create","instanceConfig","Cancel","CancelToken","isCancel","all","promises","spread","isAxiosError","message","this","toString","__CANCEL__","executor","TypeError","resolvePromise","token","reason","throwIfRequested","source","c","value","InterceptorManager","dispatchRequest","interceptors","arguments","chain","interceptor","unshift","fulfilled","rejected","push","length","shift","getUri","replace","handlers","use","eject","id","fn","h","isAbsoluteURL","combineURLs","requestedURL","enhanceError","code","error","Error","transformData","throwIfCancellationRequested","transformRequest","merge","common","adapter","transformResponse","toJSON","name","description","number","fileName","lineNumber","columnNumber","stack","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","target","isPlainObject","isArray","slice","mergeDeepProperties","prop","axiosKeys","concat","otherKeys","Object","keys","filter","validateStatus","fns","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","getDefaultAdapter","process","call","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","isObject","JSON","stringify","parse","maxContentLength","maxBodyLength","thisArg","args","Array","i","apply","encode","serializedParams","parts","v","isDate","toISOString","join","hashmarkIndex","relativeURL","write","expires","path","domain","secure","cookie","isNumber","Date","toGMTString","isString","document","match","RegExp","decodeURIComponent","remove","now","test","payload","originURL","msie","navigator","userAgent","urlParsingNode","createElement","resolveURL","href","setAttribute","protocol","host","search","hash","hostname","port","pathname","charAt","window","location","requestURL","parsed","normalizedName","ignoreDuplicateOf","split","line","trim","substr","callback","arr","constructor","FormData","result","ArrayBuffer","isView","getPrototypeOf","isFunction","pipe","URLSearchParams","str","product","obj","l","hasOwnProperty","assignValue","a","b","stripBOM","content","charCodeAt","testVideo","canPlayType","webm","container","getElementById","p","classList","add","prepend","innerHTML","sfc","props","__vccOpts","isCallable","tryToString","$TypeError","argument","$String","String","toIndexedObject","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","el","fromIndex","O","index","includes","DESCRIPTORS","getOwnPropertyDescriptor","SILENT_ON_NON_WRITABLE_LENGTH_SET","defineProperty","writable","uncurryThis","stringSlice","it","hasOwn","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","exceptions","f","createPropertyDescriptor","object","bitmap","enumerable","configurable","makeBuiltIn","defineGlobalProperty","options","simple","global","unsafe","nonConfigurable","nonWritable","fails","get","EXISTS","MAX_SAFE_INTEGER","version","Deno","versions","v8","createNonEnumerableProperty","defineBuiltIn","copyConstructorProperties","isForced","FORCED","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","sham","exec","NATIVE_BIND","Function","FunctionPrototype","getDescriptor","PROPER","CONFIGURABLE","uncurryThisWithBind","aFunction","namespace","aCallable","isNullOrUndefined","V","P","func","check","Math","globalThis","self","g","toObject","classof","$Object","propertyIsEnumerable","store","functionToString","inspectSource","set","has","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","enforce","getterFor","TYPE","state","type","metadata","facade","STATE","documentAll","replacement","feature","detection","normalize","POLYFILL","NATIVE","string","getBuiltIn","isPrototypeOf","USE_SYMBOL_AS_UID","$Symbol","toLength","CONFIGURABLE_FUNCTION_NAME","InternalStateModule","enforceInternalState","getInternalState","CONFIGURABLE_LENGTH","TEMPLATE","getter","setter","arity","ceil","floor","trunc","x","n","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","anObject","toPropertyKey","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","current","propertyIsEnumerableModule","internalObjectKeys","enumBugKeys","getOwnPropertyNames","getOwnPropertySymbols","names","$propertyIsEnumerable","NASHORN_BUG","input","pref","valueOf","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","uid","SHARED","IS_PURE","mode","copyright","license","V8_VERSION","symbol","Symbol","toIntegerOrInfinity","max","min","integer","IndexedObject","requireObjectCoercible","len","isSymbol","getMethod","ordinaryToPrimitive","wellKnownSymbol","TO_PRIMITIVE","exoticToPrim","toPrimitive","postfix","random","NATIVE_SYMBOL","iterator","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","$","setArrayLength","doesNotExceedSafeInteger","INCORRECT_TO_LENGTH","properErrorOnNonWritableLength","proto","item","argCount","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","__esModule","d","definition","o","makeMap","expectsLowerCase","Set","EMPTY_OBJ","EMPTY_ARR","NOOP","NO","isOn","isModelListener","startsWith","assign","splice","hasOwnProperty$1","isMap","toTypeString","isSet","isRegExp","isPromise","catch","objectToString","toRawType","isIntegerKey","parseInt","isReservedProp","cacheStringFunction","cache","hit","camelizeRE","camelize","_","hyphenateRE","hyphenate","capitalize","toHandlerKey","s","hasChanged","oldValue","is","invokeArrayFns","arg","def","looseToNumber","parseFloat","isNaN","toNumber","Number","NaN","_globalThis","getGlobalThis","GLOBALS_ALLOWED","isGloballyAllowed","normalizeStyle","res","normalized","parseStringStyle","listDelimiterRE","propertyDelimiterRE","styleCommentRE","cssText","ret","tmp","normalizeClass","normalizeProps","class","klass","style","specialBooleanAttrs","isSpecialBooleanAttr","includeBooleanAttr","looseCompareArrays","equal","looseEqual","aValidType","bValidType","getTime","aKeysCount","bKeysCount","aHasKey","bHasKey","looseIndexOf","findIndex","toDisplayString","replacer","_key","__v_isRef","size","entries","reduce","val2","stringifySymbol","values","map","_a","activeEffectScope","activeEffect","EffectScope","detached","_active","effects","cleanups","parent","scopes","active","run","currentEffectScope","on","off","stop","fromParent","last","pop","effectScope","recordEffectScope","effect","scope","getCurrentScope","onScopeDispose","ReactiveEffect","trigger","scheduler","deps","_dirtyLevel","_trackId","_runnings","_shouldSchedule","_depsLength","dirty","pauseTracking","dep","computed","triggerComputed","resetTracking","lastShouldTrack","shouldTrack","lastEffect","preCleanupEffect","postCleanupEffect","onStop","effect2","cleanupDepEffect","trackId","delete","cleanup","_effect","lazy","runner","pauseScheduleStack","trackStack","pauseScheduling","resetScheduling","queueEffectSchedulers","trackEffect","debuggerEventExtraInfo","oldDep","triggerEffects","dirtyLevel","lastDirtyLevel","scheduleEffects","allowRecurse","createDep","Map","targetMap","ITERATE_KEY","MAP_KEY_ITERATE_KEY","track","depsMap","newValue","oldTarget","newLength","key2","getDepFromReactive","isNonTrackableKeys","builtInSymbols","arrayInstrumentations","createArrayInstrumentations","instrumentations","toRaw","BaseReactiveHandler","_isReadonly","_shallow","receiver","isReadonly2","shallow","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","targetIsArray","Reflect","isRef","readonly","reactive","MutableReactiveHandler","super","isOldValueReadonly","isReadonly","isShallow","hadKey","deleteProperty","ReadonlyReactiveHandler","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","shallowReadonlyHandlers","toShallow","getProto","rawTarget","rawKey","has2","wrap","toReadonly","toReactive","get2","deleteEntry","clear","hadItems","createForEach","observed","createIterableMethod","targetIsMap","isPair","isKeyOnly","innerIterator","next","done","createReadonlyMethod","createInstrumentations","mutableInstrumentations2","shallowInstrumentations2","readonlyInstrumentations2","shallowReadonlyInstrumentations2","iteratorMethods","mutableInstrumentations","readonlyInstrumentations","shallowInstrumentations","shallowReadonlyInstrumentations","createInstrumentationGetter","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","shallowReadonlyCollectionHandlers","targetTypeMap","rawType","getTargetType","isExtensible","createReactiveObject","shallowReactive","shallowReadonly","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","proxy","Proxy","isReactive","isProxy","raw","markRaw","ComputedRefImpl","_setter","isSSR","_value","triggerRefValue","_cacheable","trackRefValue","_dirty","computed$1","getterOrOptions","debugOptions","onlyGetter","cRef","ref2","newVal","r","ref","createRef","shallowRef","rawValue","RefImpl","__v_isShallow","_rawValue","useDirectValue","triggerRef","unref","toValue","shallowUnwrapHandlers","proxyRefs","objectWithRefs","CustomRefImpl","factory","_get","_set","customRef","toRefs","propertyToRef","ObjectRefImpl","_object","_defaultValue","GetterRefImpl","_getter","__v_isReadonly","toRef","defaultValue","TrackOpTypes","TriggerOpTypes","assertNumber","ErrorCodes","ErrorTypeStrings$1","callWithErrorHandling","err","handleError","callWithAsyncErrorHandling","throwInDev","contextVNode","vnode","cur","exposedInstance","errorInfo","errorCapturedHooks","ec","appErrorHandler","appContext","errorHandler","logError","console","isFlushing","isFlushPending","queue","flushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","nextTick","findInsertionIndex","start","end","middle","middleJob","middleJobId","getId","pre","queueJob","job","queueFlush","flushJobs","invalidateJob","queuePostFlushCb","cb","flushPreFlushCbs","seen","flushPostFlushCbs","deduped","sort","Infinity","comparator","diff","devtools$1","devtoolsNotInstalled","setDevtoolsHook$1","hook","_b","enabled","event","emit","HTMLElement","replay","__VUE_DEVTOOLS_HOOK_REPLAY__","newHook","setTimeout","DeprecationTypes$1","warnDeprecation","globalCompatConfig","MODE","configureCompat$1","getCompatConfigForKey","compatConfig","isCompatEnabled","enableForBuiltIn","__isBuiltIn","rawMode","assertCompatEnabled","softAssertCompatEnabled","checkCompatEnabled","eventRegistryMap","getRegistry","events","once","wrapped","vm","cbs","emit$1","compatModelEventPrefix","convertLegacyVModelProps","shapeFlag","dynamicProps","comp","model","applyModelFromMixins","mixins","modelValue","m","compatModelEmit","modelHandler","rawArgs","isUnmounted","modelArg","modifiersKey","handlerName","handler","onceHandler","emitted","normalizeEmitsOptions","asMixin","emitsCache","cached","emits","hasExtends","extendEmits","raw2","normalizedFromExtend","extends","isEmitListener","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","prev","__scopeId","_scopeId","pushScopeId","popScopeId","withScopeId","_id","withCtx","ctx","isNonScopedSlot","_n","renderFnWithContext","_d","setBlockTracking","prevInstance","_c","_ns","renderComponentRoot","Component","withProxy","propsOptions","slots","attrs","render","renderCache","setupState","inheritAttrs","fallthroughAttrs","proxyToUse","thisProxy","normalizeVNode","render2","getFunctionalFallthrough","blockStack","createVNode","Comment","root","some","filterModelListeners","cloneVNode","cls","dirs","transition","filterSingleRoot","children","recurse","singleRoot","child","isVNode","shouldUpdateComponent","prevVNode","nextVNode","optimized","prevProps","prevChildren","component","nextProps","nextChildren","patchFlag","emitsOptions","$stable","hasPropsChanged","nextKeys","updateHOCHostEl","subTree","suspense","activeBranch","COMPONENTS","DIRECTIVES","FILTERS","resolveComponent","maybeSelfReference","resolveAsset","NULL_DYNAMIC_COMPONENT","for","resolveDynamicComponent","resolveDirective","resolveFilter$1","warnMissing","currentInstance","selfName","getComponentName","registry","isSuspense","__isSuspense","suspenseId","SuspenseImpl","n1","n2","anchor","parentComponent","parentSuspense","slotScopeIds","rendererInternals","mountSuspense","patchSuspense","hydrate","hydrateSuspense","createSuspenseBoundary","normalizeSuspenseChildren","Suspense","triggerEvent","eventListener","patch","hiddenContainer","pendingBranch","ssContent","ssFallback","setActiveBranch","um","unmount","newBranch","newFallback","isInFallback","isHydrating","isSameVNodeType","pendingId","fallback","move","parentNode","parentSuspenseId","isSuspensible","isVNodeSuspensible","initialAnchor","resume","sync","vnode2","parentComponent2","container2","delayEnter","afterLeave","hasUnresolvedAncestor","fallbackVNode","namespace2","anchor2","mountFallback","registerDep","setupRenderEffect","isInPendingSuspense","hydratedEl","asyncDep","asyncSetupResult","asyncResolved","handleSetupResult","placeholder","parentSuspense2","doRemove","node","hydrateNode","isSlotChildren","normalizeSuspenseSlot","default","block","trackBlock","isBlockTreeEnabled","openBlock","currentBlock","closeBlock","singleChild","dynamicChildren","queueEffectWithSuspense","branch","suspensible","legacyDirectiveHookMap","beforeMount","mounted","updated","unmounted","mapCompatDirectiveHook","dir","mappedName","mapped","mappedHook","ssrContextKey","useSSRContext","inject","watchEffect","doWatch","watchPostEffect","flush","watchSyncEffect","INITIAL_WATCHER_VALUE","watch","immediate","deep","onTrack","onTrigger","_cb","unwatch","reactiveGetter","source2","traverse","forceTrigger","isMultiSource","onCleanup","baseGetter","ssrCleanup","isInSSRComponentSetup","__watcherHandles","fill","queuePostRenderEffect","instanceWatch","publicThis","createPathGetter","reset","setCurrentInstance","segments","depth","currentDepth","withDirectives","directives","getExposeProxy","bindings","modifiers","invokeDirectiveHook","oldBindings","binding","leaveCbKey","enterCbKey$1","useTransitionState","isMounted","isLeaving","isUnmounting","leavingVNodes","onMounted","onBeforeUnmount","TransitionHookValidator","BaseTransitionPropsValidators","appear","Boolean","persisted","onBeforeEnter","onEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onLeave","onAfterLeave","onLeaveCancelled","onBeforeAppear","onAppear","onAfterAppear","onAppearCancelled","BaseTransitionImpl","setup","getCurrentInstance","prevTransitionKey","getTransitionRawChildren","hasFound","rawProps","emptyPlaceholder","innerChild","getKeepAliveChild","enterHooks","resolveTransitionHooks","setTransitionHooks","oldChild","oldInnerChild","transitionKeyChanged","getTransitionKey","leavingHooks","update","delayLeave","earlyRemove","delayedLeave","leavingVNodesCache","getLeavingNodesForType","BaseTransition","callHook","callAsyncHook","every","hook2","hooks","beforeEnter","leavingVNode","enter","afterHook","cancelHook","called","cancelled","leave","clone","isKeepAlive","keepComment","parentKey","keyedFragmentCount","Fragment","defineComponent","extraOptions","isAsyncWrapper","__asyncLoader","defineAsyncComponent","loader","loadingComponent","errorComponent","delay","onError","userOnError","resolvedComp","pendingRequest","retries","retry","load","thisRequest","userRetry","userFail","toStringTag","__asyncResolved","createInnerComp","loaded","delayed","ce","__isKeepAlive","KeepAliveImpl","include","exclude","sharedContext","renderer","_unmount","storageContainer","resetShapeFlag","pruneCache","pruneCacheEntry","activate","instance2","isDeactivated","vnodeHook","onVnodeMounted","invokeVNodeHook","deactivate","da","onVnodeUnmounted","matches","pendingCacheKey","cacheSubtree","getInnerChild","onUpdated","rawVNode","cachedVNode","KeepAlive","pattern","onActivated","registerKeepAliveHook","onDeactivated","wrappedHook","__wdc","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","onUnmounted","__weh","createHook","lifecycle","onBeforeMount","onBeforeUpdate","onServerPrefetch","onRenderTriggered","onRenderTracked","onErrorCaptured","getCompatChildren","walk","vnodes","getCompatListeners","listeners","convertLegacyRenderFn","_rc","_compatChecked","_compatWrapped","compatH","propsOrChildren","t","is2ndArgArrayChildren","convertLegacySlots","convertLegacyDirectives","convertLegacyProps","skipLegacyRootLevelProps","legacyProps","converted","handlerKey","convertLegacyEventKey","existing","incoming","staticClass","staticStyle","slotName","slot","slotChildren","scopedSlots","normalizeChildren","defineLegacyVNodeProperties","getInstance","componentOptions","defineProperties","tag","elm","componentInstance","text","Ctor","propsData","normalizedFunctionalComponentMap","legacySlotProxyHandlers","convertLegacyFunctionalComponent","legacyFn","Func","legacyCtx","injections","resolveInjections","displayName","renderList","renderItem","from","createSlots","dynamicSlots","j","renderSlot","noSlotted","isCE","validSlotContent","ensureValidVNode","rendered","createBlock","scopeId","toHandlers","preserveCaseIfNecessary","legacyBindObjectProps","_tag","_asProp","isSync","camelizedKey","hyphenatedKey","$event","legacyBindObjectListeners","mergeProps","legacyRenderSlot","bindObject","legacyresolveScopedSlots","hasDynamicKeys","mapKeyToName","staticCacheMap","legacyRenderStatic","staticRenderFns","legacyCheckKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","configKeyCodes","keyCodes","mappedKeyCode","isKeyNotMatch","expect","actual","legacyMarkOnce","tree","legacyBindDynamicKeys","legacyPrependModifier","installCompatInstanceProperties","del","$set","$delete","$mount","_compat_mount","$destroy","_compat_destroy","$slots","$scopedSlots","$on","$once","$off","$children","$listeners","$vnode","$options","resolveMergedOptions","$parent","_self","_uid","_data","_isMounted","_isDestroyed","$createElement","_o","_s","_l","_t","_q","_i","_m","_f","_k","_v","createTextVNode","_e","createCommentVNode","_u","_g","_p","getPublicInstance","isStatefulComponent","publicPropertiesMap","$el","$data","$props","$attrs","$refs","refs","$root","$emit","$forceUpdate","$nextTick","$watch","hasSetupBinding","__isScriptSetup","PublicInstanceProxyHandlers","accessCache","normalizedProps","shouldCacheAccess","publicGetter","cssModule","globalProperties","__cssModules","desc","RuntimeCompiledPublicInstanceProxyHandlers","unscopables","deepMergeData","to","toVal","fromVal","defineProps","defineEmits","defineExpose","exposed","defineOptions","defineSlots","defineModel","withDefaults","useSlots","getContext","useAttrs","setupContext","createSetupContext","normalizePropsOrEmits","mergeDefaults","opt","skipFactory","mergeModels","createPropsRestProxy","excludedKeys","withAsyncContext","getAwaitable","awaitable","unsetCurrentInstance","applyOptions","beforeCreate","callHook$1","dataOptions","computedOptions","methods","watchOptions","provide","provideOptions","injectOptions","created","beforeUpdate","activated","deactivated","beforeDestroy","beforeUnmount","destroyed","renderTracked","renderTriggered","errorCaptured","serverPrefetch","expose","components","filters","checkDuplicateProperties","methodHandler","createWatcher","provides","registerLifecycleHook","register","_hook","normalizeInject","base","extendsOptions","globalMixins","optionsCache","optionMergeStrategies","resolved","mergeOptions","strats","strat","internalOptionMergeStrats","mergeDataFn","mergeEmitsOrPropsOptions","mergeObjectOptions","mergeAsArray","mergeWatchOptions","mergeInject","merged","installLegacyOptionMergeStrats","singletonApp","singletonCtor","isCopyingConfig","createCompatVue$1","createApp","createSingletonApp","Vue","Vue2","createCompatApp","app","applySingletonPrototype","_createRoot","install","mixin","directive","_base","cid","extendCache","extendCtor","extendOptions","Super","SubVue","inlineOptions","mergeBase","superValue","observable","util","warn","defineReactive","configureCompat","installAppCompatProperties","installFilterMethod","installCompatMount","installLegacyAPIs","applySingletonAppMutations","_context","isRuntimeOnly","compilerOptions","isCustomElement","hasPrototypeAugmentations","descriptors","getOwnPropertyDescriptors","_component","hasNoRender","template","emptyRender","createComponentInstance","setupComponent","isCompatRoot","selectorOrEl","querySelector","SVGElement","MathMLElement","finishComponentSetup","Element","removeAttribute","_container","__vue_app__","bum","methodsToPatch","patched","WeakSet","reactiveVal","defineReactiveSimple","createAppContext","isNativeTag","performance","warnHandler","propsCache","uid$1","createAppAPI","rootComponent","rootProps","installedPlugins","_props","_instance","plugin","mount","rootContainer","isHydrate","runWithContext","currentApp","parentProvides","treatDefaultAsFactory","hasInjectionContext","createPropsDefaultThis","propKey","shouldSkipAttr","initProps","isStateful","InternalObjectKey","propsDefaults","setFullProps","updateProps","rawPrevProps","rawCurrentProps","hasAttrsChanged","kebabKey","resolvePropValue","propsToUpdate","endsWith","needCastKeys","rawCastValues","camelKey","castValues","isAbsent","hasDefault","normalizePropsOptions","extendProps","normalizedKey","validatePropName","booleanIndex","getTypeIndex","stringIndex","getType","ctor","isSameType","expectedTypes","isInternalKey","normalizeSlotValue","normalizeSlot","rawSlot","normalizeObjectSlots","rawSlots","_ctx","normalizeVNodeSlots","initSlots","updateSlots","needDeletionCheck","deletionComparisonTarget","setRef","rawRef","oldRawRef","isUnmount","refValue","owner","oldRef","_isString","_isRef","isVFor","doSet","k","hasMismatch","isSVGContainer","namespaceURI","tagName","isMathMLContainer","getContainerType","isComment","nodeType","createHydrationFunctions","mt","mountComponent","patchProp","createText","nextSibling","insert","createComment","hasChildNodes","_vnode","firstChild","isFragmentStart","onMismatch","handleMismatch","domType","nextNode","Text","isTemplateNode","replaceNode","Static","needToAdoptContent","staticCount","outerHTML","hydrateFragment","hydrateElement","locateClosingAnchor","previousSibling","lastChild","hydrateChildren","forcePatch","vnodeHooks","needCallTransitionHooks","needTransition","textContent","onClick","onVnodeBeforeMount","parentVNode","fragmentSlotScopeIds","isFragment","next2","close","newNode","oldNode","parentNode2","replaceChild","initFeatureFlags","createRenderer","baseCreateRenderer","createHydrationRenderer","createHydrationFns","__VUE__","hostInsert","hostRemove","hostPatchProp","hostCreateElement","hostCreateText","hostCreateComment","setText","hostSetText","setElementText","hostSetElementText","hostParentNode","hostNextSibling","setScopeId","hostSetScopeId","insertStaticContent","hostInsertStaticContent","getNextHostNode","processText","processCommentNode","mountStaticNode","processFragment","processElement","processComponent","internals","moveStaticNode","removeStaticNode","mountElement","patchElement","mountChildren","resolveChildrenNamespace","unmountChildren","cloneIfMounted","oldProps","newProps","toggleRecurse","onVnodeBeforeUpdate","patchBlockChildren","patchChildren","patchProps","onVnodeUpdated","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","traverseStaticChildren","updateComponent","initialVNode","compatMountInstance","updateComponentPreRender","componentUpdateFn","bu","u","nonHydratedAsyncRoot","locateNonHydratedAsyncRoot","originNext","nextTree","prevTree","bm","isAsyncWrapperVNode","hydrateSubTree","scopedInitialVNode","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","oldLength","commonLength","nextChild","parentAnchor","l2","e1","e2","nextPos","s1","s2","keyToNewIndexMap","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","getSequence","nextIndex","moveType","needTransition2","remove2","performLeave","shouldInvokeDirs","shouldInvokeVnodeHook","onVnodeBeforeUnmount","unmountComponent","removeFragment","performRemove","mc","pc","pbc","currentNamespace","encoding","allowed","ch1","ch2","arrI","subComponent","isTeleport","__isTeleport","isTeleportDisabled","disabled","isTargetSVG","isTargetMathML","resolveTarget","select","targetSelector","TeleportImpl","mainAnchor","targetAnchor","wasDisabled","currentContainer","currentAnchor","moveTeleport","nextTarget","updateCssVars","shouldRemove","hydrateTeleport","isReorder","targetNode","_lpa","Teleport","ut","normalizedAsyncComponentMap","convertLegacyAsyncComponent","fallbackPromise","rj","loading","convertLegacyComponent","functional","disableTracking","vnodeArgsTransformer","setupBlock","createElementBlock","createBaseVNode","__v_isVNode","transformVNodeArgs","transformer","normalizeKey","normalizeRef","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","__v_skip","_createVNode","cloned","isClassComponent","guardReactiveProps","extraProps","mergeRef","mergedProps","flag","createStaticVNode","numberOfNodes","asBlock","memo","slotFlag","toMerge","emptyAppContext","exposeProxy","attrsProxy","slotsProxy","bc","rtg","rtc","sp","internalSetCurrentInstance","setInSSRSetupState","registerGlobalSetter","setters","compile","installWithProxy","setupResult","setupStatefulComponent","resolvedResult","__ssrInlineRender","ssrRender","registerRuntimeCompiler","_compile","skipOptions","delimiters","componentCompilerOptions","finalCompilerOptions","getAttrsProxy","includeInferred","__name","useModel","camelizedName","hyphenatedName","localValue","propValue","modifierKey","i2","initCustomFormatter","withMemo","isMemoSame","ErrorTypeStrings","devtools","setDevtoolsHook","_ssrUtils","ssrUtils","resolveFilter","_compatUtils","createCompatVue","compatUtils","DeprecationTypes","svgNS","mathmlNS","doc","templateContainer","nodeOps","insertBefore","removeChild","createElementNS","multiple","createTextNode","nodeValue","selector","before","cloneNode","wrapper","appendChild","TRANSITION","ANIMATION","vtcKey","Transition","resolveTransitionProps","DOMTransitionPropsValidators","css","duration","enterFromClass","enterActiveClass","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","TransitionPropsValidators","h2","hasExplicitCallback","baseProps","legacyClassEnabled","legacyEnterFromClass","legacyAppearFromClass","legacyLeaveFromClass","toLegacyClass","durations","normalizeDuration","enterDuration","leaveDuration","finishEnter","isAppear","removeTransitionClass","finishLeave","_isLeaving","makeEnterHook","nextFrame","legacyClass","addTransitionClass","whenTransitionEnds","forceReflow","NumberOf","_vtc","requestAnimationFrame","endId","expectedType","explicitTimeout","_endId","resolveIfNotStale","propCount","getTransitionInfo","endEvent","ended","removeEventListener","onEnd","styles","getComputedStyle","getStyleProperties","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","toMs","body","offsetHeight","patchClass","isSVG","transitionClasses","className","vShowOldKey","vShow","display","setDisplay","initVShowForSSR","getSSRProps","CSS_VAR_TEXT","useCssVars","updateTeleports","vars","querySelectorAll","setVarsOnNode","setVars","setVarsOnVNode","ob","MutationObserver","observe","childList","disconnect","setProperty","patchStyle","currentDisplay","isCssString","setStyle","cssVarText","importantRE","prefixed","autoPrefix","prefixes","prefixCache","rawName","xlinkNS","patchAttr","removeAttributeNS","setAttributeNS","compatCoerceAttr","isBoolean","isEnumeratedAttr","v2CoercedValue","patchDOMProp","getAttribute","needRemove","veiKey","patchEvent","prevValue","nextValue","invokers","existingInvoker","parseName","invoker","createInvoker","optionsModifierRE","cachedNow","getNow","initialValue","_vts","attached","patchStopImmediatePropagation","originalStop","stopImmediatePropagation","_stopped","isNativeOn","shouldSetAsProp","_trueValue","_falseValue","defineCustomElement","hydrate2","Comp","VueCustomElement","VueElement","initialProps","defineSSRCustomElement","BaseClass","_def","_connected","_resolved","_numberProps","_ob","shadowRoot","attachShadow","_resolveProps","connectedCallback","_update","_resolveDef","disconnectedCallback","attributes","_setAttr","mutations","attributeName","isAsync","numberProps","_applyStyles","asyncDef","declaredPropKeys","_setProp","_getProp","shouldReflect","shouldUpdate","dispatch","dispatchEvent","CustomEvent","detail","useCssModule","modules","mod","positionMap","newPositionMap","moveCbKey","enterCbKey","TransitionGroupImpl","moveClass","hasCSSTransform","callPendingCbs","recordPosition","movedChildren","applyTranslation","transform","webkitTransform","transitionDuration","propertyName","cssTransitionProps","getBoundingClientRect","TransitionGroup","oldPos","newPos","dx","left","dy","top","getModelAssigner","onCompositionStart","composing","onCompositionEnd","Event","assignKey","vModelText","castToNumber","domValue","elValue","activeElement","vModelCheckbox","_modelValue","elementValue","getValue","checked","found","filtered","getCheckboxValue","setChecked","vModelRadio","vModelSelect","isSetModel","selectedVal","selected","_assigning","setSelected","_binding","isMultiple","isArrayValue","option","optionValue","optionType","selectedIndex","vModelDynamic","callModelHook","resolveDynamicModel","modelToUse","initVModelForSSR","systemModifiers","modifierGuards","stopPropagation","prevent","preventDefault","currentTarget","ctrl","ctrlKey","shiftKey","alt","altKey","meta","metaKey","button","right","exact","withModifiers","_withMods","cacheKey","guard","keyNames","esc","space","up","down","withKeys","globalKeyCodes","_withKeys","eventKey","keyCode","codes","rendererOptions","enabledHydration","ensureRenderer","ensureHydrationRenderer","containerOrSelector","normalizeContainer","resolveRootNamespace","createSSRApp","ssrDirectiveInitialized","initDirectivesForSSR","runtimeDom","freeze","__proto__","createElementVNode","wrappedCreateApp","show","Vue$1","_cache","$setup","_component_vue_advanced_chat","_resolveComponent","_openBlock","_createBlock","currentUserId","rooms","messagesLoaded","roomId","messages","title","ROOMS_EMPTY","ROOM_EMPTY","NEW_MESSAGES","MESSAGE_DELETED","MESSAGES_EMPTY","CONVERSATION_STARTED","TYPE_MESSAGE","SEARCH","IS_ONLINE","LAST_SEEN","IS_TYPING","onSendMessage","sendMessage","makeMap$2","list2","NOOP$1","extend$2","hasOwnProperty$3","hasOwn$1","isArray$2","isMap$1","toTypeString$1","isFunction$2","isString$2","isObject$2","objectToString$1","hasChanged$1","def$1","w","wasTracked","trackOpBit","newTracked","initDepMarkers","finalizeDepMarkers","ptr","effectTrackDepth","maxMarkerBits","cleanupEffect","deferStop","trackEffects","shouldTrack2","triggerEffect","get$1","createGetter","shallowGet","readonlyGet","set$1","createSetter","shallowSet","get$1$1","isShallow2","has$1","set$1$1","self2","makeMap$1","isArray$1","isString$1","isObject$1","isFunction$1","onRE$1","isOn$1","isModelListener$1","extend$1","hasOwnProperty$2","cacheStringFunction$1","camelizeRE$1","camelize$1","hyphenateRE$1","hyphenate$1","capitalize$1","toNumber$1","pendingPreFlushCbs","activePreFlushCbs","preFlushIndex","currentPreFlushParentJob","p2","queueCb","activeQueue","pendingQueue","queuePreFlushCb","parentJob","isModelListener2","render3","flush2","path2","_leaveCb","callHook2","_enterCb","internalInstance","beforeMount2","updated2","unmounted2","unwrapInjectedRef","set2","register2","unwrapRef","directive2","hostCloneNode","areChildrenSVG","update2","remove3","text2","compile$1","createAttrsProxy","onRE","content2","_getNow","skipTimestampCheck","_getNow2","skipTimestampCheck2","createEvent","timeStamp","ffMatch","addEventListener$1","_vei","nativeOnRE","resolve2","def2","hasOptions","rawKeys","_moveCb","_vod","_export_sfc","_sfc_main$q","infinite","required","messageId","_hoisted_1$q","_hoisted_2$n","_hoisted_3$j","_hoisted_4$g","_hoisted_5$b","_hoisted_6$7","_sfc_render$q","Loader","_sfc_main$p","param","svgItem","toggle","menu","file","paperclip","emoji","pencil","checkmark","eye","dropdown","deleted","microphone","svgId","_hoisted_1$p","_hoisted_2$m","_hoisted_3$i","_sfc_render$p","xmlns","width","height","viewBox","SvgIcon","_sfc_main$o","textMessages","showSearch","showAddRoom","loadingRooms","showSearchBar","_hoisted_1$o","_hoisted_2$l","_sfc_render$o","_component_svg_icon","autocomplete","onInput","RoomsSearch","element$1","decodeNamedCharacterReference","characterReference2","char","items","parameters","chunkStart","combineExtensions","extensions","syntaxExtension","extension","maybe","code2","constructs","combineHtmlExtensions","htmlExtensions","htmlExtension","decodeNumericCharacterReference","fromCharCode","characterReferences","replace2","value2","normalizeIdentifier","unicodePunctuationRegex","asciiAlpha","regexCheck","asciiAlphanumeric","asciiAtext","asciiControl","asciiDigit","asciiHexDigit","asciiPunctuation","markdownLineEnding","markdownLineEndingOrSpace","markdownSpace","unicodePunctuation","unicodeWhitespace","regex","sanitizeUri","normalizeUri","colon","questionMark","numberSign","slash","skip","protocolHref","protocolSrc","settings","tags","definitions2","buffers","mediaStack","tightStack","defaultHandlers","blockQuote","onenterblockquote","codeFenced","onentercodefenced","codeFencedFenceInfo","codeFencedFenceMeta","codeIndented","onentercodeindented","codeText","onentercodetext","onentercontent","onenterdefinition","definitionDestinationString","onenterdefinitiondestinationstring","definitionLabelString","definitionTitleString","emphasis","onenteremphasis","htmlFlow","onenterhtmlflow","htmlText","onenterhtml","image","onenterimage","label","link","onenterlink","listItemMarker","onenterlistitemmarker","listItemValue","onenterlistitemvalue","listOrdered","onenterlistordered","listUnordered","onenterlistunordered","paragraph","onenterparagraph","reference","resource","onenterresource","resourceDestinationString","onenterresourcedestinationstring","resourceTitleString","setextHeading","onentersetextheading","strong","onenterstrong","exit","atxHeading","onexitatxheading","atxHeadingSequence","onexitatxheadingsequence","autolinkEmail","onexitautolinkemail","autolinkProtocol","onexitautolinkprotocol","onexitblockquote","characterEscapeValue","onexitdata","characterReferenceMarkerHexadecimal","onexitcharacterreferencemarker","characterReferenceMarkerNumeric","characterReferenceValue","onexitcharacterreferencevalue","onexitflowcode","codeFencedFence","onexitcodefencedfence","onexitcodefencedfenceinfo","codeFlowValue","onexitcodeflowvalue","onexitcodetext","codeTextData","onexitdefinition","onexitdefinitiondestinationstring","onexitdefinitionlabelstring","onexitdefinitiontitlestring","onexitemphasis","hardBreakEscape","onexithardbreak","hardBreakTrailing","onexithtml","htmlFlowData","htmlTextData","onexitmedia","onexitlabel","labelText","onexitlabeltext","lineEnding","onexitlineending","onexitlistordered","onexitlistunordered","onexitparagraph","referenceString","onexitreferencestring","onexitresourcedestinationstring","onexitresourcetitlestring","onexitsetextheading","setextHeadingLineSequence","onexitsetextheadinglinesequence","setextHeadingText","onexitsetextheadingtext","onexitstrong","thematicBreak","onexitthematicbreak","definitions","lineEndingIfNeeded","encode$1","setData","getData","lineEndingStyle","defaultLineEnding","compile2","listStack","head","sliceSerialize","prepareList","null","handles","kind","handle","atMarker","containerBalance","loose","_loose","buf","lineEnding2","buffer2","previous2","onexitlistitem","count","labelId","referenceId","destination","media","context2","allowDangerousProtocol","allowDangerousHtml","uri","factorySpace","ok","limit","POSITIVE_INFINITY","size2","prefix","consume","content$1","tokenize","initializeContent","contentStart","attempt","parser","contentInitial","afterContentStartConstruct","paragraphInitial","lineStart","contentType","previous","document$2","initializeDocument","containerConstruct","tokenizeContainer","childFlow","childToken","lineStartOffset","continued","containerState","continuation","documentContinue","checkNewContainers","_closeFlow","closeFlow","indexBeforeExits","point","indexBeforeFlow","exitContainers","documentContinued","currentConstruct","concrete","flowStart","interrupt","_gfmTableDynamicInterruptHack","thereIsANewContainer","thereIsNoNewContainer","offset","containerContinue","flow","_tokenizer","flowContinue","writeToChild","eof","stream","sliceStream","defineSkip","entry","nok","disable","classifyCharacter","resolveAll","constructs2","attention","tokenizeAttention","resolveAllAttention","group","openingSequence","closingSequence","nextEvents","_close","_open","movePoint","insideSpan","attentionMarkers2","attentionMarkers","marker","inside","after","column","_bufferIndex","autolink","tokenizeAutolink","schemeOrEmailAtext","emailAtext","schemeInsideOrEmailAtext","urlInside","emailAtSignOrDot","emailLabel","emailValue","blankLine","tokenizeBlankLine","partial","tokenizeBlockQuoteStart","tokenizeBlockQuoteContinuation","contStart","contBefore","characterEscape","tokenizeCharacterEscape","characterReference","tokenizeCharacterReference","numeric","nonLazyContinuation","tokenizeNonLazyContinuation","tokenizeCodeFenced","closeStart","tokenizeCloseStart","initialPrefix","sizeOpen","beforeSequenceOpen","tail","sequenceOpen","infoBefore","atNonLazyBreak","info","metaBefore","contentBefore","beforeContentChunk","contentChunk","effects2","ok2","nok2","startBefore","start2","beforeSequenceClose","sequenceClose","sequenceCloseAfter","tokenizeCodeIndented","furtherStart","tokenizeFurtherStart","afterPrefix","atBreak","furtherStart2","tokenizeCodeText","resolveCodeText","tailExitIndex","headEnterIndex","between","subtokenize","jumps","lineIndex","otherIndex","otherEvent","subevents","more","_isInFirstContentOfListItem","subcontent","eventIndex","startPosition","startPositions","tokenizer","childEvents","gaps","adjust","breaks","_gfmTasklistFirstContentOfListItem","tokenizeContent","resolveContent","continuationConstruct","tokenizeContinuation","chunkInside","contentEnd","contentContinue","startLookahead","factoryDestination","literalType","literalMarkerType","stringType","balance","enclosedBefore","enclosed","enclosedEscape","rawEscape","factoryLabel","markerType","labelInside","labelEscape","factoryTitle","begin","escape","factoryWhitespace","tokenizeDefinition","titleBefore","tokenizeTitleBefore","identifier","labelAfter","markerAfter","destinationBefore","destinationAfter","afterWhitespace","defined","titleBefore2","beforeMarker","titleAfter","titleAfterOptionalWhitespace","tokenizeHardBreakEscape","headingAtx","tokenizeHeadingAtx","resolveHeadingAtx","sequenceFurther","htmlBlockNames","htmlRawNames","tokenizeHtmlFlow","resolveTo","resolveToHtmlFlow","blankLineBefore","tokenizeBlankLineBefore","nonLazyContinuationStart","tokenizeNonLazyContinuationStart","closingTag","markerB","declarationOpen","tagCloseStart","continuationDeclarationInside","commentOpenInside","cdataOpenInside","basicSelfClosing","completeClosingTagAfter","completeAttributeNameBefore","completeEnd","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCdataInside","continuationStart","continuationAfter","continuationStartNonLazy","continuationBefore","continuationRawEndTag","tokenizeHtmlText","returnState","instruction","tagOpen","declaration","commentEnd","comment","commentClose","lineEndingBefore","cdata","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","lineEndingAfter","lineEndingAfterPrefix","labelEnd","tokenizeLabelEnd","resolveToLabelEnd","resolveAllLabelEnd","resourceConstruct","tokenizeResource","referenceFullConstruct","tokenizeReferenceFull","referenceCollapsedConstruct","tokenizeReferenceCollapsed","_inactive","_balanced","labelStart","labelEndNok","labelEndOk","referenceNotFull","resourceStart","resourceBefore","resourceOpen","resourceEnd","resourceDestinationAfter","resourceDestinationMissing","resourceBetween","resourceTitleAfter","referenceFull","referenceFullAfter","referenceFullMissing","referenceCollapsedStart","referenceCollapsedOpen","labelStartImage","tokenizeLabelStartImage","labelStartLink","tokenizeLabelStartLink","tokenizeLineEnding","tokenizeThematicBreak","sequence","list","tokenizeListStart","tokenizeListContinuation","tokenizeListEnd","listItemPrefixWhitespaceConstruct","tokenizeListItemPrefixWhitespace","indentConstruct","tokenizeIndent$1","initialSize","onBlank","endOfPrefix","otherPrefix","initialBlankLine","notBlank","furtherBlankLines","notInCurrentItem","setextUnderline","tokenizeSetextUnderline","resolveToSetextUnderline","definition2","heading","flow$1","initializeFlow","initial","atBlankEnding","flowInitial","afterConstruct","resolver","createResolver","string$1","initializeFactory","text$3","field","initializeText","resolveAllLineSuffixes","notText","extraResolver","resolveAllText","chunks","tabs","bufferIndex","chunk","_index","createTokenizer","initialize","columnStart","resolveAllConstructs","exit2","constructFactory","onsuccessfulconstruct","onsuccessfulcheck","main","addResult","expandTabs","serializeChunks","sliceChunks","accountForPotentialSkip","chunkIndex","go","fields","construct","restore","onreturn","bogusState","listOfConstructs","constructIndex","handleListOfConstructs","handleMapOfConstructs","handleConstruct","from2","startPoint","startPrevious","startCurrentConstruct","startEventsIndex","startStack","startIndex","startBufferIndex","endIndex","endBufferIndex","view","atTab","document$1","text$2","defaultConstructs","creator","postprocess","preprocess","atCarriageReturn","preprocessor","endPosition","lastIndex","micromark","wwwPrefix","tokenizeWwwPrefix","tokenizeDomain","tokenizePath","trail","tokenizeTrail","emailDomainDotTrail","tokenizeEmailDomainDotTrail","wwwAutolink","tokenizeWwwAutolink","previousWww","protocolAutolink","tokenizeProtocolAutolink","previousProtocol","emailAutolink","tokenizeEmailAutolink","previousEmail","text$1","gfmAutolinkLiteral","dot","gfmAtext","previousUnbalanced","atext","emailDomain","emailDomainAfter","emailDomainDot","wwwStart","wwwAfter","protocolStart","fromCodePoint","protocolPrefixInside","protocolSlashesInside","afterProtocol","protocolAfter","wwwPrefixInside","wwwPrefixAfter","underscoreInLastSegment","underscoreInLastLastSegment","domainInside","domainAfter","domainAtPunctuation","sizeClose","pathInside","pathAtPunctuation","trail2","trailCharRefStart","trailBracketAfter","trailCharRefInside","_gfmAutolinkLiteralWalkedInto","gfmAutolinkLiteralHtml","literalAutolinkEmail","literalAutolinkHttp","literalAutolinkWww","anchorFromToken","indent","tokenizeIndent","gfmFootnote","tokenizeDefinitionStart","tokenizeDefinitionContinuation","gfmFootnoteDefinitionEnd","tokenizeGfmFootnoteCall","tokenizePotentialGfmFootnoteCall","resolveToPotentialGfmFootnoteCall","gfmFootnotes","codePointAt","string2","callStart","callData","callEscape","labelAtMarker","whitespaceAfter","own","emptyOptions","defaultBackLabel","referenceIndex","rereferenceIndex","gfmFootnoteHtml","labelTagName","labelAttributes","backLabel","clobberPrefix","gfmFootnoteDefinition","gfmFootnoteDefinitionLabelString","gfmFootnoteCallString","footnoteStack","calls","counts","counter","safeId","reuseCounter","references","$0","gfmStrikethroughHtml","strikethrough","gfmStrikethrough","options_","single","singleTilde","tokenizeStrikethrough","resolveAllStrikethrough","insideSpan2","alignment","none","center","gfmTableHtml","table","tableAlign","_align","tableBody","tableData","tableColumn","align","tableHead","tableHeader","tableRow","$1","EditMap","add2","addImpl","vecs","editMap","at","gfmTableAlign","inDelimiterRow","alignIndex","gfmTable","tokenizeTable","resolveTable","sizeB","bodyRowStart","headRowBefore","headRowStart","headRowBreak","headDelimiterStart","headRowData","headRowEscape","headDelimiterBefore","headDelimiterValueBefore","headDelimiterCellBefore","headDelimiterNok","headDelimiterLeftAlignmentAfter","headDelimiterCellAfter","headDelimiterFiller","headDelimiterRightAlignmentAfter","bodyRowBreak","bodyRowData","bodyRowEscape","currentTable","currentBody","currentCell","inFirstCellAwaitingPipe","rowKind","lastCell","cell","afterHeadAwaitingFirstBodyRow","lastTableEnd","flushTableEnd","flushCell","range","rowEnd","previousCell","groupName","valueName","getPoint","relatedStart","relatedEnd","valueToken","exits","related","side","reFlow","reText","gfmTagfilterHtml","exitHtmlData","gfmTaskListItemHtml","taskListCheck","taskListCheckValueChecked","tasklistCheck","tokenizeTasklistCheck","gfmTaskListItem","spaceThenNonSpace","gfm","gfmHtml","carriageReturn","lineFeed","carriageReturnLineFeed","horizontalTab","virtualSpace","nul","soh","stx","etx","eot","enq","ack","bel","bs","ht","lf","vt","ff","cr","so","si","dle","dc1","dc2","dc3","dc4","nak","syn","etb","can","em","sub","fs","gs","rs","us","exclamationMark","quotationMark","dollarSign","percentSign","ampersand","apostrophe","leftParenthesis","rightParenthesis","asterisk","plusSign","comma","dash","digit0","digit1","digit2","digit3","digit4","digit5","digit6","digit7","digit8","digit9","semicolon","lessThan","equalsTo","greaterThan","atSign","uppercaseA","uppercaseB","uppercaseC","uppercaseD","uppercaseE","uppercaseF","uppercaseG","uppercaseH","uppercaseI","uppercaseJ","uppercaseK","uppercaseL","uppercaseM","uppercaseN","uppercaseO","uppercaseP","uppercaseQ","uppercaseR","uppercaseS","uppercaseT","uppercaseU","uppercaseV","uppercaseW","uppercaseX","uppercaseY","uppercaseZ","leftSquareBracket","backslash","rightSquareBracket","caret","underscore","graveAccent","lowercaseA","lowercaseB","lowercaseC","lowercaseD","lowercaseE","lowercaseF","lowercaseG","lowercaseH","lowercaseI","lowercaseJ","lowercaseK","lowercaseL","lowercaseM","lowercaseN","lowercaseO","lowercaseP","lowercaseQ","lowercaseR","lowercaseS","lowercaseT","lowercaseU","lowercaseV","lowercaseW","lowercaseX","lowercaseY","lowercaseZ","leftCurlyBrace","verticalBar","rightCurlyBrace","tilde","degree","byteOrderMarker","replacementCharacter","underlineTokenize","insideEscape","underlineConstruct","underline","underlineHtml","usertagTokenize","usertagConstruct","usertag","usertagHtml","users","usertagContent","userId","user","find","user2","markdown","textFormatting","gfmDisabled","linkify","markdown2","replaceAll","singleLine","element2","types","innerText","IMAGE_TYPES","VIDEO_TYPES","AUDIO_TYPES","_sfc_main$n","roomList","reply","linkOptions","parsedMessage","checkType","checkImageType","lastIndexOf","slashIndex","substring","isMedia","setImageSize","Image","onLoad","img","ratio","round","src","openTag","_hoisted_1$n","_hoisted_2$k","_hoisted_3$h","_sfc_render$n","rel","FormatMessage","HANDLERS_PROPERTY","HAS_WINDOWS","HAS_NAVIGATOR","IS_TOUCH","msMaxTouchPoints","EVENTS","processDirectiveArguments","bindingValue","isFunction2","middleware","isActive","detectIframe","capture","execHandler","onFauxIframeClick","contains","onEvent","composedPath","isClickOutside","eventName","srcTarget","documentElement","detectIframeEvent","thisHandler","vClickOutside","typingText","room","typingUsers","checkMediaType","isImageFile","isVideoFile","isImageVideoFile","isAudioFile","_sfc_main$m","clickOutside","roomActions","roomMenuOpened","getLastMessage","isTyping","lastMessage","senderId","userStatus","isMessageCheckmarkVisible","saved","distributed","formattedDuration","files","isAudio","roomActionHandler","action","closeRoomMenu","_hoisted_1$m","_hoisted_2$j","_hoisted_3$g","_hoisted_4$f","_hoisted_5$a","_hoisted_6$6","_hoisted_7$6","_hoisted_8$4","_hoisted_9$4","_hoisted_10$4","_hoisted_11$3","_hoisted_12$3","_hoisted_13$1","_sfc_render$m","_component_format_message","_directive_click_outside","avatar","roomName","timestamp","new","idx","unreadCount","RoomContent","filteredItems","formatString","_sfc_main$l","showRoomsList","isMobile","roomsLoaded","customSearchRoomEnabled","scrollDistance","filteredRooms","observer","showLoader","loadingMoreRooms","selectedRoomId","oldVal","initIntersectionObserver","rootMargin","threshold","IntersectionObserver","isIntersecting","loadMoreRooms","searchRoom","ev","openRoom","_hoisted_1$l","_hoisted_2$i","_hoisted_3$f","_hoisted_4$e","_sfc_render$l","_component_rooms_search","_component_loader","_component_room_content","onSearchRoom","onAddRoom","fRoom","onRoomActionHandler","RoomsList","_sfc_main$k","singleRoom","roomInfoEnabled","menuActions","messageSelectionEnabled","messageSelectionActions","selectedMessagesTotal","menuOpened","messageSelectionAnimationEnded","lastChanged","menuActionHandler","closeMenu","messageSelectionActionHandler","_hoisted_1$k","_hoisted_2$h","_hoisted_3$e","_hoisted_4$d","_hoisted_5$9","_hoisted_6$5","_hoisted_7$5","_hoisted_8$3","_hoisted_9$3","_hoisted_10$3","_hoisted_11$2","_hoisted_12$2","_hoisted_13","_sfc_render$k","CANCEL_SELECT_MESSAGE","RoomHeader","assertNonEmptyString","DB_VERSION_CURRENT","DB_VERSION_INITIAL","STORE_EMOJI","STORE_KEYVALUE","STORE_FAVORITES","FIELD_TOKENS","INDEX_TOKENS","FIELD_UNICODE","INDEX_COUNT","FIELD_GROUP","FIELD_ORDER","INDEX_GROUP_AND_ORDER","KEY_ETAG","KEY_URL","KEY_PREFERRED_SKINTONE","MODE_READONLY","MODE_READWRITE","INDEX_SKIN_UNICODE","FIELD_SKIN_UNICODE","DEFAULT_DATA_SOURCE$1","DEFAULT_LOCALE$1","uniqBy$1","uniqEmoji","emojis","unicode","initialMigration","db","createObjectStore","keyPath","indexes","indexName","keyPath2","multiEntry","createIndex","openReqs","databaseCache","onCloseListeners","handleOpenOrDeleteReq","req","onblocked","onsuccess","async","createDatabase","dbName","indexedDB","onupgradeneeded","oldVersion","onclose","closeDatabase","openDatabase","dbPromise","storeName","readOnlyOrReadWrite","txn","transaction","durability","objectStore","oncomplete","listener","deleteDatabase","addOnCloseListener","irregularEmoticons","extractTokens","word","MIN_SEARCH_TEXT_LENGTH$1","normalizeTokens","transformEmojiData","emojiData","annotation","emoticon","order","shortcodes","skins","version2","tokens","flat","res2","skinTones","skinUnicodes","skinVersions","tone","emoji2","version3","callStore","getIDB","getAllIDB","commit","minBy","array","minItem","findCommonMembers","arrays","uniqByFunc","shortestArray","results","isEmpty","hasData","eTag","oldETag","oldUrl","doFullDatabaseScanForSingleResult","predicate","BATCH_SIZE","emojiStore","lastKey","processNextBatch","getAll","IDBKeyRange","lowerBound","loadData","transformedData","metaStore","todo","checkFetched","onFetched","put","getEmojiByGroup","bound","getEmojiBySearchQuery","query","intermediateResults","checkDone","onDone","only","getEmojiByShortcode","shortcode","lowerShortcodes","_2","getEmojiByUnicode","result2","incrementFavoriteEmojiCount","getTopFavoriteEmoji","customEmojiIndex2","favoritesStore","openCursor","cursor","continue","unicodeOrName","primaryKey","custom","byName","CODA_MARKER","trie","itemToTokens","currentMap","nextMap","valuesAtCoda","search2","results2","queue2","currentMap2","entriesSortedByKey","requiredKeys$1","assertCustomEmojis","customEmojis","isArray2","firstItemIsFaulty","customEmojiIndex","sortByName","emojiToTokens","searchTrie","searchByExactMatch","searchByPrefix","shortcodeToEmoji","nameToEmoji","customEmoji","byShortcode","cleanEmoji","warnETag","requiredKeys","assertEmojiData","assertStatus","dataSource","getETag","fetch","getETagAndData","json","arrayBufferToBinaryString","binary","bytes","Uint8Array","byteLength","binaryStringToArrayBuffer","jsonChecksum","inString","inBuffer","outBuffer","crypto","subtle","digest","outBinString","checkForUpdates","eTagAndData","loadDataForFirstTime","Database","locale","_dbName","_db","_lazyUpdate","_custom","_clear","_ready","_init","empty","ready","checkReady","customs","natives","getEmojiByUnicodeOrName","getPreferredSkinTone","setPreferredSkinTone","skinTone","_shutdown","noop","blank_object","run_all","is_function","thing","safe_not_equal","src_url_equal_anchor","current_component","src_url_equal","element_src","is_empty","action_destroyer","action_result","destroy","append","detach","listen","attr","attribute","set_data","wholeText","set_input_value","set_style","important","removeProperty","set_current_component","dirty_components","binding_callbacks","render_callbacks","flush_callbacks","resolved_promise","update_scheduled","schedule_update","tick","add_render_callback","seen_callbacks","flushidx","saved_component","$$","fragment","before_update","after_update","outroing","transition_in","local","globals","destroy_block","lookup","update_keyed_each","old_blocks","get_key","dynamic","create_each_block2","get_context","old_indexes","new_blocks","new_lookup","deltas","child_ctx","abs","will_move","did_move","insert2","first","new_block","old_block","new_key","old_key","mount_component","customElement","on_mount","on_destroy","new_on_destroy","destroy_component","detaching","make_dirty","init","create_fragment2","not_equal","append_styles","parent_component","on_disconnect","callbacks","skip_bound","rest","SvelteComponent","$$props","$$set","allGroups","groups","customGroup","MIN_SEARCH_TEXT_LENGTH","NUM_SKIN_TONES","rIC","requestIdleCallback","hasZwj","versionsAndTestEmoji","TIMEOUT_BEFORE_LOADING_MESSAGE","DEFAULT_SKIN_TONE_EMOJI","DEFAULT_NUM_COLUMNS","MOST_COMMONLY_USED_EMOJI","FONT_FAMILY","DEFAULT_CATEGORY_SORTING","getTextFeature","color","canvas","textBaseline","font","fillStyle","scale","fillText","getImageData","compareFeatures","feature1","feature2","feature1Str","feature2Str","testColorEmojiSupported","determineEmojiSupportLevel","emojiSupportLevelPromise","supportedZwjEmojis","VARIATION_SELECTOR","SKINTONE_MODIFIER","ZWJ","LIGHT_SKIN_TONE","LIGHT_SKIN_TONE_MODIFIER","applySkinTone","zwjIndex","halt","incrementOrDecrement","decrement","uniqBy","summarizeEmojisForUI","emojiSupportLevel","toSimpleSkinsMap","skin","category","rAF","baselineEmojiWidth","resizeObserverSupported","ResizeObserver","calculateWidth","onUpdate","resizeObserver","contentRect","calculateTextWidth","createRange","selectNode","checkZwjSupport","zwjEmojisToCheck","baselineEmoji","emojiToDomNode","domNode","emojiWidth","supported","uniq","Map_1","get_each_context","get_each_context_1","get_each_context_2","get_each_context_3","get_each_context_4","create_each_block_4","key_1","div","div_id_value","div_class_value","div_aria_selected_value","div_title_value","div_aria_label_value","t_value","new_ctx","create_each_block_3","button_aria_controls_value","button_aria_label_value","button_aria_selected_value","button_title_value","dispose","click_handler","categories","create_else_block_1","img_src_value","ctx2","create_if_block_1","create_each_block_2","button_role_value","button_class_value","button_id_value","select_block_type","current_block_type","if_block","create_each_block_1","div0","div0_id_value","div0_class_value","div1","div1_role_value","div1_aria_labelledby_value","div1_id_value","searchResultsLabel","each_blocks","each_1_lookup","each_value_2","create_else_block","create_if_block","create_each_block","select_block_type_1","create_fragment","section","div4","input_placeholder_value","input_aria_expanded_value","input_aria_activedescendant_value","t0","span0","t1","div2","button0","t2","button0_class_value","div2_class_value","span1","t3","div3","div3_class_value","div3_aria_label_value","div3_aria_activedescendant_value","div3_aria_hidden_value","div5","div5_aria_label_value","div7","div6","div8","t4","div8_class_value","div10","div9","div10_class_value","div10_role_value","div10_aria_label_value","div10_id_value","div11","div11_class_value","div11_aria_label_value","button1","section_aria_label_value","t0_value","searchLabel","t1_value","searchDescription","t3_value","skinToneDescription","each_blocks_3","each0_lookup","each_blocks_2","each1_lookup","each_blocks_1","each2_lookup","each3_lookup","each_value_4","each_value_3","get_key_1","each_value_1","get_key_2","each_value","get_key_3","skinTonesLabel","categoriesLabel","favoritesLabel","regionLabel","$$self","$$invalidate","rootElement","tabpanelElement","skinToneDropdown","skinToneButtonText","pickerStyle","defaultFavoriteEmojis","currentGroup","activeSearchItemId","skinToneEmoji","i18n","database","customCategorySorting","initialLoad","currentEmojis","currentEmojisWithCategories","rawSearchText","searchText","searchMode","activeSearchItem","skinTonePickerExpanded","skinTonePickerExpandedAfterAnimation","currentSkinTone","activeSkinTone","skinToneButtonLabel","currentFavorites","numColumns","isRtl","scrollbarWidth","currentGroupIndex","groups$1","databaseLoaded","focus","getRootNode","fireEvent","bubbles","composed","unicodeWithSkin","currentSkinTone2","labelWithSkin","isSkinToneOption","calculateEmojiGridStyle","newNumColumns","getPropertyValue","newIsRtl","parentWidth","parentElement","newScrollbarWidth","checkZwjSupportAndUpdate","rootNode","isZwjSupported","filterEmojisByVersion","summarizeEmojis","getEmojisByGroup","getEmojisBySearchQuery","onSearchKeydown","goToNextOrPrevious","clickEmoji","onNavClick","onNavKeydown","doFocus","emojiSummary","skinTonedUnicode","onEmojiClick","onSkinToneOptionsClick","onClickSkinToneButton","onSkinToneOptionsKeydown","changeActiveSkinTone","nextSkinTone","onSkinToneOptionsKeyup","onSkinToneOptionsFocusOut","relatedTarget","input_input_handler","div3_binding","$$value","level","emojiUnsupportedMessage","div10_binding","button1_binding","section_binding","$$props2","handleDatabaseLoading","showingLoadingMessage","timeoutHandle","loadingMessage","networkErrorMessage","clearTimeout","updateEmojis","currentSearchText","newEmojis","currentGroupId","updatePreferredSkinTone","skinToneLabel","updateDefaultFavoriteEmojis","updateFavorites","dbFavorites","favorites","scrollTop","calculateCurrentEmojisWithCategories","categoriesToEmoji","Picker","DEFAULT_DATA_SOURCE","DEFAULT_LOCALE","enI18n","activities","objects","symbols","flags","PROPS","PickerElement","_dbFlush","_cmp","observedAttributes","attributeChangedCallback","attrName","_dbCreate","findParentBySelector","customElements","define","_sfc_main$j","emojiOpened","emojiReaction","positionTop","positionRight","emojiDataSource","emojiPickerHeight","emojiPickerTop","emojiPickerRight","addCustomStyling","emojiPicker","picker","nav","searchBox","openEmoji","setEmojiPickerPosition","clientY","innerWidth","innerHeight","mobileSize","roomFooterRef","roomFooterTop","pickerTopPosition","_hoisted_1$j","_sfc_render$j","_component_emoji_picker","EmojiPickerContainer","_sfc_main$i","isImage","isVideo","_hoisted_1$i","_hoisted_2$g","_hoisted_3$d","_hoisted_4$c","_sfc_render$i","localUrl","controls","RoomFile","_sfc_main$h","_hoisted_1$h","_hoisted_2$f","_hoisted_3$c","_sfc_render$h","_component_room_file","onRemoveFile","RoomFiles","_sfc_main$g","percentage","isMouseDown","onMouseDown","seekPos","calculateLineHeadPosition","progress","onMouseMove","onMouseUp","progressWidth","leftPosition","pos","clientX","_hoisted_1$g","_hoisted_2$e","_sfc_render$g","onMousedown","onMouseover","onMouseout","AudioControl","_sfc_main$f","isPlaying","convertTimeMMSS","playedTime","playerUniqId","audioSource","resetProgress","player","updateProgressTime","onTimeUpdate","seconds","playback","pause","play","currentTime","onUpdateProgress","_hoisted_1$f","_hoisted_2$d","_sfc_render$f","_component_audio_control","onChangeLinehead","onHoverAudioProgress","AudioPlayer","_sfc_main$e","messageReply","firstFile","isOtherFile","_hoisted_1$e","_hoisted_2$c","_hoisted_3$b","_hoisted_4$b","_hoisted_5$8","_hoisted_6$4","_hoisted_7$4","_hoisted_8$2","_hoisted_9$2","_hoisted_10$2","_hoisted_11$1","_hoisted_12$1","_sfc_render$e","_component_audio_player","RoomMessageReply","_sfc_main$d","filteredUsersTag","selectItem","activeUpOrDown","activeItem","_hoisted_1$d","_hoisted_2$b","_hoisted_3$a","_hoisted_4$a","_sfc_render$d","RoomUsersTag","_sfc_main$c","filteredEmojis","_hoisted_1$c","_hoisted_2$a","_sfc_render$c","RoomEmojis","_sfc_main$b","filteredTemplatesText","_hoisted_1$b","_hoisted_2$9","_hoisted_3$9","_hoisted_4$9","_hoisted_5$7","_sfc_render$b","RoomTemplatesText","new_byte$4","Int8Array","new_short","Int16Array","new_int$d","Int32Array","new_float$f","Float32Array","new_double$1","Float64Array","new_float_n$6","sz","A","new_int_n$2","new_short_n$1","new_array_n$1","Arrays$7","toIndex","System$a","srcPos","dest","destPos","srcEnd","out","println","log","printf","Util$5","ShortBlock$3","ordinal","SQRT2","FAST_LOG10","log10","FAST_LOG10_X","y","short_block_allowed","short_block_coupled","short_block_dispensed","short_block_forced","Float$2","VbrMode$7","MAX_VALUE","vbr_off","vbr_mt","vbr_rh","vbr_abr","vbr_mtrh","vbr_default","assert$b","System","VbrMode","Float","ShortBlock","Util","Arrays","new_array_n","new_byte","new_double","new_float","new_float_n","new_int","new_int_n","new_short_n","assert","System$9","Util$4","Arrays$6","new_float$e","NewMDCT","enwindow","NS","NL","win","tantab_l","Encoder","SHORT_TYPE","cx","ca","cs","window_subband","x1","x1Pos","xr","wp","x2","mdct_short","inout","inoutPos","tc0","tc1","tc2","ts0","ts1","ts2","mdct_long","outPos","_in","ct","st","tc3","tc4","ts5","ts6","ts7","ts8","ts3","ts4","tc5","tc6","tc7","tc8","mdct_sub48","gfc","w0","w1","wk","wkPos","ch","channels_out","gr","mode_gr","band","gi","l3_side","tt","mdct_enc","mdct_encPos","samp","sb_sample","sampPos","block_type","band0","band1","mixed_block_flag","amp_filter","work","bd","arraycopy","System$8","new_float$d","new_float_n$5","III_psy_xmin","SBMAX_l","SBMAX_s","iii_psy_xmin","III_psy_ratio","thm","en","MPEGMode","_ordinal","STEREO","JOINT_STEREO","DUAL_CHANNEL","MONO","NOT_SET","System$7","VbrMode$6","new_float$c","new_float_n$4","new_int$c","assert$a","FFTOFFSET","MPG_MD_MS_LR","psy","vbr","qupvt","setModules","_bs","_psy","_qupvt","_vbr","newMDCT","adjust_ATH","gr2_max","max_pow","ATH","useAdjust","loudness_sq","aaSensitivityP","adjustLimit","adj_lim_new","updateStats","bitrate_index","mode_ext","bitrate_stereoMode_Hist","bt","bitrate_blockType_Hist","lame_encode_frame_init","gfp","inbuf","internal_flags","primebuff0","primebuff1","mf_size","BLKSIZE","framesize","lame_encode_mp3_frame","inbuf_l","inbuf_r","mp3buf","mp3bufPos","mp3buf_size","mp3count","masking_LR","masking","masking_MS","pe_use","tot_ener","ms_ener_ratio","pe","pe_MS","padding","slot_lag","frac_SpF","out_samplerate","psymodel","bufp","bufpPos","blocktype","VBR","L3psycho_anal_vbr","L3psycho_anal_ns","cod_info","NORM_TYPE","MPG_MD_LR_LR","force_ms","sum_pe_MS","sum_pe_LR","gi0","gi1","analysis","pinfo","ms_ratio","ers","energy","nsPsy","pefirbuf","fircoef","iteration_loop","format_bitstream","copy_buffer","bWriteVbrTag","addVbrFrame","pcmdata","set_frame_pinfo","ENCDELAY","POSTDELAY","MDCTDELAY","DECDELAY","SBLIMIT","CBANDS","SBPSY_l","SBPSY_s","PSFB21","PSFB12","HBLKSIZE","BLKSIZE_s","HBLKSIZE_s","START_TYPE","STOP_TYPE","MPG_MD_LR_I","MPG_MD_MS_I","Util$3","new_float$b","FFT","window2","window_s","costab","fht","fz","fzPos","k4","fi","tri","k1","k2","k3","kx","f1","f0","f3","f2","g0","g1","g2","g3","rv_tbl","fft_short","x_real","chn","bufPos","fft_long","jj","init_fft","cos","PI","VbrMode$5","Float$1","ShortBlock$2","Util$2","Arrays$5","new_float$a","new_float_n$3","new_int$b","assert$9","PsyModel","fft","LOG10","rpelev","rpelev2","rpelev_s","rpelev2_s","DELBARK","VO_SCALE","temporalmask_sustain_sec","NS_PREECHO_ATT0","NS_PREECHO_ATT1","NS_PREECHO_ATT2","NS_MSFIX","NSFIRLEN","LN_TO_LOG10","NON_LINEAR_SCALE_ENERGY","psycho_loudness_approx","loudness_power","eql_w","compute_ffts","fftenergy","fftenergy_s","wsamp_l","wsamp_lPos","wsamp_s","wsamp_sPos","gr_out","re","im","totalenergy","energy_save","athaa_loudapprox","loudness_sq_save","ma_max_i1","ma_max_i2","ma_max_m","I1LIMIT","I2LIMIT","MLIMIT","tab","init_mask_add_max_values","pow","table1","table2","table3","mask_add","m1","m2","kk","shortblock","cb_s","cb_l","table2_","vbrpsy_mask_add","calc_interchannel_masking","sb","sblock","msfix1","mld","mld_l","rmid","rside","mld_s","ns_msfix","msfix","athadjust","msfix2","athlower","ath","bm_l","thmLR","thmM","thmS","bm_s","convert_partition2scalefac_s","eb","thr","enn","thmm","bo_s_sb","bo_s","npart_s","b_lim","w_curr","PSY","bo_s_weight","w_next","convert_partition2scalefac_l","bo_l_sb","bo_l","npart_l","bo_l_weight","compute_masking_s","ebb","numlines_s","s3ind_s","ecb","s3_ss","nb_s1","blocktype_old","nb_s2","block_type_set","uselongblock","blocktype_d","short_blocks","NS_INTERP","regcoef_s","pecalc_s","mr","masking_lower","pe_s","regcoef_l","pecalc_l","pe_l","calc_energy","avg","numlines_l","rnumlines_l","calc_mask_index_l","mask_idx","last_tab_entry","vbrpsy_compute_fft_l","vbrpsy_compute_fft_s","vbrpsy_compute_loudness_approximation_l","masking_ratio","masking_MS_ratio","percep_entropy","percep_MS_entropy","numchn","pcfact","wsamp_L","wsamp_S","eb_l","eb_s","ns_hpfsmpl","mask_idx_l","mask_idx_s","ResvMax","ResvSize","firbuf2","firbufPos","sum1","sum2","attackThreshold","en_subshort","en_short","attack_intensity","ns_uselongblock","ns_attacks","last_en_subshort","pf","pfPos","pfe","ers_save","attackthre_s","attackthre","lastAttacks","s3ind","eb2","s3_ll","nb_1","nb_2","interChRatio","ATHlower","ppe","ppePos","fircoef_","vbrpsy_attack_detection","sub_short_factor","n_chn_out","n_chn_psy","firbuf","factor","vbrpsy_skip_masking_s","vbrpsy_skip_masking_l","psyvbr_calc_mask_index_s","vbrpsy_compute_masking_s","float","int","dd","dd_n","avg_mask","minval_s","vbrpsy_compute_masking_l","ecb_limit","ecb_limit_2","ecb_limit_1","minval_l","vbrpsy_compute_block_type","vbrpsy_apply_block_type","vbrpsy_compute_MS_thresholds","cb_mld","ath_cb","ebM","ebS","thmL","thmR","mld_m","thmMS","s3_func_x","bark","hf_slope","tempy","tempx","exp","norm_s3_func_x","lim_a","lim_b","sum","norm","s3_func","temp","sqrt","freq2bark","freq","atan","init_numline","numlines","bo","bval","bval_width","bo_w","sfreq","blksize","scalepos","deltafreq","sbmax","b_frq","sample_freq_frac","partition","ni","j2","bark1","sfb","i1","f_tmp","bark2","init_s3_values","npart","use_old_s3","s3","numberOfNoneZero","s3_x_norm","stereo_demask","ATHformula_GB","ch01","mld_cb_l","mld_cb_s","new_thmm","psymodel_init","useOldS3","bvl_a","bvl_b","snr_l_a","snr_l_b","snr_s_a","snr_s_b","experimentalZ","ms_ener_ratio_old","scalefac_band","snr","ATHformula","decay","exp_nspsytune","frame_duration","ATHtype","freq_inc","eql_balance","ATHcurve","LameGlobalFlags","class_id","num_samples","num_channels","in_samplerate","scale_left","scale_right","decode_only","quality","free_format","findReplayGain","decode_on_the_fly","write_id3tag_automatic","brate","compression_ratio","original","error_protection","strict_ISO","disable_reservoir","quant_comp","quant_comp_short","experimentalY","preset","VBR_q_frac","VBR_q","VBR_mean_bitrate_kbps","VBR_min_bitrate_kbps","VBR_max_bitrate_kbps","VBR_hard_min","lowpassfreq","highpassfreq","lowpasswidth","highpasswidth","maskingadjust","maskingadjust_short","ATHonly","ATHshort","noATH","athaa_type","athaa_sensitivity","useTemporal","tune","tune_value_a","encoder_delay","encoder_padding","frameNum","lame_allocated_gfp","L3Side$1","SFBMAX","new_float$9","new_int$a","GrInfo","l3_enc","scalefac","xrpow_max","part2_3_length","big_values","count1","global_gain","scalefac_compress","table_select","subblock_gain","region0_count","region1_count","preflag","scalefac_scale","count1table_select","part2_length","sfb_lmax","sfb_smin","psy_lmax","sfbmax","psymax","sfbdivide","count1bits","sfb_partition_table","slen","max_nonzero_coeff","clone_int","clone_float","other","new_int$9","IIISideInfo","main_data_begin","private_bits","resvDrain_pre","resvDrain_post","scfsi","System$6","new_int$8","ScaleFac","arrL","arrS","arr21","arr12","psfb21","psfb12","new_float$8","new_float_n$2","new_int$7","NsPsy","longfact","shortfact","VBRSeekInfo","want","bag","nVbrNumFrames","nBytesWritten","TotalFrameSize","new_byte$3","new_float$7","new_float_n$1","new_int$6","new_int_n$1","LameInternalFlags$1","MAX_HEADER_LEN","Header","write_timing","Class_ID","iteration_init_init","fill_buffer_resample_init","mfbuf","MFSIZE","channels_in","resample_ratio","mf_samples_to_encode","VBR_min_bitrate","VBR_max_bitrate","samplerate_index","lowpass1","lowpass2","highpass1","highpass2","noise_shaping","noise_shaping_amp","substep_shaping","noise_shaping_stop","use_best_huffman","full_outer_loop","tag_spec","nMusicCRC","OldValue","CurrentStep","bv_scf","pseudohalf","sfb21_extra","inbuf_old","blackfilt","BPC","itime","sideinfo_len","header","MAX_HEADER_BUF","h_ptr","w_ptr","ancillary_flag","numlines_s_num1","numlines_l_num1","ms_ratio_s_old","ms_ratio_l_old","VBR_seek_table","nogap_total","nogap_current","findPeakSample","PeakSample","RadioGain","AudiophileGain","rgdata","noclipGainChange","noclipScale","hip","in_buffer_nsamples","in_buffer_0","in_buffer_1","MAX_BITS_PER_CHANNEL","MAX_BITS_PER_GRANULE","new_float$6","System$5","Arrays$4","GainAnalysis$1","PINK_REF","RMS_PERCENTILE","RMS_WINDOW_TIME_NUMERATOR","RMS_WINDOW_TIME_DENOMINATOR","ABYule","ABButter","filterYule","inputPos","output","outputPos","nSamples","kernel","filterButter","ResetSampleFrequency","rgData","samplefreq","MAX_ORDER","linprebuf","lstepbuf","loutbuf","rinprebuf","rstepbuf","routbuf","reqindex","INIT_GAIN_ANALYSIS_ERROR","sampleWindow","lsum","rsum","totsamp","ill","INIT_GAIN_ANALYSIS_OK","fsqr","analyzeResult","Array2","elems","GAIN_NOT_ENOUGH_SAMPLES","upper","STEPS_per_dB","InitGainAnalysis","linpre","rinpre","lstep","rstep","lout","rout","B","AnalyzeSamples","left_samples","left_samplesPos","right_samples","right_samplesPos","curleft","curleftBase","curright","currightBase","batchsamples","cursamples","cursamplepos","GAIN_ANALYSIS_OK","GAIN_ANALYSIS_ERROR","ival","GetTitleGain","retval","MAX_dB","YULE_ORDER","MAX_SAMP_FREQ","MAX_SAMPLES_PER_WINDOW","new_float$5","new_int$5","ReplayGain","freqindex","MeanBits$1","meanBits","bits","new_float$4","new_int$4","assert$8","CBRNewIterationLoop","_quantize","quantize","max_bits","l3_xmin","xrpow","targ_bits","mean_bits","mb","rv","ResvFrameBegin","on_pe","ms_convert","reduce_side","masking_lower_db","mask_adjust","mask_adjust_short","init_outer_loop","init_xrpow","calc_xmin","outer_loop","iteration_finish_one","ResvFrameEnd","HuffCodeTab","hl","xlen","linmax","hlen","Tables$1","t1HB","t1l","t2HB","t2l","t3HB","t3l","t5HB","t5l","t6HB","t6l","t7HB","t7l","t8HB","t8l","t9HB","t9l","t10HB","t10l","t11HB","t11l","t12HB","t12l","t13HB","t13l","t16_5l","t15HB","t15l","t16HB","t16l","t24HB","t24l","t32HB","t32l","t33HB","t33l","largetbl","table23","table56","bitrate_table","samplerate_table","scfsi_band","VbrMode$4","Util$1","new_float$3","new_int$3","assert$7","QuantizePVT","tak","POW20","pow20","Q_MAX2","_tk","_rv","IPOW20","ipow20","DBL_EPSILON","IXMAX_VAL","PRECALC_SIZE","Q_MAX","NSATHSCALE","nr_of_sfb_block","pretab","sfBandIndex","pow43","adj43","ATHmdct","compute_ath","ATH_l","ATH_psfb21","ATH_s","ATH_psfb12","samp_freq","ATH_f","StartLine","iteration_init","bass","alto","treble","sfb21","huffman_init","cbr","tbits","add_bits","extra_bits","ResvMaxBits","fac","move_bits","athAdjust","athFloor","pxmin","gsfb","pxminPos","ath_over","ATH2","enable_athaa_fix","xmin","rh1","rh2","en0","xa","xb","max_nonzero","BitStream$1","EQ","tmpATH","calc_noise_core","startline","step","noise","ix","ix01","calc_noise","distort","prev_noise","distortPos","l3_xminPos","over","over_noise_db","tot_noise_db","max_noise","scalefacPos","over_SSD","noise_log","usefullsize","sl","over_count","tot_noise","over_noise","set_pinfo","sfb2","en1","ifqstep","L3Side","xfsf","CalcNoiseResult","bw","LAMEsfb","en_s","xfsf_s","thr_s","LAMEsfb_s","LAMEqss","LAMEmainbits","LAMEsfbits","LARGE_BITS","System$4","Arrays$3","new_int$2","assert$6","Takehiro","Bits","subdv_table","quantize_lines_xrpow_01","istep","xrPos","ixPos","compareval0","quantize_lines_xrpow","remaining","x0","x3","rx0","rx1","rx2","rx3","quantize_xrpow","xp","pi","codInfo","prevNoise","prev_data_use","accumulate","accumulate01","xpPos","iData","iDataPos","acc_iData","acc_iDataPos","acc_xp","acc_xpPos","sfb_count1","ix_max","endPos","max1","max2","count_bit_ESC","linbits","count_bit_noESC","hlen1","count_bit_noESC_from2","count_bit_noESC_from3","sum3","hlen2","hlen3","huf_tbl_noESC","choose_table","choice2","choice","recalc_divide_init","r01_bits","r01_div","r0_tbl","r1_tbl","bigv","r0","a1","r0bits","bi","r0t","r1","a2","r1t","recalc_divide_sub","cod_info2","r2","r2t","noquant_count_bits","best_huffman_divide","count_bits","gain","roundfac","slen1_n","slen2_n","slen1_tab","slen2_tab","scfsi_calc","all_scalefactors_not_negative","best_scalefac_store","recalc","scale_bitcount","scale_bitcount_lsf","scale_short","scale_mixed","scale_long","max_slen1","max_slen2","max_range_sfac_tab","table_number","row_in_table","nr_sfb","max_sfac","partition_table","slen1","slen2","slen3","slen4","log2tab","bv_index","scfb_anz","System$3","Arrays$2","new_byte$2","new_int$1","assert$5","CRC16_POLYNOMIAL","ga","mpg","ver","_ga","_mpg","_ver","totbit","bufByteIdx","bufBitIdx","putheader_bits","putbits2","putbits_noheaders","drain_into_ancillary","remainingBits","getLameShortVersion","writeheader","CRC_update","crc","encodeSideInfo2","bitsPerFrame","CRC_writeheader","old","huffman_coder_count1","huffbits","Huffmancode","tableindex","cbits","xbits","ext","linbits_x1","linbits_x2","ShortHuffmancodebits","region1Start","LongHuffmancodebits","bigvalues","region2Start","writeMainData","data_bits","tot_bits","sfb_partition","scale_bits","sfbs","TotalBytes","total","compute_flushbits","total_bytes_output","flushbits","remaining_headers","last_ptr","first_ptr","getframebits","bit_rate","byte","flush_bitstream","NEQ","GainAnalysis","add_dummy_byte","bufferPos","mp3data","minimum","updateMusicCRC","pcm_buf","mp3_in","samples_out","hip_decode1_unclipped","init_bit_stream_w","Lame$1","LAME_MAXMP3BUFFER","System$2","VbrMode$3","ShortBlock$1","new_float$2","assert$4","LAME_MAXALBUMART","V9","V8","V7","V6","V5","V4","V3","V2","V1","V0","R3MIX","STANDARD","EXTREME","INSANE","STANDARD_FAST","EXTREME_FAST","MEDIUM","MEDIUM_FAST","qu","id3","mpglib","LowPassHighPass","lowerlimit","BandPass","bitrate","lPass","lowpass","enc","_qu","_id3","_mpglib","LAME_ID","lame_init_old","filter_coef","optimum_samplefreq","input_samplefreq","suggested_samplefreq","SmpFrqIndex","sample_freq","gpf","FindNearestBitrate","bRate","samplerate","BitrateIndex","optimum_bandwidth","lh","freq_map","table_index","nearestBitrateFullIndex","lame_init_params_ppflt","lowpass_band","highpass_band","minband","maxband","fc1","fc2","lame_init_qval","lame_init_bitstream","id3tag_write_v2","InitVbrTag","update_inbuffer_size","nsamples","calcNeeded","mf_needed","lame_encode_buffer_sample","buffer_l","buffer_r","mp3out","mp3size","in_buffer","in_bufferPos","in_buffer_ptr","n_in","n_out","inOut","InOut","fill_buffer","buf_size","lame_encode_frame","NumUsed","num_used","gcd","blackman","fcn","wcn","bkwn","sin","fill_buffer_resample","outbuf","outbufPos","desired_len","bpc","intratio","filter_l","BLACKSIZE","time0","joff","xvalue","n_shift","io","numUsed","lame_init","full_bitrate_table","lower_range","lower_range_kbps","upper_range","upper_range_kbps","lame_init_params","map2MP3Frequency","linear_int","hip_decode_exit","hip_decode_init","cmp","apply_preset","LAME_DEFAULT_QUALITY","VBRNewIterationLoop","VBROldIterationLoop","vbrmode","ABRIterationLoop","NSATTACKTHRE","NSATTACKTHRE_S","lame_encode_flush","mp3buffer","mp3bufferPos","mp3buffer_size","mp3buffer_size_remaining","end_padding","frames_left","imp3","samples_to_encode","bunch","frame_num","lame_encode_buffer","id3tag_write_v1","VbrMode$2","Presets","VBRPresets","qual","compS","shThreshold","shThresholdS","adj","adjShort","lower","curve","sens","inter","joint","fix","vbr_q","quant_comp_s","expY","st_lrm","st_s","masking_adj","masking_adj_short","ath_lower","ath_curve","ath_sensitivity","interch","safejoint","sfb21mod","ABRPresets","kbps","sc","mask","interCh","sfScale","nsmsfix","nsbass","sfscale","lame","_lame","vbr_old_switch_map","vbr_psy_switch_map","apply_vbr_preset","vbr_preset","q","lame_set_VBR_q","abr_switch_map","apply_abr_preset","actual_bitrate","VBRQuantize","CalcNoiseResult$1","new_float$1","CalcNoiseData","System$1","VbrMode$1","Arrays$1","assert$3","Quantize","tk","init_xrpow_core","psfb21_analogsilence","ath21","ath12","BinSearchDirection","bin_search_StepSize","desired_rate","nBits","flagGoneOver","Direction","BINSEARCH_NONE","BINSEARCH_DOWN","BINSEARCH_UP","loop_break","penalties","get_klemm_noise","klemm_noise","quant_compare","best","calc","better","BitStream","amp_scalefac_bands","bRefine","ifqstep34","trigger2","inc_scalefac_scale","inc_subblock_gain","amp","balance_noise","ixwork","trancate_smallspectrums","allowedNoise","trancateThreshold","nsame","cod_info_w","save_xrpow","best_noise_info","best_part2_3_length","bEndOfSearch","best_ggain_pass1","age","search_limit","noise_info","maxggain","huff_bits","ResvAdjust","VBR_encode_granule","min_bits","dbits","bst_cod_info","bst_xrpow","Max_bits","real_bits","this_bits","LameInternalFlags","get_framebits","frameBits","MeanBits","VBR_old_prepare","bands","analog_silence","mxb","bitpressure_strategy","VBR_new_prepare","maximum_framebits","calc_target_bits","analog_silence_bits","max_frame_bits","res_factor","totbits","assert$2","Reservoir","maxmp3buf","frameLength","resvLimit","fullFrameBits","resvsize","over_bits","stuffingBits","mdb_bytes","Version","LAME_URL","LAME_MAJOR_VERSION","LAME_MINOR_VERSION","LAME_PATCH_VERSION","PSY_MAJOR_VERSION","PSY_MINOR_VERSION","getLameVersion","getLameVeryShortVersion","getPsyVersion","getLameUrl","getLameOsBitness","new_byte$1","assert$1","VBRTag","FRAMES_FLAG","BYTES_FLAG","TOC_FLAG","VBR_SCALE_FLAG","NUMTOCENTRIES","MAXFRAMESIZE","VBRHEADERSIZE","LAMEHEADERSIZE","XING_BITRATE1","XING_BITRATE2","XING_BITRATE25","ISO_8859_1","VBRTag0","VBRTag1","crc16Lookup","addVbr","v2","xingSeekTable","act","indx","seek_point","extractInteger","createInteger","createShort","isVbrTag","equals","shiftInBitsValue","setLameTagFrameHeader","bbyte","abyte","crcUpdateLookup","putLameVBR","musicLength","streamBuffer","streamBufferPos","revMethod","abrBitrate","bytesWritten","encDelay","encPadding","revision","vbrTypeTranslator","peakSignalAmplitude","radioReplayGain","audiophileReplayGain","noiseShaping","stereoMode","nonOptimal","sourceFreq","misc","musicCRC","expNPsyTune","safeJoint","noGapMore","noGapPrevious","noGapCount","noGapCurr","athType","skipId3v2","fpStream","seek","id3v2TagSize","id3v2Header","readFully","Tables","getVbrTag","pTagData","VBRTagData","hId","hSrIndex","hMode","hBitrate","samprate","head_flags","frames","toc","vbrScale","headersize","kbps_header","totalFrameSize","headerSize","getLameTagFrame","Lame","streamIndex","streamSize","putVbrTag","GetAudio","parse2","mpg2","Parse","ver2","id32","pre2","MPGLib","ID3Tag","_bits","Mp3Encoder$1","channels","gaud","maxSamples","encodeBuffer","_sz","subarray","fourccToInt","fourcc","Mp3Encoder","bitRate","sampleRate","dataBuffer","encoder","arrayBuffer","samples","_convertBuffer","finish","blob","Blob","URL","createObjectURL","_floatTo16BitPCM","Recorder","beforeRecording","pauseRecording","afterRecording","micFailed","encoderOptions","bufferSize","records","isPause","isRecording","volume","_duration","constraints","video","audio","channelCount","echoCancellation","mediaDevices","getUserMedia","_micCaptured","_micError","lameEncoder","getTracks","track2","processor","record","AudioContext","webkitAudioContext","createMediaStreamSource","createScriptProcessor","onaudioprocess","sample","inputBuffer","getChannelData","toFixed","connect","isChromium","chrome","winNav","vendorName","vendor","isOpera","opr","isIEedge","isIOSChrome","detectChrome","detectMobile","getUserAgent","userAgentPart","opera","_sfc_main$a","roomMessage","showSendIcon","showFiles","showAudio","showEmojis","showFooter","acceptedFiles","multipleFiles","captureFiles","textareaActionEnabled","textareaAutoFocus","userTagsEnabled","emojisSuggestionEnabled","templatesText","audioBitRate","audioSampleRate","initReplyMessage","initEditMessage","droppedFiles","editedMessage","cursorRangePosition","fileDialog","selectUsersTagItem","selectEmojiItem","selectTemplatesTextItem","format","activeUpOrDownEmojis","activeUpOrDownUsersTag","activeUpOrDownTemplatesText","emojisDB","keepKeyboardOpen","selectedUsersTag","recorder","initRecorder","isMessageEmpty","isFileLoading","recordedTime","shadowFooter","resetMessage","onChangeInput","getTextareaRef","replyMessage","editMessage","onFileChange","isComposed","isComposing","updateFooterLists","resetFooterList","stopRecorder","roomTextarea","focusTextarea","disableMobileFocus","setSelectionRange","resizeTextarea","scrollHeight","escapeTextarea","onPasteImage","pasteEvent","clipboardData","getAsFile","updateActiveUpOrDown","direction","selectEmoji","position","getCharPosition","selectTemplateText","addEmoji","launchFilePicker","click","fileURL","typeIndex","blobFile","loadedFile","file2","removeFile","toggleRecorder","recording","textareaActionHandler","newContent","usersTag","messageContent","initialContent","firstTag","secondTag","usertags","matchAll","selectUserTag","updateFooterList","tagChar","textareaCursorPosition","selectionStart","beforeTag","notLetterNumber","updateShowUsersTag","updateShowTemplatesText","editMode","cursorPosition","selectionEnd","initRoom","resetTextareaSize","preventKeyboardFromClosing","_hoisted_1$a","_hoisted_2$8","_hoisted_3$8","_hoisted_4$8","_hoisted_5$6","_hoisted_6$3","_hoisted_7$3","_sfc_render$a","_component_room_emojis","_component_room_users_tag","_component_room_templates_text","_component_room_message_reply","_component_room_files","_component_emoji_picker_container","onSelectEmoji","onActivateItem","onSelectUserTag","onSelectTemplateText","onResetMessage","onKeydown","onPaste","onAddEmoji","onOpenEmoji","accept","onChange","RoomFooter","_sfc_main$9","roomUsers","replyUsername","replyUser","_hoisted_1$9","_hoisted_2$7","_hoisted_3$7","_hoisted_4$7","_hoisted_5$5","_hoisted_6$2","_hoisted_7$2","_hoisted_8$1","_hoisted_9$1","_hoisted_10$1","_sfc_render$9","onUpdateProgressTime","progressTime","hoverAudioProgress","MessageReply","_sfc_main$8","radius","stroke","normalizedRadius","circumference","strokeDashoffset","_hoisted_1$8","_hoisted_2$6","_hoisted_3$6","_hoisted_4$6","_hoisted_5$4","_sfc_render$8","strokeLinecap","cy","ProgressBar","_sfc_main$7","imageResponsive","imageLoading","imageHover","isImageLoading","checkImgLoad","maxHeight","clientWidth","loaderTop","clientHeight","openFile","_hoisted_1$7","_hoisted_2$5","_hoisted_3$5","_hoisted_4$5","_sfc_render$7","_component_progress_bar","onMouseleave","preview","MessageFile","_sfc_main$6","imageVideoFiles","otherFiles","_hoisted_1$6","_hoisted_2$4","_hoisted_3$4","_hoisted_4$4","_hoisted_5$3","_sfc_render$6","_component_message_file","onOpenFile","onOpenUserTag","MessageFiles","_sfc_main$5","messageActions","showReactionEmojis","messageHover","hoverMessageId","menuOptionsTop","optionsOpened","optionsClosing","isMessageActions","filteredMessageActions","disableActions","isMessageReactions","disableReactions","onlyMe","openOptions","menuOptions","actionIcon","actionIconTop","optionsTopPosition","closeOptions","updateMessageHover","closeEmoji","messageActionHandler","sendMessageReaction","reaction","_hoisted_1$5","_hoisted_2$3","_hoisted_3$3","_hoisted_4$3","_sfc_render$5","MessageActions","_sfc_main$4","_hoisted_1$4","_sfc_render$4","reactions","MessageReactions","roomsValidation","roomsValidate","validate","obj2","validType","checkObjectValid","partcipantsValidation","participantsValidate","messagesValidation","messagesValidate","_sfc_main$3","editedMessageId","newMessages","showNewMessagesDivider","usernameOptions","selectedMessages","newMessage","showUsername","currentUser","minUsers","showDate","date","messageOffset","isMessageHover","isCheckmarkVisible","hasCurrentUserAvatar","hasSenderUserAvatar","isMessageSelected","resetMessageHover","onHoverMessage","canEditMessage","onLeaveMessage","openUserTag","selectMessage","_hoisted_1$3","_hoisted_2$2","_hoisted_3$2","_hoisted_4$2","_hoisted_5$2","_hoisted_6$1","_hoisted_7$1","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_sfc_render$3","_component_message_reply","_component_message_files","_component_message_actions","_component_message_reactions","system","edited","onUpdateMessageHover","onUpdateOptionsOpened","onUpdateEmojiOpened","onMessageActionHandler","onSendMessageReaction","failure","RoomMessage","_sfc_main$2","loadFirstRoom","autoScroll","loadingMessages","loadingMoreMessages","scrollIcon","scrollMessagesCount","showNoMessages","showNoRoom","noRoomSelected","updateLoadingMessages","showMessagesStarted","onRoomChanged","loadMoreMessages","preventTopScroll","scrollContainer","prevScrollHeight","scrollTo","touchStart","touchEvent","changedTouches","posXStart","posYStart","touchEvent2","touchEnd","posXEnd","posYEnd","swippedRight","swippedVertically","resetMessageSelection","unselectMessage","onMessageAdded","autoScrollOffset","scrolledUp","getBottomScroll","newAfterScrollUp","scrollToBottom","receive","onContainerScroll","bottomScroll","messageReaction","behavior","onDropFiles","dataTransfer","_hoisted_1$2","_hoisted_2$1","_hoisted_3$1","_hoisted_4$1","_hoisted_5$1","_hoisted_6","_hoisted_7","_sfc_render$2","_component_room_header","_component_room_message","_component_room_footer","onDrop","onDragenter","onDragover","onDragleave","onTouchstart","onToggleRoomsList","onRoomInfo","onMenuActionHandler","onMessageSelectionActionHandler","onCancelMessageSelection","onScroll","indexId","onOpenFailedMessage","onSelectMessage","onUnselectMessage","onUpdateEditedMessageId","onEditMessage","onTypingMessage","onTextareaActionHandler","Room","_sfc_main$1","modal","closeModal","_hoisted_1$1","_hoisted_2","_hoisted_3","autoplay","_hoisted_4","_hoisted_5","_sfc_render$1","tabindex","MediaPreview","locales","defaultThemeStyles","light","general","colorButtonClear","colorButton","backgroundColorButton","backgroundInput","colorPlaceholder","colorCaret","colorSpinner","borderStyle","backgroundScrollIcon","border","borderRadius","boxShadow","background","colorRoomName","colorRoomInfo","footer","borderStyleInput","borderInputSelected","backgroundReply","backgroundTagActive","backgroundTag","sidemenu","backgroundHover","backgroundActive","colorActive","borderColorSearch","backgroundMe","colorStarted","backgroundDeleted","backgroundSelected","colorDeleted","colorUsername","colorTimestamp","backgroundDate","colorDate","backgroundSystem","colorSystem","backgroundMedia","colorReplyUsername","colorReply","colorTag","backgroundImage","colorNewMessages","backgroundScrollCounter","colorScrollCounter","backgroundReaction","borderStyleReaction","backgroundReactionHover","borderStyleReactionHover","colorReactionCounter","backgroundReactionMe","borderStyleReactionMe","backgroundReactionHoverMe","borderStyleReactionHoverMe","colorReactionCounterMe","backgroundAudioRecord","backgroundAudioLine","backgroundAudioProgress","backgroundAudioProgressSelector","colorFileExtension","colorMulti","colorMessage","colorStateOnline","colorStateOffline","backgroundCounterBadge","colorCounterBadge","icons","closeImage","closeOutline","closePreview","sendDisabled","checkmarkSeen","dropdownMessage","dropdownMessageBackground","dropdownRoom","dropdownScroll","audioPlay","audioPause","audioCancel","audioConfirm","dark","cssThemeVars","_style_0","_sfc_main","theme","responsiveBreakpoint","roomsListOpened","roomsOrder","mediaPreviewEnabled","showMediaPreview","previewFile","textMessagesCasted","cssVars","defaultStyles","customStyles","stylesCasted","orderedRooms","roomsCasted","aVal","bVal","singleRoomCasted","castBoolean","roomsListOpenedCasted","loadingRoomsCasted","roomsLoadedCasted","loadFirstRoomCasted","messagesLoadedCasted","multipleFilesCasted","showSearchCasted","showAddRoomCasted","showSendIconCasted","showFilesCasted","showAudioCasted","showEmojisCasted","showReactionEmojisCasted","showNewMessagesDividerCasted","showFooterCasted","roomInfoEnabledCasted","textareaActionEnabledCasted","textareaAutoFocusCasted","userTagsEnabledCasted","emojisSuggestionEnabledCasted","mediaPreviewEnabledCasted","castArray","messagesCasted","roomActionsCasted","menuActionsCasted","messageActionsCasted","messageSelectionActionsCasted","templatesTextCasted","castObject","autoScrollCasted","textFormattingCasted","linkOptionsCasted","usernameOptionsCasted","fetchRoom","updateResponsive","isTrusted","toggleRoomsList","opened","fetchMessages","fetchMoreRooms","roomInfo","addRoom","deleteMessage","openFailedMessage","typingMessage","_hoisted_1","_sfc_render","_component_rooms_list","_component_room","_component_media_preview","onFetchRoom","onFetchMoreRooms","onLoadingMoreRooms","onFetchMessages","onDeleteMessage","onCloseMediaPreview","ChatWindow","VueAdvancedChat","PACKAGE_NAME","socket","roomInfoStr","roomInfoElm","room_name","room_title","user_id","WebSocket","onmessage","replyTo","__exports__","_withScopeId","_pushScopeId","_popScopeId","_createElementVNode","_component_notification_message","_createElementBlock","onFocus","onFocusout","numberOfUnread","_toDisplayString","_createCommentVNode","_Fragment","_renderList","viewed","onMouseup","_withModifiers","onMiddleClick","_normalizeClass","unviewed","relativeCreationDate","getTimezoneOffsetInMilliseconds","utcDate","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","setUTCFullYear","requiredArgs","toDate","argStr","startOfDay","dirtyDate","setHours","MILLISECONDS_IN_DAY","differenceInCalendarDays","dirtyDateLeft","dirtyDateRight","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","isValid","formatDistanceLocale","lessThanXSeconds","one","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","tokenValue","addSuffix","comparison","buildFormatLongFn","defaultWidth","formats","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","formatRelative","_date","_baseDate","_options","buildLocalizeFn","dirtyIndex","dirtyOptions","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","rem100","localize","era","quarter","month","day","dayPeriod","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchResult","matchedString","parsePatterns","defaultParseWidth","findKey","valueCallback","buildMatchPatternFn","parseResult","parsePattern","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","weekStartsOn","firstWeekContainsDate","toInteger","addMilliseconds","dirtyAmount","amount","subMilliseconds","getUTCDayOfYear","setUTCMonth","setUTCHours","startOfYearTimestamp","difference","startOfUTCISOWeek","getUTCDay","setUTCDate","getUTCDate","getUTCISOWeekYear","year","getUTCFullYear","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","startOfUTCISOWeekYear","fourthOfJanuary","MILLISECONDS_IN_WEEK","getUTCISOWeek","startOfUTCWeek","localeWeekStartsOn","defaultWeekStartsOn","RangeError","getUTCWeekYear","localeFirstWeekContainsDate","defaultFirstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","startOfUTCWeekYear","firstWeek","getUTCWeek","addLeadingZeros","targetLength","sign","formatters","signedYear","M","getUTCMonth","dayPeriodEnumValue","getUTCHours","H","getUTCMinutes","getUTCSeconds","S","numberOfDigits","milliseconds","getUTCMilliseconds","fractionalSeconds","dayPeriodEnum","G","unit","lightFormatters","Y","signedWeekYear","weekYear","twoDigitYear","R","isoWeekYear","Q","L","week","I","isoWeek","D","dayOfYear","E","dayOfWeek","localDayOfWeek","isoDayOfWeek","hours","K","X","_localize","originalDate","_originalDate","timezoneOffset","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","z","T","dirtyDelimiter","absOffset","minutes","delimiter","dateLongFormatter","timeLongFormatter","dateTimeLongFormatter","dateTimeFormat","datePattern","timePattern","longFormatters","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","formatStr","formatterOptions","firstCharacter","longFormatter","cleanEscapedString","formatter","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","dirtyBaseDate","baseDate","_ref","_ref$locale","_ref$weekStartsOn","utcBaseDate","form","suffix","feminineUnits","creationDate","setAsViewed","fr","NotificationMessage","PlayerState","_typeof","_defineProperty","ENABLE_DEBUG","Logger","debug","VideoPlayer","videoPlayerConfig","videoId","sound","canWait","loop","_startSeconds","startSeconds","videoPlayerArea","videoState","LOADING","videoElement","setupVideoElement","fullscreenElement","videojs","newRate","playbackRate","videoPlayers","onReady","onSeeking","onStateChange","ENDED","syncTime","BUFFERING","PLAYING","PAUSE","LOADED","READY","mainVideo","syncLoop","videoCurrentTime","mainCurrentTime","thisCurrentTime","timeTo","statesToPropagate","UNSTARTED","changeState","initialSrc","userActions","doubleClick","controlBar","volumePanel","fullscreenToggle","muted","_createFullscreenButton","setControls","setMain","_swap","videoPlayer","animateSwap","nodeA","nodeB","parentA","parentB","siblingA","thisControls","thisMain","paused","HAVE_CURRENT_DATA","getDuration","getPlayLength","getCurrentTime","getPlayedTime","isEnded","fullscreenButton","addChild","clickHandler","exitFullscreen","screen","orientation","unlock","videoContainer","requestFullscreen","lock","controlText","buttonDom","validStates","isValidState","currentState","nextState","stateOuts","SyncVideoPlayer","area","readyCount","$container","getDebugInfo","vp","isMain","addVideoPlayers","areaEl","mainVideoPlayer","moveStateTo","allReady","success","fail","oldState","fixVideoStates","addVideoPlayer","videoInstance","excludeMain","swapVideo","index1","index2","_defineComponent","__props","multivideos","syncVideoPlayer","ids","debugInfo","onPlay","onPause","onAdd","onFullscreen","setInterval","onTouchend","_createTextVNode","ChatComponent","NotificationsBell","VideoComponent"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"app.js","mappings":"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Pa,WAAYxB,GACZyB,KAAM1B,GACN2B,OAAQtC,GACRuC,YAAaxC,GACbyC,SAAUxD,GACVyD,WAAYjD,GACZkD,UAAWpD,GACXqD,YAAajD,GACbkD,QAASxD,GACTyD,UAAWhD,GACXX,aACA4D,YAAahD,GACbiD,OAAQf,IAENgB,GAAWhlI,GAAOikI,OAClBgB,GAASjlI,GAAOqkI,KAChBa,GAAWllI,GAAOskI,OAClBa,GAAcnlI,GAAO0kI,UACzB,SAASU,KACP,IAAIC,EAAW,EACb,kBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,kBACA,kBACA,kBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,mBACA,kBACA,iBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,iBACA,kBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,kBACA,mBACA,kBACA,kBACA,mBACA,kBACA,mBACA,mBACA,oBACA,oBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,oBACA,oBACA,kBACA,kBACA,mBACA,kBACA,kBACA,kBACA,kBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,kBACA,mBACA,kBACA,oBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,kBACA,mBACA,kBACA,mBACA,mBACA,oBACA,oBACA,kBACA,kBACA,mBACA,mBACA,kBACA,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,kBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,iBACA,kBACA,mBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,mBACA,mBACA,mBACA,mBACA,kBACA,oBACA,mBACA,oBACA,oBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,kBACA,kBACA,mBACA,oBACA,mBACA,mBACA,mBACA,kBACA,mBACA,kBACA,iBACA,oBACA,kBACA,mBACA,mBACA,kBACA,mBACA,kBACA,kBACA,mBACA,oBACA,oBACA,oBACA,iBACA,mBACA,kBACA,kBACA,kBACA,kBACA,oBACA,kBACA,kBACA,mBACA,kBACA,mBACA,oBACA,iBACA,kBACA,mBACA,oBACA,oBACA,mBACA,kBACA,kBACA,kBACA,kBACA,kBACA,oBACA,kBACA,mBACA,mBACA,kBACA,mBACA,oBACA,mBACA,mBACA,oBACA,oBACA,oBACA,oBACA,kBACA,iBACA,mBACA,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBACA,mBACA,mBACA,oBACA,oBACA,mBACA,mBACA,kBACA,kBACA,mBACA,kBACA,iBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,oBACA,mBACA,mBACA,mBACA,oBACA,oBACA,mBACA,kBACA,mBACA,mBACA,iBACA,kBACA,oBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,oBACA,oBACA,oBACA,kBACA,mBACA,kBACA,WAAcJ,GAAOnC,MAAQ,GAAM,QACnC,WAAcmC,GAAOnC,MAAQ,GAAM,QACnC,WAAamC,GAAOnC,MAAQ,GAAM,QAClC,WAAamC,GAAOnC,MAAQ,GAAM,QAClC,UAAYmC,GAAOnC,MAAQ,GAAM,QACjC,UAAYmC,GAAOnC,MAAQ,GAAM,QACjC,UAAYmC,GAAOnC,MAAQ,GAAM,QACjC,SAAWmC,GAAOnC,MAAQ,GAAM,QAChC,mBACA,mBACA,kBACA,mBACA,mBACA,mBACA,mBAEEwC,EAAK,GACLC,EAAK,GACLC,EAAM,CACR,CACE,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,oBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,sBACC,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,qBACA,sBAEH,CACE,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,sBACC,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,qBACA,qBACD,EACA,EACA,EACA,EACA,EACA,GACC,sBACA,sBACA,sBAEH,CACE,kBACA,iBACA,kBACA,kBACA,kBACA,iBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,iBACA,kBACA,kBACA,mBACC,mBACA,kBACD,kBACA,IACC,mBACA,mBACA,mBACA,mBACA,oBACA,oBACA,oBACA,oBACD,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,iBACA,mBAEF,CACE,EACA,EACA,EACA,EACA,EACA,EACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,oBACA,sBACC,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,uBAGDC,EAAWD,EAAIE,GAAQC,YACvBC,EAAKJ,EAAIE,GAAQC,YACjBE,EAAKL,EAAIE,GAAQC,YACjBG,EAAKN,EAAIE,GAAQC,YACjBtuB,EAAQ,CACV,EACA,EACA,GACA,GACA,EACA,EACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,IAEF,SAAS0uB,EAAeC,EAAIC,EAAOj+H,GAGjC,IAFA,IA6DYu+C,EAAG3iD,EA2BTsiI,EAxFFC,EAAK,GACLC,EAAKH,EAAQ,IAAM,GAAK,IACnB1iI,GAAK,GAAIA,EAAI,EAAGA,IAAK,CAC5B,IAAI8iE,EAAGluD,EAAG6vB,EACVq+B,EAAIg/D,EAASc,GAAM,IACnBhuH,EAAI6tH,EAAGI,GAAM,K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AAK1qI,EAClB6pI,EAAGG,EAAKI,GAAME,EAAKrqI,EACnB4pI,EAAGG,EAAKE,GAAMI,EAAKrqI,EACnBygI,GAAMqJ,EACNC,GAAMD,CACR,OAASC,EAAK7yI,GACdgoD,EAAKF,EACLA,EAAKE,EAAKwqF,EAAOM,EAAM,GAAKnqF,EAAK6pF,EAAOM,EAAM,GAC9CnqF,EAAKX,EAAKwqF,EAAOM,EAAM,GAAKnqF,EAAK6pF,EAAOM,EAAM,EAChD,CACAA,GAAO,CACT,OAASF,EAAKrgI,EAChB,CACA,IAAIohI,EAAS,CACX,EACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,EACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,EACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,EACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,EACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,KAEFz1I,KAAK01I,UAAY,SAAS/K,EAAKgL,EAAQC,EAAKrwI,EAAQswI,GAClD,IAAK,IAAIjrI,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,IAAIwJ,EAAIi0H,GAAQsL,UAAY,EACxB3xF,EAAI,MAAQ,KAAWp3C,EAAI,GAC3B0iC,EAAI+6F,GAAQsL,UAAY,EAAI,EAChC,EAAG,CACD,IAAIuB,EAAID,EAAIG,EAAID,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KAAKmnJ,MAAQ,EACbnnJ,KAAKkU,MAAQ,EACblU,KAAKwK,EAAIkoJ,GAAYrqB,GAAQoE,SAC7BzsI,KAAK8a,EAAI43I,GAAYrqB,GAAQqE,SAC7B1sI,KAAKytJ,OAASiF,GAAYrqB,GAAQmL,QAClCxzI,KAAK0tJ,OAASgF,GAAYrqB,GAAQoL,QAClCzzI,KAAKg6I,KAAO0Y,GAAYrqB,GAAQgL,QAChCrzI,KAAK+5I,KAAO2Y,GAAYrqB,GAAQgL,QAChCrzI,KAAK+3I,MAAQ2a,GAAYrqB,GAAQwH,QAAU,EAC7C,CACA,IAAI8iB,GAAWhwJ,GAAOikI,OAClBgsB,GAAWjwJ,GAAOskI,OActB,SAAS4rB,KACP,IAAIC,EAAW,MACXC,EAAiB,IACjBC,EAA4BH,GAAeG,0BAC3CC,EAA8BJ,GAAeI,4BAC7CC,EAAS,CACX,CACE,eACC,kBACA,gBACD,kBACC,iBACA,mBACA,eACD,mBACC,iBACA,kBACD,gBACA,iBACC,iBACA,iBACD,gBACA,iBACA,iBACC,gBACD,gBACA,gBACA,iBAEF,CACE,gBACC,kBACA,gBACD,kBACC,iBACA,kBACA,gBACD,iBACC,iBACA,iBACD,gBACA,kBACC,iBACA,iBACD,gBACA,kBACC,iBACA,gBACD,gBACA,iBACC,iBAEH,CACE,iBACC,kBACA,gBACD,kBACC,iBACA,iBACD,gBACA,kBACC,iBACA,iBACD,gBACA,iBACA,iBACC,gBACD,gBACA,iBACC,iBACA,gBACD,gBACA,gBACC,iBAEH,CACE,iBACC,kBACA,gBACD,iBACC,iBACA,eACD,iBACC,gBACA,iBACA,iBACA,gBACD,iBACC,iBACA,gBACD,gBACA,iBACC,cACD,gBACA,gBACA,iBACC,iBAEH,CACE,iBACC,kBACA,eACD,iBACC,gBACD,gBACA,iBACC,iBACA,gBACD,iBACC,gBACA,iBACA,gBACA,gBACD,gBACA,gBACA,iBACC,iBACA,eACD,iBACC,gBAEH,CACE,gBACC,iBACA,gBACD,iBACC,iBACA,eACA,gBACD,gBACA,iBACC,iBACA,gBACD,gBACA,gBACA,gBACA,gBACA,iBACC,gBACD,iBACC,gBACD,gBACA,iBAEF,CACE,iBACC,kBACA,gBACD,gBACA,gBACC,gBACD,gBACA,iBACC,gBACD,gBACA,gBACC,iBACA,gBACD,eACA,iBACC,gBACD,gBACA,iBACC,eACD,iBACC,iBAEH,CACE,iBACC,iBACA,iBACA,iBACA,iBACA,gBACD,gBACA,eACA,gBACA,gBACA,iBACC,iBACA,iBACA,gBACD,iBACC,gBACD,gBACA,iBACC,gBACD,iBACC,iBAEH,CACE,iBACC,gBACA,iBACA,iBACA,iBACA,gBACD,iBACC,iBACA,gBACD,gBACA,gBACA,iBACC,iBACA,iBACA,iBACA,iBACA,aACD,gBACA,eACA,gBACC,kBAGDC,EAAW,CACb,CACE,iBACC,kBACA,iBACD,gBACA,iBAEF,CACE,iBACC,kBACA,iBACD,eACA,iBAEF,CACE,iBACC,kBACA,iBACD,gBACA,iBAEF,CACE,iBACC,kBACA,iBACD,gBACA,iBAEF,CACE,iBACC,kBACA,iBACD,gBACA,iBAEF,CACE,iBACC,kBACA,iBACD,gBACA,iBAEF,CACE,iBACC,kBACA,iBACD,gBACA,iBAEF,CACE,iBACC,iBACA,iBACD,gBACA,iBAEF,CACE,iBACC,kBACA,iBACD,gBACA,kBAGJ,SAASC,EAAW59I,EAAO69I,EAAUC,EAAQC,EAAWC,EAAUC,GAChE,MAAqB,GAAdD,IACLF,EAAOC,GAAa,MAAQ/9I,EAAM69I,EAAW,GAAKI,EAAO,GAAKH,EAAOC,EAAY,GAAKE,EAAO,GAAKj+I,EAAM69I,EAAW,GAAKI,EAAO,GAAKH,EAAOC,EAAY,GAAKE,EAAO,GAAKj+I,EAAM69I,EAAW,GAAKI,EAAO,GAAKH,EAAOC,EAAY,GAAKE,EAAO,GAAKj+I,EAAM69I,EAAW,GAAKI,EAAO,GAAKH,EAAOC,EAAY,GAAKE,EAAO,GAAKj+I,EAAM69I,EAAW,GAAKI,EAAO,GAAKH,EAAOC,EAAY,GAAKE,EAAO,GAAKj+I,EAAM69I,EAAW,GAAKI,EAAO,IAAMH,EAAOC,EAAY,GAAKE,EA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,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,EACA,GACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,GAEFA,KAAgB,CACd,EACA,EACA,EACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,GAEFA,MAAiB,CACf,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEFA,MAAiB,CACf,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,EACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEFA,MAAiB,CACf,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GAEFA,MAAiB,CACf,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,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,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,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,IACA,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,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,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GAEFA,MAAiB,CACf,EACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,EACA,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,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,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,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,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GAEFA,MAAiB,CACf,EACA,EACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IACA,KACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,KACA,IACA,IACA,EACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GAEFA,MAAiB,CACf,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEFA,MAAiB,CACf,EACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,IAEFA,MAAiB,CACf,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GAEFA,IAAe,CAAC,EAAG,EAAG,EAAG,GACzBA,IAAe,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACxCA,IAAe,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACxCA,IAAe,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,IAC9DA,IAAe,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAC7DA,IAAe,CACb,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,IAEFA,IAAe,CACb,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAEFA,IAAe,CACb,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,IAEFA,KAAgB,CACd,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAEFA,KAAgB,CACd,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,IAEFA,KAAgB,CACd,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAEFA,KAAgB,CACd,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,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,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,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,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,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,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAEFA,KAAgB,CACd,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,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,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,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,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,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAEFA,OAAkB,CAChB,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,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,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,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,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,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,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,GACA,IAEFA,KAAgB,CACd,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,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,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,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,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,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,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,GACA,IAEFA,KAAgB,CACd,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,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,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,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,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,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GAEFA,KAAgB,CACd,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IAEFA,KAAgB,CACd,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IAEFA,GAASh3D,GAAK,CACZ,IAAI22D,GAAY,EAAG,EAAG,KAAM,MAC5B,IAAIA,GAAY,EAAG,EAAGK,GAASC,KAAMD,GAASE,KAC9C,IAAIP,GAAY,EAAG,EAAGK,GAASG,KAAMH,GAASI,KAC9C,IAAIT,GAAY,EAAG,EAAGK,GAASK,KAAML,GAASM,KAC9C,IAAIX,GAAY,EAAG,EAAG,KAAM,MAC5B,IAAIA,GAAY,EAAG,EAAGK,GAASO,KAAMP,GAASQ,KAC9C,IAAIb,GAAY,EAAG,EAAGK,GAASS,KAAMT,GAASU,KAC9C,IAAIf,GAAY,EAAG,EAAGK,GAASW,KAAMX,GAASY,KAC9C,IAAIjB,GAAY,EAAG,EAAGK,GAASa,KAAMb,GAASc,KAC9C,IAAInB,GAAY,EAAG,EAAGK,GAASe,KAAMf,GAASgB,KAC9C,IAAIrB,GAAY,EAAG,EAAGK,GAASiB,MAAOjB,GAASkB,MAC/C,IAAIvB,GAAY,EAAG,EAAGK,GAASmB,MAAOnB,GAASoB,MAC/C,IAAIzB,GAAY,EAAG,EAAGK,GAASqB,MAAOrB,GAASsB,MAC/C,IAAI3B,GAAY,GAAI,EAAGK,GAASuB,MAAOvB,GAASwB,MAChD,IAAI7B,GAAY,EAAG,EAAG,KAAMK,GAASyB,QACrC,IAAI9B,GAAY,GAAI,EAAGK,GAAS0B,MAAO1B,GAAS2B,MAChD,IAAIhC,GAAY,EAAG,EAAGK,GAAS4B,MAAO5B,GAAS6B,MAC/C,IAAIlC,GAAY,EAAG,EAAGK,GAAS4B,MAAO5B,GAAS6B,MAC/C,IAAIlC,GAAY,EAAG,EAAGK,GAAS4B,MAAO5B,GAAS6B,MAC/C,IAAIlC,GAAY,EAAG,GAAIK,GAAS4B,MAAO5B,GAAS6B,MAChD,IAAIlC,GAAY,EAAG,GAAIK,GAAS4B,MAAO5B,GAAS6B,MAChD,IAAIlC,GAAY,EAAG,IAAKK,GAAS4B,MAAO5B,GAAS6B,MACjD,IAAIlC,GAAY,GAAI,KAAMK,GAAS4B,MAAO5B,GAAS6B,MACnD,IAAIlC,GAAY,GAAI,KAAMK,GAAS4B,MAAO5B,GAAS6B,MACnD,IAAIlC,GAAY,EAAG,GAAIK,GAAS8B,MAAO9B,GAAS+B,MAChD,IAAIpC,GAAY,EAAG,GAAIK,GAAS8B,MAAO9B,GAAS+B,MAChD,IAAIpC,GAAY,EAAG,GAAIK,GAAS8B,MAAO9B,GAAS+B,MAChD,IAAIpC,GAAY,EAAG,IAAKK,GAAS8B,MAAO9B,GAAS+B,MACjD,IAAIpC,GAAY,EAAG,IAAKK,GAAS8B,MAAO9B,GAAS+B,MACjD,IAAIpC,GAAY,EAAG,IAAKK,GAAS8B,MAAO9B,GAAS+B,MACjD,IAAIpC,GAAY,GAAI,KAAMK,GAAS8B,MAAO9B,GAAS+B,MACnD,IAAIpC,GAAY,GAAI,KAAMK,GAAS8B,MAAO9B,GAAS+B,MACnD,IAAIpC,GAAY,EAAG,EAAGK,GAASgC,MAAOhC,GAASiC,MAC/C,IAAItC,GAAY,EAAG,EAAGK,GAASkC,MAAOlC,GAASmC,OAEjDnC,GAASoC,SAAW,CAClB,MACA,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,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,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QAEFpC,GAASqC,QAAU,CACjB,MACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QAEFrC,GAASsC,QAAU,CACjB,MACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QAEFtC,GAASuC,cAAgB,CACvB,CACE,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,KACC,GAEH,CACE,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,KACC,GAEH,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAE9DvC,GAASwC,iBAAmB,CAC1B,CAAC,MAAO,KAAM,MAAO,GACrB,CAAC,MAAO,KAAM,MAAO,GACrB,CAAC,MAAO,KAAM,KAAM,IAEtBxC,GAASyC,WAAa,CAAC,EAAG,EAAG,GAAI,GAAI,IACrC,IAAIC,GAAYt5J,GAAOkkI,QACnBC,GAAQnkI,GAAOmkI,MACfo1B,GAASv5J,GAAOqkI,KAChBm1B,GAAcx5J,GAAO0kI,UACrB+0B,GAAYz5J,GAAO4kI,QACnB80B,GAAW15J,GAAO+kI,OAKtB,SAAS40B,KACP,IAAIC,EAAM,KACNnE,EAAK,KACLtqB,EAAM,KAMV,SAAS0uB,EAAMpoJ,GACb,OAAOqoJ,EAAMroJ,EAAIkoJ,GAAYI,OAC/B,CAPA18J,KAAKiuI,WAAa,SAAS0uB,EAAKC,EAAKzuB,GACnCouB,EAAMI,EACNvE,EAAKwE,EACL9uB,EAAMK,CACR,EAIAnuI,KAAK68J,OAAS,SAASzoJ,GACrB,OAAO0oJ,EAAO1oJ,EAChB,EACA,IAAI2oJ,EAAc,qBACdC,EA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IAAK,KACrD,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACnB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAErB,IAAIA,GACF,CACE,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEF,CACE,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,KAEF,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACnB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAErB,IAAIA,GACF,CACE,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEF,CACE,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,KAEF,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACnB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAErB,IAAIA,GACF,CACE,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEF,CACE,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,KAEF,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACnB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,KAGvB,IAAIqP,EAAQN,GAAYe,EAAQR,EAAS,GACrCI,EAASX,GAAYe,GACrBK,EAAQpB,GAAYc,GACpBO,EAAQrB,GAAYc,GAExB,SAASQ,EAAQluB,EAAK5hI,GACpB,IAAIstI,EAAMnN,EAAIoZ,WAAWv5I,EAAG4hI,GAG5B,OAFA0L,GAAOkiB,EACPliB,EAAMjqI,KAAKsoI,IAAI,GAAI2B,EAAM,GAAK1L,EAAIyR,UAC3B/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ACf,CACA,SAASc,EAAWC,EAAM1mJ,EAAMilJ,EAAOS,EAAOC,EAAKT,EAAaC,EAAc1Y,EAAMka,EAAIC,EAAMtB,EAAOC,EAAOsB,EAASC,GACnHx4K,KAAK6oJ,WAAan3H,EAClB1xB,KAAKu3K,aAAeZ,EACpB32K,KAAKi4K,UAAYb,EACjBp3K,KAAKy4K,QAAUpB,EACfr3K,KAAKy3K,OAASb,EACd52K,KAAK03K,KAAOb,EACZ72K,KAAK04K,OAASva,EACdn+J,KAAK4pH,MAAQyuD,EACbr4K,KAAK23K,YAAcW,EACnBt4K,KAAK63K,UAAYb,EACjBh3K,KAAK83K,UAAYb,EACjBj3K,KAAKg4K,QAAUO,EACfv4K,KAAK24K,QAAUH,CACjB,CACA,IAAII,EACJ54K,KAAKiuI,WAAa,SAAS4qC,GACzBD,EAAOC,CACT,EACA,IAAIC,EAAqB,CACvB,IAAIrC,EACF,EACA,EACA,EACA,EACA,IACA,KACC,KACA,IACD,IACA,EACA,EACA,EACA,EACA,GACA,KAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,KACC,KACA,IACD,IACA,IACA,EACA,EACA,EACA,GACA,MAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,KACC,KACA,IACD,IACA,EACA,EACA,EACA,EACA,GACA,MAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,KACC,KACA,IACD,IACA,GACC,EACD,EACA,EACA,GACA,MAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,EACA,KACC,IACA,IACD,IACA,KACC,EACD,EACA,EACA,EACA,MAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,IACA,GACA,IACC,IACD,GACC,GACD,KACA,EACA,EACA,MAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,IACA,IACA,KACC,KACD,KACC,GACD,KACA,EACA,EACA,KAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,IACA,GACA,KACC,KACD,GACC,GACD,KACA,EACA,EACA,KAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,IACA,IACA,MACC,KACD,IACC,GACD,KACA,EACA,EACA,GAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,IACA,IACA,KACC,GACD,IACC,GACD,KACA,EACA,EACA,GAEF,IAAIA,EACF,GACA,EACA,EACA,EACA,IACA,IACA,EACA,GACC,GACD,IACC,GACD,KACA,EACA,EACA,IAGAsC,EAAqB,CACvB,IAAItC,EACF,EACA,EACA,EACA,EACA,IACA,IACC,GACA,EACD,IACA,EACA,EACA,EACA,EACA,GACA,KAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,IACC,KACA,IACD,IACA,IACA,EACA,EACA,EACA,GACA,MAEF,IAAIA,EAAW,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,KAAM,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,MACnE,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,IACC,KACA,KACD,IACA,GACC,EACD,EACA,EACA,GACA,MAEF,IAAIA,EAAW,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,IAAK,GAAK,EAAG,KAAM,EAAG,EAAG,EAAG,EAAG,MACpE,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,IACC,EACD,MACC,IACD,GACC,GACD,KACA,EACA,EACA,MAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,IACC,EACD,MACC,IACD,KACC,GACD,KACA,EACA,EACA,GAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,GACA,GACA,GACC,KACD,GACC,GACD,KACA,EACA,EACA,GAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,GACA,EACA,KACC,GACD,IACC,GACD,KACA,EACA,EACA,GAEF,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,GACA,IACA,MACC,GACD,IACC,GACD,KACA,EACA,EACA,GAEF,IAAIA,EACF,GACA,EACA,EACA,EACA,IACA,GACA,EACA,MACC,GACD,IACC,GACD,KACA,EACA,EACA,IA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5C,GAAX/lK,EACFo9H,EAAIsL,MAAQ5tE,EAAK4tE,MACR7pI,KAAK01G,IAAI6oB,EAAIsL,QAAS,GAAK,IACpCtL,EAAIsL,MAAQ5tE,EAAK4tE,OACJ,GAAX1oI,IACFo9H,EAAI2Z,MAAQv+I,EACZ4kI,EAAI0Z,WAAa70I,EAErB,CACA,IAAIglK,EAAiB,CACnB,IAAIjB,EACF,EACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,GACC,GACD,GACA,MACA,GAEF,IAAIA,EACF,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,GACC,GACD,GACA,KACA,GAEF,IAAIA,EACF,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,GACC,GACD,GACA,KACA,GAEF,IAAIA,EACF,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,GACC,GACD,GACA,KACA,GAEF,IAAIA,EACF,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,GACC,GACD,GACA,KACA,GAEF,IAAIA,EACF,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,GACC,GACD,GACA,KACA,GAEF,IAAIA,EACF,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,GACC,EACD,GACA,KACA,GAEF,IAAIA,EACF,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,GACC,EACD,GACA,KACA,GAEF,IAAIA,EACF,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,EACA,EACA,EACA,KACA,GAEF,IAAIA,EACF,GACA,EACA,EACA,EACA,IACA,IACA,IACA,EACA,IACA,EACA,EACA,IACA,KACA,GAEF,IAAIA,EACF,IACA,EACA,EACA,EACA,KACA,IACA,IACA,EACA,IACA,EACA,EACA,IACA,KACA,GAEF,IAAIA,EACF,IACA,EACA,EACA,EACA,KACA,IACA,IACA,EACA,IACA,EACA,EACA,EACA,KACA,GAEF,IAAIA,EACF,IACA,EACA,EA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ACF,CACA,IAAIj5C,GAASjkI,GAAOikI,OAChBC,GAAUlkI,GAAOkkI,QACjBE,GAAapkI,GAAOokI,WACpBE,GAAStkI,GAAOskI,OAChB64C,GAAan9K,GAAOwkI,SACpB44C,GAAWp9K,GAAO+kI,OAGtB,SAASs4C,KACP,IAAIpH,EACAt2E,EACA/7F,EACJvG,KAAKiuI,WAAa,SAAS4qC,EAAO3qC,EAAK/7F,GACrCymI,EAAOC,EACPv2E,EAAK4rC,EACL3nI,EAAI4rC,CACN,EACA,IAAI8tI,EAAc,EACdC,EAAa,EACbC,EAAW,EACXC,EAAiB,EACjBC,EAAgBL,GAAOK,cACvBC,EAAeN,GAAOM,aACtBC,EAAgBF,EAAgB,EAAI,EAAI,EAAI,EAAI,EAChDG,EAAiBD,EAAgB,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EACjFE,EAAgB,IAChBC,EAAgB,GAChBC,EAAiB,GACjBC,EAAa,KACbC,EAAU,OACVC,EAAU,OACVC,EAAc,CAChB,EACA,MACA,MACA,IACA,MACA,IACA,IACA,MACA,MACA,KACA,KACA,MACA,KACA,MACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,MACA,KACA,KACA,MACA,MACA,KACA,MACA,KACA,KACA,MACA,MACA,KACA,KACA,MACA,KACA,MACA,MACA,KACA,KACA,MACA,MACA,IACA,MACA,KACA,KACA,MACA,KACA,MACA,MACA,KACA,MACA,KACA,KACA,MACA,MACA,KACA,KACA,MACA,KACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,MACA,KACA,MACA,MACA,KACA,KACA,MACA,MACA,KACA,MACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEF,SAASC,EAAOC,EAAIxR,GAIlB,GAHAwR,EAAG7yB,gBACH6yB,EAAGp9B,KAAO4rB,EACVwR,EAAGryJ,SACCqyJ,EAAGryJ,KAAOqyJ,EAAG/yB,QAGb+yB,EAAGniD,IAAMmiD,EAAGhjK,OACdgjK,EAAG9yB,IAAI8yB,EAAGniD,KAAOmiD,EAAGp9B,IACpBo9B,EAAGniD,MACHmiD,EAAGryJ,KAAO,GAERqyJ,EAAGniD,KAAOmiD,EAAGhjK,MAAM,CACrB,IAAK,IAAI/X,EAAI,EAAGA,EAAI+6K,EAAGhjK,KAAM/X,GAAK,EAChC+6K,EAAG9yB,IAAIjoJ,EAAI,GAAK+6K,EAAG9yB,IAAIjoJ,GAEzB+6K,EAAG/yB,MAAQ,EACX+yB,EAAGniD,KAAO,CACZ,CACF,CACA,SAASoiD,EAAcD,EAAIt2I,GACzB,KAAIs2I,EAAGniD,KAAO,GAEd,IAAK,IAAI54H,EAAI,EAAGA,EAAIm6K,IAAiBn6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","sources":["webpack://src/./node_modules/axios/index.js","webpack://src/./node_modules/axios/lib/adapters/xhr.js","webpack://src/./node_modules/axios/lib/axios.js","webpack://src/./node_modules/axios/lib/cancel/Cancel.js","webpack://src/./node_modules/axios/lib/cancel/CancelToken.js","webpack://src/./node_modules/axios/lib/cancel/isCancel.js","webpack://src/./node_modules/axios/lib/core/Axios.js","webpack://src/./node_modules/axios/lib/core/InterceptorManager.js","webpack://src/./node_modules/axios/lib/core/buildFullPath.js","webpack://src/./node_modules/axios/lib/core/createError.js","webpack://src/./node_modules/axios/lib/core/dispatchRequest.js","webpack://src/./node_modules/axios/lib/core/enhanceError.js","webpack://src/./node_modules/axios/lib/core/mergeConfig.js","webpack://src/./node_modules/axios/lib/core/settle.js","webpack://src/./node_modules/axios/lib/core/transformData.js","webpack://src/./node_modules/axios/lib/defaults.js","webpack://src/./node_modules/axios/lib/helpers/bind.js","webpack://src/./node_modules/axios/lib/helpers/buildURL.js","webpack://src/./node_modules/axios/lib/helpers/combineURLs.js","webpack://src/./node_modules/axios/lib/helpers/cookies.js","webpack://src/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://src/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://src/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://src/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://src/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://src/./node_modules/axios/lib/helpers/spread.js","webpack://src/./node_modules/axios/lib/utils.js","webpack://src/./js/compatibility.ts","webpack://src/./node_modules/vue-loader/dist/exportHelper.js","webpack://src/./node_modules/core-js/internals/a-callable.js","webpack://src/./node_modules/core-js/internals/an-object.js","webpack://src/./node_modules/core-js/internals/array-includes.js","webpack://src/./node_modules/core-js/internals/array-set-length.js","webpack://src/./node_modules/core-js/internals/classof-raw.js","webpack://src/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://src/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://src/./node_modules/core-js/internals/create-property-descriptor.js","webpack://src/./node_modules/core-js/internals/define-built-in.js","webpack://src/./node_modules/core-js/internals/define-global-property.js","webpack://src/./node_modules/core-js/internals/descriptors.js","webpack://src/./node_modules/core-js/internals/document-create-element.js","webpack://src/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://src/./node_modules/core-js/internals/engine-user-agent.js","webpack://src/./node_modules/core-js/internals/engine-v8-version.js","webpack://src/./node_modules/core-js/internals/enum-bug-keys.js","webpack://src/./node_modules/core-js/internals/export.js","webpack://src/./node_modules/core-js/internals/fails.js","webpack://src/./node_modules/core-js/internals/function-bind-native.js","webpack://src/./node_modules/core-js/internals/function-call.js","webpack://src/./node_modules/core-js/internals/function-name.js","webpack://src/./node_modules/core-js/internals/function-uncurry-this.js","webpack://src/./node_modules/core-js/internals/get-built-in.js","webpack://src/./node_modules/core-js/internals/get-method.js","webpack://src/./node_modules/core-js/internals/global.js","webpack://src/./node_modules/core-js/internals/has-own-property.js","webpack://src/./node_modules/core-js/internals/hidden-keys.js","webpack://src/./node_modules/core-js/internals/ie8-dom-define.js","webpack://src/./node_modules/core-js/internals/indexed-object.js","webpack://src/./node_modules/core-js/internals/inspect-source.js","webpack://src/./node_modules/core-js/internals/internal-state.js","webpack://src/./node_modules/core-js/internals/is-array.js","webpack://src/./node_modules/core-js/internals/is-callable.js","webpack://src/./node_modules/core-js/internals/is-forced.js","webpack://src/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://src/./node_modules/core-js/internals/is-object.js","webpack://src/./node_modules/core-js/internals/is-pure.js","webpack://src/./node_modules/core-js/internals/is-symbol.js","webpack://src/./node_modules/core-js/internals/length-of-array-like.js","webpack://src/./node_modules/core-js/internals/make-built-in.js","webpack://src/./node_modules/core-js/internals/math-trunc.js","webpack://src/./node_modules/core-js/internals/object-define-property.js","webpack://src/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://src/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://src/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://src/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://src/./node_modules/core-js/internals/object-keys-internal.js","webpack://src/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://src/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://src/./node_modules/core-js/internals/own-keys.js","webpack://src/./node_modules/core-js/internals/require-object-coercible.js","webpack://src/./node_modules/core-js/internals/shared-key.js","webpack://src/./node_modules/core-js/internals/shared-store.js","webpack://src/./node_modules/core-js/internals/shared.js","webpack://src/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://src/./node_modules/core-js/internals/to-absolute-index.js","webpack://src/./node_modules/core-js/internals/to-indexed-object.js","webpack://src/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://src/./node_modules/core-js/internals/to-length.js","webpack://src/./node_modules/core-js/internals/to-object.js","webpack://src/./node_modules/core-js/internals/to-primitive.js","webpack://src/./node_modules/core-js/internals/to-property-key.js","webpack://src/./node_modules/core-js/internals/try-to-string.js","webpack://src/./node_modules/core-js/internals/uid.js","webpack://src/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://src/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://src/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://src/./node_modules/core-js/internals/well-known-symbol.js","webpack://src/./node_modules/core-js/modules/es.array.push.js","webpack://src/webpack/bootstrap","webpack://src/webpack/runtime/compat get default export","webpack://src/webpack/runtime/define property getters","webpack://src/webpack/runtime/global","webpack://src/webpack/runtime/hasOwnProperty shorthand","webpack://src/./node_modules/@vue/compat/dist/vue.runtime.esm-bundler.js","webpack://src/./js/components/ChatComponent.vue?e262","webpack://src/./js/components/ChatComponent.vue","webpack://src/./node_modules/vue-advanced-chat/dist/vue-advanced-chat.es.js","webpack://src/./js/components/ChatComponent.vue?ef42","webpack://src/./js/components/NotificationsBell.vue?641f","webpack://src/./js/components/NotificationsBell.vue","webpack://src/./js/components/sub/NotificationMessage.vue?cc67","webpack://src/./js/components/sub/NotificationMessage.vue","webpack://src/./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://src/./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack://src/./node_modules/date-fns/esm/toDate/index.js","webpack://src/./node_modules/date-fns/esm/startOfDay/index.js","webpack://src/./node_modules/date-fns/esm/differenceInCalendarDays/index.js","webpack://src/./node_modules/date-fns/esm/isDate/index.js","webpack://src/./node_modules/date-fns/esm/isValid/index.js","webpack://src/./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack://src/./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack://src/./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack://src/./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack://src/./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack://src/./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack://src/./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack://src/./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack://src/./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack://src/./node_modules/date-fns/esm/locale/en-US/index.js","webpack://src/./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack://src/./node_modules/date-fns/esm/addMilliseconds/index.js","webpack://src/./node_modules/date-fns/esm/subMilliseconds/index.js","webpack://src/./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack://src/./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack://src/./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack://src/./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack://src/./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack://src/./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack://src/./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack://src/./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack://src/./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack://src/./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack://src/./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack://src/./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack://src/./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack://src/./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack://src/./node_modules/date-fns/esm/format/index.js","webpack://src/./node_modules/date-fns/esm/formatRelative/index.js","webpack://src/./node_modules/date-fns/esm/locale/fr/_lib/formatDistance/index.js","webpack://src/./node_modules/date-fns/esm/locale/fr/_lib/formatLong/index.js","webpack://src/./node_modules/date-fns/esm/locale/fr/_lib/formatRelative/index.js","webpack://src/./node_modules/date-fns/esm/locale/fr/_lib/localize/index.js","webpack://src/./node_modules/date-fns/esm/locale/fr/_lib/match/index.js","webpack://src/./node_modules/date-fns/esm/locale/fr/index.js","webpack://src/./js/components/sub/NotificationMessage.vue?4cf0","webpack://src/./js/components/NotificationsBell.vue?67bf","webpack://src/./js/video/constants.ts","webpack://src/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://src/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://src/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://src/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://src/./js/video/utils.ts","webpack://src/./js/video/VideoPlayer.ts","webpack://src/./js/video/SyncVideoPlayer.ts","webpack://src/./js/video/VideoComponent.vue?c30e","webpack://src/./js/video/VideoComponent.vue","webpack://src/./js/video/VideoComponent.vue?eef0","webpack://src/./js/main.ts"],"sourcesContent":["module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","window.addEventListener(\"DOMContentLoaded\", () => {\n\n const testVideo = document.createElement(\"video\");\n if (testVideo.canPlayType) {\n // Check for Webm support\n const webm = \"\" !== testVideo.canPlayType('video/webm; codecs=\"vp8, vorbis\"');\n if (!webm){\n const container = document.getElementById(\"content\");\n if(container){\n const p = document.createElement(\"p\");\n p.classList.add(\"warning\");\n container.prepend(p);\n p.innerHTML = `\n Votre navigateur n'est pas compatible avec le format video <abbr title=\"WebM est un format de fichier multimédia ouvert, principalement destiné à un usage sur le web.\">WebM</abbr> des cours en direct.\n Veuillez téléchargez Firefox ou Google Chrome dans leur dernière version.\n `;\n }\n }\n \n }\n});","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// runtime helper for setting properties on components\n// in a tree-shakable way\nexports.default = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw new $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","'use strict';\nvar global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nmodule.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","'use strict';\nvar global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = global[TARGET] && global[TARGET].prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n","'use strict';\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nmodule.exports = false;\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\).*$/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nvar global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.35.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.35.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n var len = toIntegerOrInfinity(argument);\n return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 <= 121 and Safari <= 15.4; FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","/**\n* @vue/compat v3.4.15\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nfunction makeMap(str, expectsLowerCase) {\n const set = new Set(str.split(\",\"));\n return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val);\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty$1 = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty$1.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction((str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n});\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](arg);\n }\n};\nconst def = (obj, key, value) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n let ret = \"\";\n if (!styles || isString(styles)) {\n return ret;\n }\n for (const key in styles) {\n const value = styles[key];\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n if (isString(value) || typeof value === \"number\") {\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props)\n return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length)\n return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b)\n return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (val && val.__v_isRef) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v;\n};\n\nfunction warn$2(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n }\n }\n get active() {\n return this._active;\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n activeEffectScope = this;\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this._active) {\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n this._active = false;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction recordEffectScope(effect, scope = activeEffectScope) {\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeEffect;\nclass ReactiveEffect {\n constructor(fn, trigger, scheduler, scope) {\n this.fn = fn;\n this.trigger = trigger;\n this.scheduler = scheduler;\n this.active = true;\n this.deps = [];\n /**\n * @internal\n */\n this._dirtyLevel = 2;\n /**\n * @internal\n */\n this._trackId = 0;\n /**\n * @internal\n */\n this._runnings = 0;\n /**\n * @internal\n */\n this._shouldSchedule = false;\n /**\n * @internal\n */\n this._depsLength = 0;\n recordEffectScope(this, scope);\n }\n get dirty() {\n if (this._dirtyLevel === 1) {\n pauseTracking();\n for (let i = 0; i < this._depsLength; i++) {\n const dep = this.deps[i];\n if (dep.computed) {\n triggerComputed(dep.computed);\n if (this._dirtyLevel >= 2) {\n break;\n }\n }\n }\n if (this._dirtyLevel < 2) {\n this._dirtyLevel = 0;\n }\n resetTracking();\n }\n return this._dirtyLevel >= 2;\n }\n set dirty(v) {\n this._dirtyLevel = v ? 2 : 0;\n }\n run() {\n this._dirtyLevel = 0;\n if (!this.active) {\n return this.fn();\n }\n let lastShouldTrack = shouldTrack;\n let lastEffect = activeEffect;\n try {\n shouldTrack = true;\n activeEffect = this;\n this._runnings++;\n preCleanupEffect(this);\n return this.fn();\n } finally {\n postCleanupEffect(this);\n this._runnings--;\n activeEffect = lastEffect;\n shouldTrack = lastShouldTrack;\n }\n }\n stop() {\n var _a;\n if (this.active) {\n preCleanupEffect(this);\n postCleanupEffect(this);\n (_a = this.onStop) == null ? void 0 : _a.call(this);\n this.active = false;\n }\n }\n}\nfunction triggerComputed(computed) {\n return computed.value;\n}\nfunction preCleanupEffect(effect2) {\n effect2._trackId++;\n effect2._depsLength = 0;\n}\nfunction postCleanupEffect(effect2) {\n if (effect2.deps && effect2.deps.length > effect2._depsLength) {\n for (let i = effect2._depsLength; i < effect2.deps.length; i++) {\n cleanupDepEffect(effect2.deps[i], effect2);\n }\n effect2.deps.length = effect2._depsLength;\n }\n}\nfunction cleanupDepEffect(dep, effect2) {\n const trackId = dep.get(effect2);\n if (trackId !== void 0 && effect2._trackId !== trackId) {\n dep.delete(effect2);\n if (dep.size === 0) {\n dep.cleanup();\n }\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const _effect = new ReactiveEffect(fn, NOOP, () => {\n if (_effect.dirty) {\n _effect.run();\n }\n });\n if (options) {\n extend(_effect, options);\n if (options.scope)\n recordEffectScope(_effect, options.scope);\n }\n if (!options || !options.lazy) {\n _effect.run();\n }\n const runner = _effect.run.bind(_effect);\n runner.effect = _effect;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nlet pauseScheduleStack = 0;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction pauseScheduling() {\n pauseScheduleStack++;\n}\nfunction resetScheduling() {\n pauseScheduleStack--;\n while (!pauseScheduleStack && queueEffectSchedulers.length) {\n queueEffectSchedulers.shift()();\n }\n}\nfunction trackEffect(effect2, dep, debuggerEventExtraInfo) {\n var _a;\n if (dep.get(effect2) !== effect2._trackId) {\n dep.set(effect2, effect2._trackId);\n const oldDep = effect2.deps[effect2._depsLength];\n if (oldDep !== dep) {\n if (oldDep) {\n cleanupDepEffect(oldDep, effect2);\n }\n effect2.deps[effect2._depsLength++] = dep;\n } else {\n effect2._depsLength++;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrack) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n }\n}\nconst queueEffectSchedulers = [];\nfunction triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {\n var _a;\n pauseScheduling();\n for (const effect2 of dep.keys()) {\n if (effect2._dirtyLevel < dirtyLevel && dep.get(effect2) === effect2._trackId) {\n const lastDirtyLevel = effect2._dirtyLevel;\n effect2._dirtyLevel = dirtyLevel;\n if (lastDirtyLevel === 0) {\n effect2._shouldSchedule = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n effect2.trigger();\n }\n }\n }\n scheduleEffects(dep);\n resetScheduling();\n}\nfunction scheduleEffects(dep) {\n for (const effect2 of dep.keys()) {\n if (effect2.scheduler && effect2._shouldSchedule && (!effect2._runnings || effect2.allowRecurse) && dep.get(effect2) === effect2._trackId) {\n effect2._shouldSchedule = false;\n queueEffectSchedulers.push(effect2.scheduler);\n }\n }\n}\n\nconst createDep = (cleanup, computed) => {\n const dep = /* @__PURE__ */ new Map();\n dep.cleanup = cleanup;\n dep.computed = computed;\n return dep;\n};\n\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"iterate\" : \"\");\nconst MAP_KEY_ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"Map key iterate\" : \"\");\nfunction track(target, type, key) {\n if (shouldTrack && activeEffect) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = createDep(() => depsMap.delete(key)));\n }\n trackEffect(\n activeEffect,\n dep,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key\n } : void 0\n );\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n return;\n }\n let deps = [];\n if (type === \"clear\") {\n deps = [...depsMap.values()];\n } else if (key === \"length\" && isArray(target)) {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || !isSymbol(key2) && key2 >= newLength) {\n deps.push(dep);\n }\n });\n } else {\n if (key !== void 0) {\n deps.push(depsMap.get(key));\n }\n switch (type) {\n case \"add\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isIntegerKey(key)) {\n deps.push(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n pauseScheduling();\n for (const dep of deps) {\n if (dep) {\n triggerEffects(\n dep,\n 2,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n } : void 0\n );\n }\n }\n resetScheduling();\n}\nfunction getDepFromReactive(object, key) {\n var _a;\n return (_a = targetMap.get(object)) == null ? void 0 : _a.get(key);\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nconst arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations = {};\n [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\", i + \"\");\n }\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n return arr[key](...args.map(toRaw));\n } else {\n return res;\n }\n };\n });\n [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n pauseTracking();\n pauseScheduling();\n const res = toRaw(this)[key].apply(this, args);\n resetScheduling();\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n}\nfunction hasOwnProperty(key) {\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _shallow = false) {\n this._isReadonly = _isReadonly;\n this._shallow = _shallow;\n }\n get(target, key, receiver) {\n const isReadonly2 = this._isReadonly, shallow = this._shallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return shallow;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the reciever is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n if (targetIsArray && hasOwn(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (shallow) {\n return res;\n }\n if (isRef(res)) {\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(shallow = false) {\n super(false, shallow);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n if (!this._shallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n return false;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(shallow = false) {\n super(true, shallow);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(\n true\n);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get(target, key, isReadonly = false, isShallow = false) {\n target = target[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has: has2 } = getProto(rawTarget);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n if (has2.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has2.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n}\nfunction has(key, isReadonly = false) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly = false) {\n target = target[\"__v_raw\"];\n !isReadonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n}\nfunction add(value) {\n value = toRaw(value);\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n}\nfunction set(key, value) {\n value = toRaw(value);\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2 ? get2.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\", void 0, void 0, oldTarget);\n }\n return result;\n}\nfunction createForEach(isReadonly, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly, isShallow) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n console.warn(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations2 = {\n get(key) {\n return get(this, key);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations2 = {\n get(key) {\n return get(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = [\"keys\", \"values\", \"entries\", Symbol.iterator];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod(\n method,\n false,\n false\n );\n readonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n false\n );\n shallowInstrumentations2[method] = createIterableMethod(\n method,\n false,\n true\n );\n shallowReadonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n true\n );\n });\n return [\n mutableInstrumentations2,\n readonlyInstrumentations2,\n shallowInstrumentations2,\n shallowReadonlyInstrumentations2\n ];\n}\nconst [\n mutableInstrumentations,\n readonlyInstrumentations,\n shallowInstrumentations,\n shallowReadonlyInstrumentations\n] = /* @__PURE__ */ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly, shallow) {\n const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has2, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has2.call(target, rawKey)) {\n const type = toRawType(target);\n console.warn(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n console.warn(`value cannot be made reactive: ${String(target)}`);\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n def(value, \"__v_skip\", true);\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nclass ComputedRefImpl {\n constructor(getter, _setter, isReadonly, isSSR) {\n this._setter = _setter;\n this.dep = void 0;\n this.__v_isRef = true;\n this[\"__v_isReadonly\"] = false;\n this.effect = new ReactiveEffect(\n () => getter(this._value),\n () => triggerRefValue(this, 1),\n () => this.dep && scheduleEffects(this.dep)\n );\n this.effect.computed = this;\n this.effect.active = this._cacheable = !isSSR;\n this[\"__v_isReadonly\"] = isReadonly;\n }\n get value() {\n const self = toRaw(this);\n if (!self._cacheable || self.effect.dirty) {\n if (hasChanged(self._value, self._value = self.effect.run())) {\n triggerRefValue(self, 2);\n }\n }\n trackRefValue(self);\n if (self.effect._dirtyLevel >= 1) {\n triggerRefValue(self, 1);\n }\n return self._value;\n }\n set value(newValue) {\n this._setter(newValue);\n }\n // #region polyfill _dirty for backward compatibility third party code for Vue <= 3.3.x\n get _dirty() {\n return this.effect.dirty;\n }\n set _dirty(v) {\n this.effect.dirty = v;\n }\n // #endregion\n}\nfunction computed$1(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n const onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = !!(process.env.NODE_ENV !== \"production\") ? () => {\n console.warn(\"Write operation failed: computed value is readonly\");\n } : NOOP;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.effect.onTrack = debugOptions.onTrack;\n cRef.effect.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nfunction trackRefValue(ref2) {\n if (shouldTrack && activeEffect) {\n ref2 = toRaw(ref2);\n trackEffect(\n activeEffect,\n ref2.dep || (ref2.dep = createDep(\n () => ref2.dep = void 0,\n ref2 instanceof ComputedRefImpl ? ref2 : void 0\n )),\n !!(process.env.NODE_ENV !== \"production\") ? {\n target: ref2,\n type: \"get\",\n key: \"value\"\n } : void 0\n );\n }\n}\nfunction triggerRefValue(ref2, dirtyLevel = 2, newVal) {\n ref2 = toRaw(ref2);\n const dep = ref2.dep;\n if (dep) {\n triggerEffects(\n dep,\n dirtyLevel,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: newVal\n } : void 0\n );\n }\n}\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, __v_isShallow) {\n this.__v_isShallow = __v_isShallow;\n this.dep = void 0;\n this.__v_isRef = true;\n this._rawValue = __v_isShallow ? value : toRaw(value);\n this._value = __v_isShallow ? value : toReactive(value);\n }\n get value() {\n trackRefValue(this);\n return this._value;\n }\n set value(newVal) {\n const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);\n newVal = useDirectValue ? newVal : toRaw(newVal);\n if (hasChanged(newVal, this._rawValue)) {\n this._rawValue = newVal;\n this._value = useDirectValue ? newVal : toReactive(newVal);\n triggerRefValue(this, 2, newVal);\n }\n }\n}\nfunction triggerRef(ref2) {\n triggerRefValue(ref2, 2, !!(process.env.NODE_ENV !== \"production\") ? ref2.value : void 0);\n}\nfunction unref(ref2) {\n return isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this.dep = void 0;\n this.__v_isRef = true;\n const { get, set } = factory(\n () => trackRefValue(this),\n () => triggerRefValue(this)\n );\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n console.warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this.__v_isRef = true;\n }\n get value() {\n const val = this._object[this._key];\n return val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(toRaw(this._object), this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this.__v_isRef = true;\n this.__v_isReadonly = true;\n }\n get value() {\n return this._getter();\n }\n}\nfunction toRef(source, key, defaultValue) {\n if (isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n const val = source[key];\n return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);\n}\n\nconst TrackOpTypes = {\n \"GET\": \"get\",\n \"HAS\": \"has\",\n \"ITERATE\": \"iterate\"\n};\nconst TriggerOpTypes = {\n \"SET\": \"set\",\n \"ADD\": \"add\",\n \"DELETE\": \"delete\",\n \"CLEAR\": \"clear\"\n};\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nfunction warn$1(msg, ...args) {\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n msg + args.join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\"))\n return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn$1(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorCodes = {\n \"SETUP_FUNCTION\": 0,\n \"0\": \"SETUP_FUNCTION\",\n \"RENDER_FUNCTION\": 1,\n \"1\": \"RENDER_FUNCTION\",\n \"WATCH_GETTER\": 2,\n \"2\": \"WATCH_GETTER\",\n \"WATCH_CALLBACK\": 3,\n \"3\": \"WATCH_CALLBACK\",\n \"WATCH_CLEANUP\": 4,\n \"4\": \"WATCH_CLEANUP\",\n \"NATIVE_EVENT_HANDLER\": 5,\n \"5\": \"NATIVE_EVENT_HANDLER\",\n \"COMPONENT_EVENT_HANDLER\": 6,\n \"6\": \"COMPONENT_EVENT_HANDLER\",\n \"VNODE_HOOK\": 7,\n \"7\": \"VNODE_HOOK\",\n \"DIRECTIVE_HOOK\": 8,\n \"8\": \"DIRECTIVE_HOOK\",\n \"TRANSITION_HOOK\": 9,\n \"9\": \"TRANSITION_HOOK\",\n \"APP_ERROR_HANDLER\": 10,\n \"10\": \"APP_ERROR_HANDLER\",\n \"APP_WARN_HANDLER\": 11,\n \"11\": \"APP_WARN_HANDLER\",\n \"FUNCTION_REF\": 12,\n \"12\": \"FUNCTION_REF\",\n \"ASYNC_COMPONENT_LOADER\": 13,\n \"13\": \"ASYNC_COMPONENT_LOADER\",\n \"SCHEDULER\": 14,\n \"14\": \"SCHEDULER\"\n};\nconst ErrorTypeStrings$1 = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core .\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n let res;\n try {\n res = args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n return res;\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n const appErrorHandler = instance.appContext.config.errorHandler;\n if (appErrorHandler) {\n callWithErrorHandling(\n appErrorHandler,\n null,\n 10,\n [err, exposedInstance, errorInfo]\n );\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings$1[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else {\n console.error(err);\n }\n}\n\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.pre) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!queue.length || !queue.includes(\n job,\n isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex\n )) {\n if (job.id == null) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(job.id), 0, job);\n }\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true;\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction invalidateJob(job) {\n const i = queue.indexOf(job);\n if (i > flushIndex) {\n queue.splice(i, 1);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (!activePostFlushCbs || !activePostFlushCbs.includes(\n cb,\n cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex\n )) {\n pendingPostFlushCbs.push(cb);\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.pre) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n cb();\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\n continue;\n }\n activePostFlushCbs[postFlushIndex]();\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nconst comparator = (a, b) => {\n const diff = getId(a) - getId(b);\n if (diff === 0) {\n if (a.pre && !b.pre)\n return -1;\n if (b.pre && !a.pre)\n return 1;\n }\n return diff;\n};\nfunction flushJobs(seen) {\n isFlushPending = false;\n isFlushing = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n queue.sort(comparator);\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && job.active !== false) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n callWithErrorHandling(job, null, 14);\n }\n }\n } finally {\n flushIndex = 0;\n queue.length = 0;\n flushPostFlushCbs(seen);\n isFlushing = false;\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n if (!seen.has(fn)) {\n seen.set(fn, 1);\n } else {\n const count = seen.get(fn);\n if (count > RECURSION_LIMIT) {\n const instance = fn.ownerInstance;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n } else {\n seen.set(fn, count + 1);\n }\n }\n}\n\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = /* @__PURE__ */ new Set();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n instance.effect.dirty = true;\n instance.update();\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record)\n return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (const instance of instances) {\n const oldComp = normalizeClassComponent(instance.type);\n if (!hmrDirtyComponents.has(oldComp)) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.add(oldComp);\n }\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n hmrDirtyComponents.add(oldComp);\n instance.ceReload(newComp.styles);\n hmrDirtyComponents.delete(oldComp);\n } else if (instance.parent) {\n instance.parent.effect.dirty = true;\n queueJob(instance.parent.update);\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n }\n queuePostFlushCb(() => {\n for (const instance of instances) {\n hmrDirtyComponents.delete(\n normalizeClassComponent(instance.type)\n );\n }\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools$1;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$2(event, ...args) {\n if (devtools$1) {\n devtools$1.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook$1(hook, target) {\n var _a, _b;\n devtools$1 = hook;\n if (devtools$1) {\n devtools$1.enabled = true;\n buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook$1(newHook, target);\n });\n setTimeout(() => {\n if (!devtools$1) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$2(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$2(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:added\" /* COMPONENT_ADDED */\n);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools$1 && typeof devtools$1.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools$1.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$2(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:start\" /* PERFORMANCE_START */\n);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:end\" /* PERFORMANCE_END */\n);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$2(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$2(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nconst DeprecationTypes$1 = {\n \"GLOBAL_MOUNT\": \"GLOBAL_MOUNT\",\n \"GLOBAL_MOUNT_CONTAINER\": \"GLOBAL_MOUNT_CONTAINER\",\n \"GLOBAL_EXTEND\": \"GLOBAL_EXTEND\",\n \"GLOBAL_PROTOTYPE\": \"GLOBAL_PROTOTYPE\",\n \"GLOBAL_SET\": \"GLOBAL_SET\",\n \"GLOBAL_DELETE\": \"GLOBAL_DELETE\",\n \"GLOBAL_OBSERVABLE\": \"GLOBAL_OBSERVABLE\",\n \"GLOBAL_PRIVATE_UTIL\": \"GLOBAL_PRIVATE_UTIL\",\n \"CONFIG_SILENT\": \"CONFIG_SILENT\",\n \"CONFIG_DEVTOOLS\": \"CONFIG_DEVTOOLS\",\n \"CONFIG_KEY_CODES\": \"CONFIG_KEY_CODES\",\n \"CONFIG_PRODUCTION_TIP\": \"CONFIG_PRODUCTION_TIP\",\n \"CONFIG_IGNORED_ELEMENTS\": \"CONFIG_IGNORED_ELEMENTS\",\n \"CONFIG_WHITESPACE\": \"CONFIG_WHITESPACE\",\n \"CONFIG_OPTION_MERGE_STRATS\": \"CONFIG_OPTION_MERGE_STRATS\",\n \"INSTANCE_SET\": \"INSTANCE_SET\",\n \"INSTANCE_DELETE\": \"INSTANCE_DELETE\",\n \"INSTANCE_DESTROY\": \"INSTANCE_DESTROY\",\n \"INSTANCE_EVENT_EMITTER\": \"INSTANCE_EVENT_EMITTER\",\n \"INSTANCE_EVENT_HOOKS\": \"INSTANCE_EVENT_HOOKS\",\n \"INSTANCE_CHILDREN\": \"INSTANCE_CHILDREN\",\n \"INSTANCE_LISTENERS\": \"INSTANCE_LISTENERS\",\n \"INSTANCE_SCOPED_SLOTS\": \"INSTANCE_SCOPED_SLOTS\",\n \"INSTANCE_ATTRS_CLASS_STYLE\": \"INSTANCE_ATTRS_CLASS_STYLE\",\n \"OPTIONS_DATA_FN\": \"OPTIONS_DATA_FN\",\n \"OPTIONS_DATA_MERGE\": \"OPTIONS_DATA_MERGE\",\n \"OPTIONS_BEFORE_DESTROY\": \"OPTIONS_BEFORE_DESTROY\",\n \"OPTIONS_DESTROYED\": \"OPTIONS_DESTROYED\",\n \"WATCH_ARRAY\": \"WATCH_ARRAY\",\n \"PROPS_DEFAULT_THIS\": \"PROPS_DEFAULT_THIS\",\n \"V_ON_KEYCODE_MODIFIER\": \"V_ON_KEYCODE_MODIFIER\",\n \"CUSTOM_DIR\": \"CUSTOM_DIR\",\n \"ATTR_FALSE_VALUE\": \"ATTR_FALSE_VALUE\",\n \"ATTR_ENUMERATED_COERCION\": \"ATTR_ENUMERATED_COERCION\",\n \"TRANSITION_CLASSES\": \"TRANSITION_CLASSES\",\n \"TRANSITION_GROUP_ROOT\": \"TRANSITION_GROUP_ROOT\",\n \"COMPONENT_ASYNC\": \"COMPONENT_ASYNC\",\n \"COMPONENT_FUNCTIONAL\": \"COMPONENT_FUNCTIONAL\",\n \"COMPONENT_V_MODEL\": \"COMPONENT_V_MODEL\",\n \"RENDER_FUNCTION\": \"RENDER_FUNCTION\",\n \"FILTERS\": \"FILTERS\",\n \"PRIVATE_APIS\": \"PRIVATE_APIS\"\n};\nconst deprecationData = {\n [\"GLOBAL_MOUNT\"]: {\n message: `The global app bootstrapping API has changed: vm.$mount() and the \"el\" option have been removed. Use createApp(RootComponent).mount() instead.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#mounting-app-instance`\n },\n [\"GLOBAL_MOUNT_CONTAINER\"]: {\n message: `Vue detected directives on the mount container. In Vue 3, the container is no longer considered part of the template and will not be processed/replaced.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/mount-changes.html`\n },\n [\"GLOBAL_EXTEND\"]: {\n message: `Vue.extend() has been removed in Vue 3. Use defineComponent() instead.`,\n link: `https://vuejs.org/api/general.html#definecomponent`\n },\n [\"GLOBAL_PROTOTYPE\"]: {\n message: `Vue.prototype is no longer available in Vue 3. Use app.config.globalProperties instead.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#vue-prototype-replaced-by-config-globalproperties`\n },\n [\"GLOBAL_SET\"]: {\n message: `Vue.set() has been removed as it is no longer needed in Vue 3. Simply use native JavaScript mutations.`\n },\n [\"GLOBAL_DELETE\"]: {\n message: `Vue.delete() has been removed as it is no longer needed in Vue 3. Simply use native JavaScript mutations.`\n },\n [\"GLOBAL_OBSERVABLE\"]: {\n message: `Vue.observable() has been removed. Use \\`import { reactive } from \"vue\"\\` from Composition API instead.`,\n link: `https://vuejs.org/api/reactivity-core.html#reactive`\n },\n [\"GLOBAL_PRIVATE_UTIL\"]: {\n message: `Vue.util has been removed. Please refactor to avoid its usage since it was an internal API even in Vue 2.`\n },\n [\"CONFIG_SILENT\"]: {\n message: `config.silent has been removed because it is not good practice to intentionally suppress warnings. You can use your browser console's filter features to focus on relevant messages.`\n },\n [\"CONFIG_DEVTOOLS\"]: {\n message: `config.devtools has been removed. To enable devtools for production, configure the __VUE_PROD_DEVTOOLS__ compile-time flag.`,\n link: `https://github.com/vuejs/core/tree/main/packages/vue#bundler-build-feature-flags`\n },\n [\"CONFIG_KEY_CODES\"]: {\n message: `config.keyCodes has been removed. In Vue 3, you can directly use the kebab-case key names as v-on modifiers.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/keycode-modifiers.html`\n },\n [\"CONFIG_PRODUCTION_TIP\"]: {\n message: `config.productionTip has been removed.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#config-productiontip-removed`\n },\n [\"CONFIG_IGNORED_ELEMENTS\"]: {\n message: () => {\n let msg = `config.ignoredElements has been removed.`;\n if (isRuntimeOnly()) {\n msg += ` Pass the \"isCustomElement\" option to @vue/compiler-dom instead.`;\n } else {\n msg += ` Use config.isCustomElement instead.`;\n }\n return msg;\n },\n link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#config-ignoredelements-is-now-config-iscustomelement`\n },\n [\"CONFIG_WHITESPACE\"]: {\n // this warning is only relevant in the full build when using runtime\n // compilation, so it's put in the runtime compatConfig list.\n message: `Vue 3 compiler's whitespace option will default to \"condense\" instead of \"preserve\". To suppress this warning, provide an explicit value for \\`config.compilerOptions.whitespace\\`.`\n },\n [\"CONFIG_OPTION_MERGE_STRATS\"]: {\n message: `config.optionMergeStrategies no longer exposes internal strategies. Use custom merge functions instead.`\n },\n [\"INSTANCE_SET\"]: {\n message: `vm.$set() has been removed as it is no longer needed in Vue 3. Simply use native JavaScript mutations.`\n },\n [\"INSTANCE_DELETE\"]: {\n message: `vm.$delete() has been removed as it is no longer needed in Vue 3. Simply use native JavaScript mutations.`\n },\n [\"INSTANCE_DESTROY\"]: {\n message: `vm.$destroy() has been removed. Use app.unmount() instead.`,\n link: `https://vuejs.org/api/application.html#app-unmount`\n },\n [\"INSTANCE_EVENT_EMITTER\"]: {\n message: `vm.$on/$once/$off() have been removed. Use an external event emitter library instead.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/events-api.html`\n },\n [\"INSTANCE_EVENT_HOOKS\"]: {\n message: (event) => `\"${event}\" lifecycle events are no longer supported. From templates, use the \"vue:\" prefix instead of \"hook:\". For example, @${event} should be changed to @vue:${event.slice(5)}. From JavaScript, use Composition API to dynamically register lifecycle hooks.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/vnode-lifecycle-events.html`\n },\n [\"INSTANCE_CHILDREN\"]: {\n message: `vm.$children has been removed. Consider refactoring your logic to avoid relying on direct access to child components.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/children.html`\n },\n [\"INSTANCE_LISTENERS\"]: {\n message: `vm.$listeners has been removed. In Vue 3, parent v-on listeners are included in vm.$attrs and it is no longer necessary to separately use v-on=\"$listeners\" if you are already using v-bind=\"$attrs\". (Note: the Vue 3 behavior only applies if this compat config is disabled)`,\n link: `https://v3-migration.vuejs.org/breaking-changes/listeners-removed.html`\n },\n [\"INSTANCE_SCOPED_SLOTS\"]: {\n message: `vm.$scopedSlots has been removed. Use vm.$slots instead.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/slots-unification.html`\n },\n [\"INSTANCE_ATTRS_CLASS_STYLE\"]: {\n message: (componentName) => `Component <${componentName || \"Anonymous\"}> has \\`inheritAttrs: false\\` but is relying on class/style fallthrough from parent. In Vue 3, class/style are now included in $attrs and will no longer fallthrough when inheritAttrs is false. If you are already using v-bind=\"$attrs\" on component root it should render the same end result. If you are binding $attrs to a non-root element and expecting class/style to fallthrough on root, you will need to now manually bind them on root via :class=\"$attrs.class\".`,\n link: `https://v3-migration.vuejs.org/breaking-changes/attrs-includes-class-style.html`\n },\n [\"OPTIONS_DATA_FN\"]: {\n message: `The \"data\" option can no longer be a plain object. Always use a function.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/data-option.html`\n },\n [\"OPTIONS_DATA_MERGE\"]: {\n message: (key) => `Detected conflicting key \"${key}\" when merging data option values. In Vue 3, data keys are merged shallowly and will override one another.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/data-option.html#mixin-merge-behavior-change`\n },\n [\"OPTIONS_BEFORE_DESTROY\"]: {\n message: `\\`beforeDestroy\\` has been renamed to \\`beforeUnmount\\`.`\n },\n [\"OPTIONS_DESTROYED\"]: {\n message: `\\`destroyed\\` has been renamed to \\`unmounted\\`.`\n },\n [\"WATCH_ARRAY\"]: {\n message: `\"watch\" option or vm.$watch on an array value will no longer trigger on array mutation unless the \"deep\" option is specified. If current usage is intended, you can disable the compat behavior and suppress this warning with:\n\n configureCompat({ ${\"WATCH_ARRAY\"}: false })\n`,\n link: `https://v3-migration.vuejs.org/breaking-changes/watch.html`\n },\n [\"PROPS_DEFAULT_THIS\"]: {\n message: (key) => `props default value function no longer has access to \"this\". The compat build only offers access to this.$options.(found in prop \"${key}\")`,\n link: `https://v3-migration.vuejs.org/breaking-changes/props-default-this.html`\n },\n [\"CUSTOM_DIR\"]: {\n message: (legacyHook, newHook) => `Custom directive hook \"${legacyHook}\" has been removed. Use \"${newHook}\" instead.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/custom-directives.html`\n },\n [\"V_ON_KEYCODE_MODIFIER\"]: {\n message: `Using keyCode as v-on modifier is no longer supported. Use kebab-case key name modifiers instead.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/keycode-modifiers.html`\n },\n [\"ATTR_FALSE_VALUE\"]: {\n message: (name) => `Attribute \"${name}\" with v-bind value \\`false\\` will render ${name}=\"false\" instead of removing it in Vue 3. To remove the attribute, use \\`null\\` or \\`undefined\\` instead. If the usage is intended, you can disable the compat behavior and suppress this warning with:\n\n configureCompat({ ${\"ATTR_FALSE_VALUE\"}: false })\n`,\n link: `https://v3-migration.vuejs.org/breaking-changes/attribute-coercion.html`\n },\n [\"ATTR_ENUMERATED_COERCION\"]: {\n message: (name, value, coerced) => `Enumerated attribute \"${name}\" with v-bind value \\`${value}\\` will ${value === null ? `be removed` : `render the value as-is`} instead of coercing the value to \"${coerced}\" in Vue 3. Always use explicit \"true\" or \"false\" values for enumerated attributes. If the usage is intended, you can disable the compat behavior and suppress this warning with:\n\n configureCompat({ ${\"ATTR_ENUMERATED_COERCION\"}: false })\n`,\n link: `https://v3-migration.vuejs.org/breaking-changes/attribute-coercion.html`\n },\n [\"TRANSITION_CLASSES\"]: {\n message: ``\n // this feature cannot be runtime-detected\n },\n [\"TRANSITION_GROUP_ROOT\"]: {\n message: `<TransitionGroup> no longer renders a root <span> element by default if no \"tag\" prop is specified. If you do not rely on the span for styling, you can disable the compat behavior and suppress this warning with:\n\n configureCompat({ ${\"TRANSITION_GROUP_ROOT\"}: false })\n`,\n link: `https://v3-migration.vuejs.org/breaking-changes/transition-group.html`\n },\n [\"COMPONENT_ASYNC\"]: {\n message: (comp) => {\n const name = getComponentName(comp);\n return `Async component${name ? ` <${name}>` : `s`} should be explicitly created via \\`defineAsyncComponent()\\` in Vue 3. Plain functions will be treated as functional components in non-compat build. If you have already migrated all async component usage and intend to use plain functions for functional components, you can disable the compat behavior and suppress this warning with:\n\n configureCompat({ ${\"COMPONENT_ASYNC\"}: false })\n`;\n },\n link: `https://v3-migration.vuejs.org/breaking-changes/async-components.html`\n },\n [\"COMPONENT_FUNCTIONAL\"]: {\n message: (comp) => {\n const name = getComponentName(comp);\n return `Functional component${name ? ` <${name}>` : `s`} should be defined as a plain function in Vue 3. The \"functional\" option has been removed. NOTE: Before migrating to use plain functions for functional components, first make sure that all async components usage have been migrated and its compat behavior has been disabled.`;\n },\n link: `https://v3-migration.vuejs.org/breaking-changes/functional-components.html`\n },\n [\"COMPONENT_V_MODEL\"]: {\n message: (comp) => {\n const configMsg = `opt-in to Vue 3 behavior on a per-component basis with \\`compatConfig: { ${\"COMPONENT_V_MODEL\"}: false }\\`.`;\n if (comp.props && (isArray(comp.props) ? comp.props.includes(\"modelValue\") : hasOwn(comp.props, \"modelValue\"))) {\n return `Component declares \"modelValue\" prop, which is Vue 3 usage, but is running under Vue 2 compat v-model behavior. You can ${configMsg}`;\n }\n return `v-model usage on component has changed in Vue 3. Component that expects to work with v-model should now use the \"modelValue\" prop and emit the \"update:modelValue\" event. You can update the usage and then ${configMsg}`;\n },\n link: `https://v3-migration.vuejs.org/breaking-changes/v-model.html`\n },\n [\"RENDER_FUNCTION\"]: {\n message: `Vue 3's render function API has changed. You can opt-in to the new API with:\n\n configureCompat({ ${\"RENDER_FUNCTION\"}: false })\n\n (This can also be done per-component via the \"compatConfig\" option.)`,\n link: `https://v3-migration.vuejs.org/breaking-changes/render-function-api.html`\n },\n [\"FILTERS\"]: {\n message: `filters have been removed in Vue 3. The \"|\" symbol will be treated as native JavaScript bitwise OR operator. Use method calls or computed properties instead.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/filters.html`\n },\n [\"PRIVATE_APIS\"]: {\n message: (name) => `\"${name}\" is a Vue 2 private API that no longer exists in Vue 3. If you are seeing this warning only due to a dependency, you can suppress this warning via { PRIVATE_APIS: 'suppress-warning' }.`\n }\n};\nconst instanceWarned = /* @__PURE__ */ Object.create(null);\nconst warnCount = /* @__PURE__ */ Object.create(null);\nfunction warnDeprecation(key, instance, ...args) {\n if (!!!(process.env.NODE_ENV !== \"production\")) {\n return;\n }\n instance = instance || getCurrentInstance();\n const config = getCompatConfigForKey(key, instance);\n if (config === \"suppress-warning\") {\n return;\n }\n const dupKey = key + args.join(\"\");\n let compId = instance && formatComponentName(instance, instance.type);\n if (compId === \"Anonymous\" && instance) {\n compId = instance.uid;\n }\n const componentDupKey = dupKey + compId;\n if (componentDupKey in instanceWarned) {\n return;\n }\n instanceWarned[componentDupKey] = true;\n if (dupKey in warnCount) {\n warn$1(`(deprecation ${key}) (${++warnCount[dupKey] + 1})`);\n return;\n }\n warnCount[dupKey] = 0;\n const { message, link } = deprecationData[key];\n warn$1(\n `(deprecation ${key}) ${typeof message === \"function\" ? message(...args) : message}${link ? `\n Details: ${link}` : ``}`\n );\n if (!isCompatEnabled(key, instance, true)) {\n console.error(\n `^ The above deprecation's compat behavior is disabled and will likely lead to runtime errors.`\n );\n }\n}\nconst globalCompatConfig = {\n MODE: 2\n};\nfunction configureCompat$1(config) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateCompatConfig(config);\n }\n extend(globalCompatConfig, config);\n}\nconst seenConfigObjects = /* @__PURE__ */ new WeakSet();\nconst warnedInvalidKeys = {};\nfunction validateCompatConfig(config, instance) {\n if (seenConfigObjects.has(config)) {\n return;\n }\n seenConfigObjects.add(config);\n for (const key of Object.keys(config)) {\n if (key !== \"MODE\" && !(key in deprecationData) && !(key in warnedInvalidKeys)) {\n if (key.startsWith(\"COMPILER_\")) {\n if (isRuntimeOnly()) {\n warn$1(\n `Deprecation config \"${key}\" is compiler-specific and you are running a runtime-only build of Vue. This deprecation should be configured via compiler options in your build setup instead.\nDetails: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`\n );\n }\n } else {\n warn$1(`Invalid deprecation config \"${key}\".`);\n }\n warnedInvalidKeys[key] = true;\n }\n }\n if (instance && config[\"OPTIONS_DATA_MERGE\"] != null) {\n warn$1(\n `Deprecation config \"${\"OPTIONS_DATA_MERGE\"}\" can only be configured globally.`\n );\n }\n}\nfunction getCompatConfigForKey(key, instance) {\n const instanceConfig = instance && instance.type.compatConfig;\n if (instanceConfig && key in instanceConfig) {\n return instanceConfig[key];\n }\n return globalCompatConfig[key];\n}\nfunction isCompatEnabled(key, instance, enableForBuiltIn = false) {\n if (!enableForBuiltIn && instance && instance.type.__isBuiltIn) {\n return false;\n }\n const rawMode = getCompatConfigForKey(\"MODE\", instance) || 2;\n const val = getCompatConfigForKey(key, instance);\n const mode = isFunction(rawMode) ? rawMode(instance && instance.type) : rawMode;\n if (mode === 2) {\n return val !== false;\n } else {\n return val === true || val === \"suppress-warning\";\n }\n}\nfunction assertCompatEnabled(key, instance, ...args) {\n if (!isCompatEnabled(key, instance)) {\n throw new Error(`${key} compat has been disabled.`);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warnDeprecation(key, instance, ...args);\n }\n}\nfunction softAssertCompatEnabled(key, instance, ...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnDeprecation(key, instance, ...args);\n }\n return isCompatEnabled(key, instance);\n}\nfunction checkCompatEnabled(key, instance, ...args) {\n const enabled = isCompatEnabled(key, instance);\n if (!!(process.env.NODE_ENV !== \"production\") && enabled) {\n warnDeprecation(key, instance, ...args);\n }\n return enabled;\n}\n\nconst eventRegistryMap = /* @__PURE__ */ new WeakMap();\nfunction getRegistry(instance) {\n let events = eventRegistryMap.get(instance);\n if (!events) {\n eventRegistryMap.set(instance, events = /* @__PURE__ */ Object.create(null));\n }\n return events;\n}\nfunction on(instance, event, fn) {\n if (isArray(event)) {\n event.forEach((e) => on(instance, e, fn));\n } else {\n if (event.startsWith(\"hook:\")) {\n assertCompatEnabled(\n \"INSTANCE_EVENT_HOOKS\",\n instance,\n event\n );\n } else {\n assertCompatEnabled(\"INSTANCE_EVENT_EMITTER\", instance);\n }\n const events = getRegistry(instance);\n (events[event] || (events[event] = [])).push(fn);\n }\n return instance.proxy;\n}\nfunction once(instance, event, fn) {\n const wrapped = (...args) => {\n off(instance, event, wrapped);\n fn.call(instance.proxy, ...args);\n };\n wrapped.fn = fn;\n on(instance, event, wrapped);\n return instance.proxy;\n}\nfunction off(instance, event, fn) {\n assertCompatEnabled(\"INSTANCE_EVENT_EMITTER\", instance);\n const vm = instance.proxy;\n if (!event) {\n eventRegistryMap.set(instance, /* @__PURE__ */ Object.create(null));\n return vm;\n }\n if (isArray(event)) {\n event.forEach((e) => off(instance, e, fn));\n return vm;\n }\n const events = getRegistry(instance);\n const cbs = events[event];\n if (!cbs) {\n return vm;\n }\n if (!fn) {\n events[event] = void 0;\n return vm;\n }\n events[event] = cbs.filter((cb) => !(cb === fn || cb.fn === fn));\n return vm;\n}\nfunction emit$1(instance, event, args) {\n const cbs = getRegistry(instance)[event];\n if (cbs) {\n callWithAsyncErrorHandling(\n cbs.map((cb) => cb.bind(instance.proxy)),\n instance,\n 6,\n args\n );\n }\n return instance.proxy;\n}\n\nconst compatModelEventPrefix = `onModelCompat:`;\nconst warnedTypes = /* @__PURE__ */ new WeakSet();\nfunction convertLegacyVModelProps(vnode) {\n const { type, shapeFlag, props, dynamicProps } = vnode;\n const comp = type;\n if (shapeFlag & 6 && props && \"modelValue\" in props) {\n if (!isCompatEnabled(\n \"COMPONENT_V_MODEL\",\n // this is a special case where we want to use the vnode component's\n // compat config instead of the current rendering instance (which is the\n // parent of the component that exposes v-model)\n { type }\n )) {\n return;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !warnedTypes.has(comp)) {\n pushWarningContext(vnode);\n warnDeprecation(\"COMPONENT_V_MODEL\", { type }, comp);\n popWarningContext();\n warnedTypes.add(comp);\n }\n const model = comp.model || {};\n applyModelFromMixins(model, comp.mixins);\n const { prop = \"value\", event = \"input\" } = model;\n if (prop !== \"modelValue\") {\n props[prop] = props.modelValue;\n delete props.modelValue;\n }\n if (dynamicProps) {\n dynamicProps[dynamicProps.indexOf(\"modelValue\")] = prop;\n }\n props[compatModelEventPrefix + event] = props[\"onUpdate:modelValue\"];\n delete props[\"onUpdate:modelValue\"];\n }\n}\nfunction applyModelFromMixins(model, mixins) {\n if (mixins) {\n mixins.forEach((m) => {\n if (m.model)\n extend(model, m.model);\n if (m.mixins)\n applyModelFromMixins(model, m.mixins);\n });\n }\n}\nfunction compatModelEmit(instance, event, args) {\n if (!isCompatEnabled(\"COMPONENT_V_MODEL\", instance)) {\n return;\n }\n const props = instance.vnode.props;\n const modelHandler = props && props[compatModelEventPrefix + event];\n if (modelHandler) {\n callWithErrorHandling(\n modelHandler,\n instance,\n 6,\n args\n );\n }\n}\n\nfunction emit(instance, event, ...rawArgs) {\n if (instance.isUnmounted)\n return;\n const props = instance.vnode.props || EMPTY_OBJ;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const {\n emitsOptions,\n propsOptions: [propsOptions]\n } = instance;\n if (emitsOptions) {\n if (!(event in emitsOptions) && !(event.startsWith(\"hook:\") || event.startsWith(compatModelEventPrefix))) {\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\n warn$1(\n `Component emitted event \"${event}\" but it is neither declared in the emits option nor as an \"${toHandlerKey(event)}\" prop.`\n );\n }\n } else {\n const validator = emitsOptions[event];\n if (isFunction(validator)) {\n const isValid = validator(...rawArgs);\n if (!isValid) {\n warn$1(\n `Invalid event arguments: event validation failed for event \"${event}\".`\n );\n }\n }\n }\n }\n }\n let args = rawArgs;\n const isModelListener = event.startsWith(\"update:\");\n const modelArg = isModelListener && event.slice(7);\n if (modelArg && modelArg in props) {\n const modifiersKey = `${modelArg === \"modelValue\" ? \"model\" : modelArg}Modifiers`;\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\n if (trim) {\n args = rawArgs.map((a) => isString(a) ? a.trim() : a);\n }\n if (number) {\n args = rawArgs.map(looseToNumber);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentEmit(instance, event, args);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n warn$1(\n `Event \"${lowerCaseEvent}\" is emitted in component ${formatComponentName(\n instance,\n instance.type\n )} but the handler is registered for \"${event}\". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use \"${hyphenate(\n event\n )}\" instead of \"${event}\".`\n );\n }\n }\n let handlerName;\n let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)\n props[handlerName = toHandlerKey(camelize(event))];\n if (!handler && isModelListener) {\n handler = props[handlerName = toHandlerKey(hyphenate(event))];\n }\n if (handler) {\n callWithAsyncErrorHandling(\n handler,\n instance,\n 6,\n args\n );\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n } else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(\n onceHandler,\n instance,\n 6,\n args\n );\n }\n {\n compatModelEmit(instance, event, args);\n return emit$1(instance, event, args);\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== void 0) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendEmits = (raw2) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (isArray(raw)) {\n raw.forEach((key) => normalized[key] = null);\n } else {\n extend(normalized, raw);\n }\n if (isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\nfunction isEmitListener(options, key) {\n if (!options || !isOn(key)) {\n return false;\n }\n if (key.startsWith(compatModelEventPrefix)) {\n return true;\n }\n key = key.slice(2).replace(/Once$/, \"\");\n return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n if (!currentScopeId) {\n currentScopeId = instance && instance.type._scopeId || null;\n }\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx)\n return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n if (isNonScopedSlot) {\n renderFnWithContext._ns = true;\n }\n return renderFnWithContext;\n}\n\nlet accessedAttrs = false;\nfunction markAttrsAccessed() {\n accessedAttrs = true;\n}\nfunction renderComponentRoot(instance) {\n const {\n type: Component,\n vnode,\n proxy,\n withProxy,\n props,\n propsOptions: [propsOptions],\n slots,\n attrs,\n emit,\n render,\n renderCache,\n data,\n setupState,\n ctx,\n inheritAttrs\n } = instance;\n let result;\n let fallthroughAttrs;\n const prev = setCurrentRenderingInstance(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n accessedAttrs = false;\n }\n try {\n if (vnode.shapeFlag & 4) {\n const proxyToUse = withProxy || proxy;\n const thisProxy = !!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup ? new Proxy(proxyToUse, {\n get(target, key, receiver) {\n warn$1(\n `Property '${String(\n key\n )}' was accessed via 'this'. Avoid using 'this' in templates.`\n );\n return Reflect.get(target, key, receiver);\n }\n }) : proxyToUse;\n result = normalizeVNode(\n render.call(\n thisProxy,\n proxyToUse,\n renderCache,\n props,\n setupState,\n data,\n ctx\n )\n );\n fallthroughAttrs = attrs;\n } else {\n const render2 = Component;\n if (!!(process.env.NODE_ENV !== \"production\") && attrs === props) {\n markAttrsAccessed();\n }\n result = normalizeVNode(\n render2.length > 1 ? render2(\n props,\n !!(process.env.NODE_ENV !== \"production\") ? {\n get attrs() {\n markAttrsAccessed();\n return attrs;\n },\n slots,\n emit\n } : { attrs, slots, emit }\n ) : render2(\n props,\n null\n /* we know it doesn't need it */\n )\n );\n fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);\n }\n } catch (err) {\n blockStack.length = 0;\n handleError(err, instance, 1);\n result = createVNode(Comment);\n }\n let root = result;\n let setRoot = void 0;\n if (!!(process.env.NODE_ENV !== \"production\") && result.patchFlag > 0 && result.patchFlag & 2048) {\n [root, setRoot] = getChildRoot(result);\n }\n if (fallthroughAttrs && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs);\n const { shapeFlag } = root;\n if (keys.length) {\n if (shapeFlag & (1 | 6)) {\n if (propsOptions && keys.some(isModelListener)) {\n fallthroughAttrs = filterModelListeners(\n fallthroughAttrs,\n propsOptions\n );\n }\n root = cloneVNode(root, fallthroughAttrs);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !accessedAttrs && root.type !== Comment) {\n const allAttrs = Object.keys(attrs);\n const eventAttrs = [];\n const extraAttrs = [];\n for (let i = 0, l = allAttrs.length; i < l; i++) {\n const key = allAttrs[i];\n if (isOn(key)) {\n if (!isModelListener(key)) {\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\n }\n } else {\n extraAttrs.push(key);\n }\n }\n if (extraAttrs.length) {\n warn$1(\n `Extraneous non-props attributes (${extraAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.`\n );\n }\n if (eventAttrs.length) {\n warn$1(\n `Extraneous non-emits event listeners (${eventAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the \"emits\" option.`\n );\n }\n }\n }\n }\n if (isCompatEnabled(\"INSTANCE_ATTRS_CLASS_STYLE\", instance) && vnode.shapeFlag & 4 && root.shapeFlag & (1 | 6)) {\n const { class: cls, style } = vnode.props || {};\n if (cls || style) {\n if (!!(process.env.NODE_ENV !== \"production\") && inheritAttrs === false) {\n warnDeprecation(\n \"INSTANCE_ATTRS_CLASS_STYLE\",\n instance,\n getComponentName(instance.type)\n );\n }\n root = cloneVNode(root, {\n class: cls,\n style\n });\n }\n }\n if (vnode.dirs) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn$1(\n `Runtime directive used on component with non-element root node. The directives will not function as intended.`\n );\n }\n root = cloneVNode(root);\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n }\n if (vnode.transition) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn$1(\n `Component inside <Transition> renders non-element root node that cannot be animated.`\n );\n }\n root.transition = vnode.transition;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && setRoot) {\n setRoot(root);\n } else {\n result = root;\n }\n setCurrentRenderingInstance(prev);\n return result;\n}\nconst getChildRoot = (vnode) => {\n const rawChildren = vnode.children;\n const dynamicChildren = vnode.dynamicChildren;\n const childRoot = filterSingleRoot(rawChildren, false);\n if (!childRoot) {\n return [vnode, void 0];\n } else if (!!(process.env.NODE_ENV !== \"production\") && childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) {\n return getChildRoot(childRoot);\n }\n const index = rawChildren.indexOf(childRoot);\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\n const setRoot = (updatedRoot) => {\n rawChildren[index] = updatedRoot;\n if (dynamicChildren) {\n if (dynamicIndex > -1) {\n dynamicChildren[dynamicIndex] = updatedRoot;\n } else if (updatedRoot.patchFlag > 0) {\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\n }\n }\n };\n return [normalizeVNode(childRoot), setRoot];\n};\nfunction filterSingleRoot(children, recurse = true) {\n let singleRoot;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isVNode(child)) {\n if (child.type !== Comment || child.children === \"v-if\") {\n if (singleRoot) {\n return;\n } else {\n singleRoot = child;\n if (!!(process.env.NODE_ENV !== \"production\") && recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) {\n return filterSingleRoot(singleRoot.children);\n }\n }\n }\n } else {\n return;\n }\n }\n return singleRoot;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === \"class\" || key === \"style\" || isOn(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nconst filterModelListeners = (attrs, props) => {\n const res = {};\n for (const key in attrs) {\n if (!isModelListener(key) || !(key.slice(9) in props)) {\n res[key] = attrs[key];\n }\n }\n return res;\n};\nconst isElementRoot = (vnode) => {\n return vnode.shapeFlag & (6 | 1) || vnode.type === Comment;\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n const { props: prevProps, children: prevChildren, component } = prevVNode;\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n const emits = component.emitsOptions;\n if (!!(process.env.NODE_ENV !== \"production\") && (prevChildren || nextChildren) && isHmrUpdating) {\n return true;\n }\n if (nextVNode.dirs || nextVNode.transition) {\n return true;\n }\n if (optimized && patchFlag >= 0) {\n if (patchFlag & 1024) {\n return true;\n }\n if (patchFlag & 16) {\n if (!prevProps) {\n return !!nextProps;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n } else if (patchFlag & 8) {\n const dynamicProps = nextVNode.dynamicProps;\n for (let i = 0; i < dynamicProps.length; i++) {\n const key = dynamicProps[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {\n return true;\n }\n }\n }\n } else {\n if (prevChildren || nextChildren) {\n if (!nextChildren || !nextChildren.$stable) {\n return true;\n }\n }\n if (prevProps === nextProps) {\n return false;\n }\n if (!prevProps) {\n return !!nextProps;\n }\n if (!nextProps) {\n return true;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n const nextKeys = Object.keys(nextProps);\n if (nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {\n return true;\n }\n }\n return false;\n}\nfunction updateHOCHostEl({ vnode, parent }, el) {\n while (parent) {\n const root = parent.subTree;\n if (root.suspense && root.suspense.activeBranch === vnode) {\n root.el = vnode.el;\n }\n if (root === vnode) {\n (vnode = parent.vnode).el = el;\n parent = parent.parent;\n } else {\n break;\n }\n }\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nconst FILTERS = \"filters\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveFilter$1(name) {\n return resolveAsset(FILTERS, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nconst isSuspense = (type) => type.__isSuspense;\nlet suspenseId = 0;\nconst SuspenseImpl = {\n name: \"Suspense\",\n // In order to make Suspense tree-shakable, we need to avoid importing it\n // directly in the renderer. The renderer checks for the __isSuspense flag\n // on a vnode's type and calls the `process` method, passing in renderer\n // internals.\n __isSuspense: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {\n if (n1 == null) {\n mountSuspense(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n } else {\n if (parentSuspense && parentSuspense.deps > 0) {\n n2.suspense = n1.suspense;\n return;\n }\n patchSuspense(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n }\n },\n hydrate: hydrateSuspense,\n create: createSuspenseBoundary,\n normalize: normalizeSuspenseChildren\n};\nconst Suspense = SuspenseImpl ;\nfunction triggerEvent(vnode, name) {\n const eventListener = vnode.props && vnode.props[name];\n if (isFunction(eventListener)) {\n eventListener();\n }\n}\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {\n const {\n p: patch,\n o: { createElement }\n } = rendererInternals;\n const hiddenContainer = createElement(\"div\");\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n container,\n hiddenContainer,\n anchor,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n patch(\n null,\n suspense.pendingBranch = vnode.ssContent,\n hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds\n );\n if (suspense.deps > 0) {\n triggerEvent(vnode, \"onPending\");\n triggerEvent(vnode, \"onFallback\");\n patch(\n null,\n vnode.ssFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds\n );\n setActiveBranch(suspense, vnode.ssFallback);\n } else {\n suspense.resolve(false, true);\n }\n}\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\n const suspense = n2.suspense = n1.suspense;\n suspense.vnode = n2;\n n2.el = n1.el;\n const newBranch = n2.ssContent;\n const newFallback = n2.ssFallback;\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\n if (pendingBranch) {\n suspense.pendingBranch = newBranch;\n if (isSameVNodeType(newBranch, pendingBranch)) {\n patch(\n pendingBranch,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else if (isInFallback) {\n if (!isHydrating) {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n }\n } else {\n suspense.pendingId = suspenseId++;\n if (isHydrating) {\n suspense.isHydrating = false;\n suspense.activeBranch = pendingBranch;\n } else {\n unmount(pendingBranch, parentComponent, suspense);\n }\n suspense.deps = 0;\n suspense.effects.length = 0;\n suspense.hiddenContainer = createElement(\"div\");\n if (isInFallback) {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n suspense.resolve(true);\n } else {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n }\n }\n } else {\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newBranch);\n } else {\n triggerEvent(n2, \"onPending\");\n suspense.pendingBranch = newBranch;\n if (newBranch.shapeFlag & 512) {\n suspense.pendingId = newBranch.component.suspenseId;\n } else {\n suspense.pendingId = suspenseId++;\n }\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n const { timeout, pendingId } = suspense;\n if (timeout > 0) {\n setTimeout(() => {\n if (suspense.pendingId === pendingId) {\n suspense.fallback(newFallback);\n }\n }, timeout);\n } else if (timeout === 0) {\n suspense.fallback(newFallback);\n }\n }\n }\n }\n}\nlet hasWarned = false;\nfunction createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\n if (!!(process.env.NODE_ENV !== \"production\") && true && !hasWarned) {\n hasWarned = true;\n console[console.info ? \"info\" : \"log\"](\n `<Suspense> is an experimental feature and its API will likely change.`\n );\n }\n const {\n p: patch,\n m: move,\n um: unmount,\n n: next,\n o: { parentNode, remove }\n } = rendererInternals;\n let parentSuspenseId;\n const isSuspensible = isVNodeSuspensible(vnode);\n if (isSuspensible) {\n if (parentSuspense == null ? void 0 : parentSuspense.pendingBranch) {\n parentSuspenseId = parentSuspense.pendingId;\n parentSuspense.deps++;\n }\n }\n const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n assertNumber(timeout, `Suspense timeout`);\n }\n const initialAnchor = anchor;\n const suspense = {\n vnode,\n parent: parentSuspense,\n parentComponent,\n namespace,\n container,\n hiddenContainer,\n deps: 0,\n pendingId: suspenseId++,\n timeout: typeof timeout === \"number\" ? timeout : -1,\n activeBranch: null,\n pendingBranch: null,\n isInFallback: !isHydrating,\n isHydrating,\n isUnmounted: false,\n effects: [],\n resolve(resume = false, sync = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!resume && !suspense.pendingBranch) {\n throw new Error(\n `suspense.resolve() is called without a pending branch.`\n );\n }\n if (suspense.isUnmounted) {\n throw new Error(\n `suspense.resolve() is called on an already unmounted suspense boundary.`\n );\n }\n }\n const {\n vnode: vnode2,\n activeBranch,\n pendingBranch,\n pendingId,\n effects,\n parentComponent: parentComponent2,\n container: container2\n } = suspense;\n let delayEnter = false;\n if (suspense.isHydrating) {\n suspense.isHydrating = false;\n } else if (!resume) {\n delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = () => {\n if (pendingId === suspense.pendingId) {\n move(\n pendingBranch,\n container2,\n anchor === initialAnchor ? next(activeBranch) : anchor,\n 0\n );\n queuePostFlushCb(effects);\n }\n };\n }\n if (activeBranch) {\n if (parentNode(activeBranch.el) !== suspense.hiddenContainer) {\n anchor = next(activeBranch);\n }\n unmount(activeBranch, parentComponent2, suspense, true);\n }\n if (!delayEnter) {\n move(pendingBranch, container2, anchor, 0);\n }\n }\n setActiveBranch(suspense, pendingBranch);\n suspense.pendingBranch = null;\n suspense.isInFallback = false;\n let parent = suspense.parent;\n let hasUnresolvedAncestor = false;\n while (parent) {\n if (parent.pendingBranch) {\n parent.effects.push(...effects);\n hasUnresolvedAncestor = true;\n break;\n }\n parent = parent.parent;\n }\n if (!hasUnresolvedAncestor && !delayEnter) {\n queuePostFlushCb(effects);\n }\n suspense.effects = [];\n if (isSuspensible) {\n if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0 && !sync) {\n parentSuspense.resolve();\n }\n }\n }\n triggerEvent(vnode2, \"onResolve\");\n },\n fallback(fallbackVNode) {\n if (!suspense.pendingBranch) {\n return;\n }\n const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense;\n triggerEvent(vnode2, \"onFallback\");\n const anchor2 = next(activeBranch);\n const mountFallback = () => {\n if (!suspense.isInFallback) {\n return;\n }\n patch(\n null,\n fallbackVNode,\n container2,\n anchor2,\n parentComponent2,\n null,\n // fallback tree will not have suspense context\n namespace2,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, fallbackVNode);\n };\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = mountFallback;\n }\n suspense.isInFallback = true;\n unmount(\n activeBranch,\n parentComponent2,\n null,\n // no suspense so unmount hooks fire now\n true\n // shouldRemove\n );\n if (!delayEnter) {\n mountFallback();\n }\n },\n move(container2, anchor2, type) {\n suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type);\n suspense.container = container2;\n },\n next() {\n return suspense.activeBranch && next(suspense.activeBranch);\n },\n registerDep(instance, setupRenderEffect) {\n const isInPendingSuspense = !!suspense.pendingBranch;\n if (isInPendingSuspense) {\n suspense.deps++;\n }\n const hydratedEl = instance.vnode.el;\n instance.asyncDep.catch((err) => {\n handleError(err, instance, 0);\n }).then((asyncSetupResult) => {\n if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) {\n return;\n }\n instance.asyncResolved = true;\n const { vnode: vnode2 } = instance;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(vnode2);\n }\n handleSetupResult(instance, asyncSetupResult, false);\n if (hydratedEl) {\n vnode2.el = hydratedEl;\n }\n const placeholder = !hydratedEl && instance.subTree.el;\n setupRenderEffect(\n instance,\n vnode2,\n // component may have been moved before resolve.\n // if this is not a hydration, instance.subTree will be the comment\n // placeholder.\n parentNode(hydratedEl || instance.subTree.el),\n // anchor will not be used if this is hydration, so only need to\n // consider the comment placeholder case.\n hydratedEl ? null : next(instance.subTree),\n suspense,\n namespace,\n optimized\n );\n if (placeholder) {\n remove(placeholder);\n }\n updateHOCHostEl(instance, vnode2.el);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n if (isInPendingSuspense && --suspense.deps === 0) {\n suspense.resolve();\n }\n });\n },\n unmount(parentSuspense2, doRemove) {\n suspense.isUnmounted = true;\n if (suspense.activeBranch) {\n unmount(\n suspense.activeBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n if (suspense.pendingBranch) {\n unmount(\n suspense.pendingBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n }\n };\n return suspense;\n}\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) {\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n node.parentNode,\n // eslint-disable-next-line no-restricted-globals\n document.createElement(\"div\"),\n null,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals,\n true\n );\n const result = hydrateNode(\n node,\n suspense.pendingBranch = vnode.ssContent,\n parentComponent,\n suspense,\n slotScopeIds,\n optimized\n );\n if (suspense.deps === 0) {\n suspense.resolve(false, true);\n }\n return result;\n}\nfunction normalizeSuspenseChildren(vnode) {\n const { shapeFlag, children } = vnode;\n const isSlotChildren = shapeFlag & 32;\n vnode.ssContent = normalizeSuspenseSlot(\n isSlotChildren ? children.default : children\n );\n vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment);\n}\nfunction normalizeSuspenseSlot(s) {\n let block;\n if (isFunction(s)) {\n const trackBlock = isBlockTreeEnabled && s._c;\n if (trackBlock) {\n s._d = false;\n openBlock();\n }\n s = s();\n if (trackBlock) {\n s._d = true;\n block = currentBlock;\n closeBlock();\n }\n }\n if (isArray(s)) {\n const singleChild = filterSingleRoot(s);\n if (!!(process.env.NODE_ENV !== \"production\") && !singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) {\n warn$1(`<Suspense> slots expect a single root node.`);\n }\n s = singleChild;\n }\n s = normalizeVNode(s);\n if (block && !s.dynamicChildren) {\n s.dynamicChildren = block.filter((c) => c !== s);\n }\n return s;\n}\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (isArray(fn)) {\n suspense.effects.push(...fn);\n } else {\n suspense.effects.push(fn);\n }\n } else {\n queuePostFlushCb(fn);\n }\n}\nfunction setActiveBranch(suspense, branch) {\n suspense.activeBranch = branch;\n const { vnode, parentComponent } = suspense;\n let el = branch.el;\n while (!el && branch.component) {\n branch = branch.component.subTree;\n el = branch.el;\n }\n vnode.el = el;\n if (parentComponent && parentComponent.subTree === vnode) {\n parentComponent.vnode.el = el;\n updateHOCHostEl(parentComponent, el);\n }\n}\nfunction isVNodeSuspensible(vnode) {\n var _a;\n return ((_a = vnode.props) == null ? void 0 : _a.suspensible) != null && vnode.props.suspensible !== false;\n}\n\nconst legacyDirectiveHookMap = {\n beforeMount: \"bind\",\n mounted: \"inserted\",\n updated: [\"update\", \"componentUpdated\"],\n unmounted: \"unbind\"\n};\nfunction mapCompatDirectiveHook(name, dir, instance) {\n const mappedName = legacyDirectiveHookMap[name];\n if (mappedName) {\n if (isArray(mappedName)) {\n const hook = [];\n mappedName.forEach((mapped) => {\n const mappedHook = dir[mapped];\n if (mappedHook) {\n softAssertCompatEnabled(\n \"CUSTOM_DIR\",\n instance,\n mapped,\n name\n );\n hook.push(mappedHook);\n }\n });\n return hook.length ? hook : void 0;\n } else {\n if (dir[mappedName]) {\n softAssertCompatEnabled(\n \"CUSTOM_DIR\",\n instance,\n mappedName,\n name\n );\n }\n return dir[mappedName];\n }\n }\n}\n\nconst ssrContextKey = Symbol.for(\"v-scx\");\nconst useSSRContext = () => {\n {\n const ctx = inject(ssrContextKey);\n if (!ctx) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n );\n }\n return ctx;\n }\n};\n\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n );\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n );\n}\nconst INITIAL_WATCHER_VALUE = {};\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn$1(\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, {\n immediate,\n deep,\n flush,\n once,\n onTrack,\n onTrigger\n} = EMPTY_OBJ) {\n if (cb && once) {\n const _cb = cb;\n cb = (...args) => {\n _cb(...args);\n unwatch();\n };\n }\n if (!!(process.env.NODE_ENV !== \"production\") && deep !== void 0 && typeof deep === \"number\") {\n warn$1(\n `watch() \"deep\" option with number value will be used as watch depth in future versions. Please use a boolean instead to avoid potential breakage.`\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn$1(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn$1(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (once !== void 0) {\n warn$1(\n `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const warnInvalidSource = (s) => {\n warn$1(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const instance = currentInstance;\n const reactiveGetter = (source2) => deep === true ? source2 : (\n // for deep: false, only traverse root-level properties\n traverse(source2, deep === false ? 1 : void 0)\n );\n let getter;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return reactiveGetter(s);\n } else if (isFunction(s)) {\n return callWithErrorHandling(s, instance, 2);\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = () => callWithErrorHandling(source, instance, 2);\n } else {\n getter = () => {\n if (cleanup) {\n cleanup();\n }\n return callWithAsyncErrorHandling(\n source,\n instance,\n 3,\n [onCleanup]\n );\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && !deep) {\n const baseGetter = getter;\n getter = () => {\n const val = baseGetter();\n if (isArray(val) && checkCompatEnabled(\"WATCH_ARRAY\", instance)) {\n traverse(val);\n }\n return val;\n };\n }\n if (cb && deep) {\n const baseGetter = getter;\n getter = () => traverse(baseGetter());\n }\n let cleanup;\n let onCleanup = (fn) => {\n cleanup = effect.onStop = () => {\n callWithErrorHandling(fn, instance, 4);\n cleanup = effect.onStop = void 0;\n };\n };\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n onCleanup = NOOP;\n if (!cb) {\n getter();\n } else if (immediate) {\n callWithAsyncErrorHandling(cb, instance, 3, [\n getter(),\n isMultiSource ? [] : void 0,\n onCleanup\n ]);\n }\n if (flush === \"sync\") {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n } else {\n return NOOP;\n }\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = () => {\n if (!effect.active || !effect.dirty) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || isArray(newValue) && isCompatEnabled(\"WATCH_ARRAY\", instance)) {\n if (cleanup) {\n cleanup();\n }\n callWithAsyncErrorHandling(cb, instance, 3, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n } else {\n effect.run();\n }\n };\n job.allowRecurse = !!cb;\n let scheduler;\n if (flush === \"sync\") {\n scheduler = job;\n } else if (flush === \"post\") {\n scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);\n } else {\n job.pre = true;\n if (instance)\n job.id = instance.uid;\n scheduler = () => queueJob(job);\n }\n const effect = new ReactiveEffect(getter, NOOP, scheduler);\n const scope = getCurrentScope();\n const unwatch = () => {\n effect.stop();\n if (scope) {\n remove(scope.effects, effect);\n }\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = onTrack;\n effect.onTrigger = onTrigger;\n }\n if (cb) {\n if (immediate) {\n job();\n } else {\n oldValue = effect.run();\n }\n } else if (flush === \"post\") {\n queuePostRenderEffect(\n effect.run.bind(effect),\n instance && instance.suspense\n );\n } else {\n effect.run();\n }\n if (ssrCleanup)\n ssrCleanup.push(unwatch);\n return unwatch;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const reset = setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n reset();\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\nfunction traverse(value, depth, currentDepth = 0, seen) {\n if (!isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n if (depth && depth > 0) {\n if (currentDepth >= depth) {\n return value;\n }\n currentDepth++;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n if (isRef(value)) {\n traverse(value.value, depth, currentDepth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], depth, currentDepth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, currentDepth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, currentDepth, seen);\n }\n }\n return value;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getExposeProxy(currentRenderingInstance) || currentRenderingInstance.proxy;\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (!hook) {\n hook = mapCompatDirectiveHook(name, binding.dir, instance);\n }\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nconst leaveCbKey = Symbol(\"_leaveCb\");\nconst enterCbKey$1 = Symbol(\"_enterCb\");\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionPropsValidators = {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n};\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: BaseTransitionPropsValidators,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n let prevTransitionKey;\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n for (const c of children) {\n if (c.type !== Comment) {\n if (!!(process.env.NODE_ENV !== \"production\") && hasFound) {\n warn$1(\n \"<transition> can only be used on a single element or component. Use <transition-group> for lists.\"\n );\n break;\n }\n child = c;\n hasFound = true;\n if (!!!(process.env.NODE_ENV !== \"production\"))\n break;\n }\n }\n }\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n if (!!(process.env.NODE_ENV !== \"production\") && mode && mode !== \"in-out\" && mode !== \"out-in\" && mode !== \"default\") {\n warn$1(`invalid <transition> mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getKeepAliveChild(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n const enterHooks = resolveTransitionHooks(\n innerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(innerChild, enterHooks);\n const oldChild = instance.subTree;\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\n let transitionKeyChanged = false;\n const { getTransitionKey } = innerChild.type;\n if (getTransitionKey) {\n const key = getTransitionKey();\n if (prevTransitionKey === void 0) {\n prevTransitionKey = key;\n } else if (key !== prevTransitionKey) {\n prevTransitionKey = key;\n transitionKeyChanged = true;\n }\n }\n if (oldInnerChild && oldInnerChild.type !== Comment && (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\n const leavingHooks = resolveTransitionHooks(\n oldInnerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\") {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n if (instance.update.active !== false) {\n instance.effect.dirty = true;\n instance.update();\n }\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(\n state,\n oldInnerChild\n );\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el[leaveCbKey] = () => {\n earlyRemove();\n el[leaveCbKey] = void 0;\n delete enterHooks.delayedLeave;\n };\n enterHooks.delayedLeave = delayedLeave;\n };\n }\n }\n return child;\n };\n }\n};\n{\n BaseTransitionImpl.__isBuiltIn = true;\n}\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance) {\n const {\n appear,\n mode,\n persisted = false,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n onBeforeAppear,\n onAppear,\n onAfterAppear,\n onAppearCancelled\n } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook && callWithAsyncErrorHandling(\n hook,\n instance,\n 9,\n args\n );\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every((hook2) => hook2.length <= 1))\n done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el[leaveCbKey]) {\n el[leaveCbKey](\n true\n /* cancelled */\n );\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {\n leavingVNode.el[leaveCbKey]();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n const done = el[enterCbKey$1] = (cancelled) => {\n if (called)\n return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n } else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el[enterCbKey$1] = void 0;\n };\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove) {\n const key2 = String(vnode.key);\n if (el[enterCbKey$1]) {\n el[enterCbKey$1](\n true\n /* cancelled */\n );\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n const done = el[leaveCbKey] = (cancelled) => {\n if (called)\n return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n } else {\n callHook(onAfterLeave, [el]);\n }\n el[leaveCbKey] = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n return resolveTransitionHooks(vnode2, props, state, instance);\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getKeepAliveChild(vnode) {\n return isKeepAlive(vnode) ? (\n // #7121 ensure get the child component subtree in case\n // it's been replaced during HMR\n !!(process.env.NODE_ENV !== \"production\") && vnode.component ? vnode.component.subTree : vnode.children ? vnode.children[0] : void 0\n ) : vnode;\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128)\n keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8326: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const {\n loader,\n loadingComponent,\n errorComponent,\n delay = 200,\n timeout,\n // undefined = never times out\n suspensible = true,\n onError: userOnError\n } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n } else {\n throw err;\n }\n }).then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !comp) {\n warn$1(\n `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`\n );\n }\n if (comp && (comp.__esModule || comp[Symbol.toStringTag] === \"Module\")) {\n comp = comp.default;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n }));\n };\n return defineComponent({\n name: \"AsyncComponentWrapper\",\n __asyncLoader: load,\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(\n `Async component timed out after ${timeout}ms.`\n );\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load().then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n instance.parent.effect.dirty = true;\n queueJob(instance.parent.update);\n }\n }).catch((err) => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n } else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n } else if (loadingComponent && !delayed.value) {\n return createVNode(loadingComponent);\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, parent) {\n const { ref: ref2, props, children, ce } = parent.vnode;\n const vnode = createVNode(comp, props, children);\n vnode.ref = ref2;\n vnode.ce = ce;\n delete parent.vnode.ce;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const sharedContext = instance.ctx;\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = /* @__PURE__ */ new Map();\n const keys = /* @__PURE__ */ new Set();\n let current = null;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const {\n renderer: {\n p: patch,\n m: move,\n um: _unmount,\n o: { createElement }\n }\n } = sharedContext;\n const storageContainer = createElement(\"div\");\n sharedContext.activate = (vnode, container, anchor, namespace, optimized) => {\n const instance2 = vnode.component;\n move(vnode, container, anchor, 0, parentSuspense);\n patch(\n instance2.vnode,\n vnode,\n container,\n anchor,\n instance2,\n parentSuspense,\n namespace,\n vnode.slotScopeIds,\n optimized\n );\n queuePostRenderEffect(() => {\n instance2.isDeactivated = false;\n if (instance2.a) {\n invokeArrayFns(instance2.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance2 = vnode.component;\n move(vnode, storageContainer, null, 1, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance2.da) {\n invokeArrayFns(instance2.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n instance2.isDeactivated = true;\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n function unmount(vnode) {\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(vnode.type);\n if (name && (!filter || !filter(name))) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (!current || !isSameVNodeType(cached, current)) {\n unmount(cached);\n } else if (current) {\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n watch(\n () => [props.include, props.exclude],\n ([include, exclude]) => {\n include && pruneCache((name) => matches(include, name));\n exclude && pruneCache((name) => !matches(exclude, name));\n },\n // prune post-render after `current` has been updated\n { flush: \"post\", deep: true }\n );\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n if (pendingCacheKey != null) {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach((cached) => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type && cached.key === vnode.key) {\n resetShapeFlag(vnode);\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n const comp = vnode.type;\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n );\n const { include, exclude, max } = props;\n if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128) {\n rawVNode.ssContent = vnode;\n }\n }\n pendingCacheKey = key;\n if (cachedVNode) {\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n setTransitionHooks(vnode, vnode.transition);\n }\n vnode.shapeFlag |= 512;\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n vnode.shapeFlag |= 256;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\n{\n KeepAliveImpl.__isBuildIn = true;\n}\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n } else if (isString(pattern)) {\n return pattern.split(\",\").includes(name);\n } else if (isRegExp(pattern)) {\n return pattern.test(name);\n }\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n vnode.shapeFlag &= ~256;\n vnode.shapeFlag &= ~512;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n if (target.isUnmounted) {\n return;\n }\n pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, \"\"));\n warn$1(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => (\n // post-create lifecycle registrations are noops during SSR (except for serverPrefetch)\n (!isInSSRComponentSetup || lifecycle === \"sp\") && injectHook(lifecycle, (...args) => hook(...args), target)\n);\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\"bu\");\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\"bum\");\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\"sp\");\nconst onRenderTriggered = createHook(\n \"rtg\"\n);\nconst onRenderTracked = createHook(\n \"rtc\"\n);\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nfunction getCompatChildren(instance) {\n assertCompatEnabled(\"INSTANCE_CHILDREN\", instance);\n const root = instance.subTree;\n const children = [];\n if (root) {\n walk(root, children);\n }\n return children;\n}\nfunction walk(vnode, children) {\n if (vnode.component) {\n children.push(vnode.component.proxy);\n } else if (vnode.shapeFlag & 16) {\n const vnodes = vnode.children;\n for (let i = 0; i < vnodes.length; i++) {\n walk(vnodes[i], children);\n }\n }\n}\n\nfunction getCompatListeners(instance) {\n assertCompatEnabled(\"INSTANCE_LISTENERS\", instance);\n const listeners = {};\n const rawProps = instance.vnode.props;\n if (!rawProps) {\n return listeners;\n }\n for (const key in rawProps) {\n if (isOn(key)) {\n listeners[key[2].toLowerCase() + key.slice(3)] = rawProps[key];\n }\n }\n return listeners;\n}\n\nfunction convertLegacyRenderFn(instance) {\n const Component = instance.type;\n const render = Component.render;\n if (!render || render._rc || render._compatChecked || render._compatWrapped) {\n return;\n }\n if (render.length >= 2) {\n render._compatChecked = true;\n return;\n }\n if (checkCompatEnabled(\"RENDER_FUNCTION\", instance)) {\n const wrapped = Component.render = function compatRender() {\n return render.call(this, compatH);\n };\n wrapped._compatWrapped = true;\n }\n}\nfunction compatH(type, propsOrChildren, children) {\n if (!type) {\n type = Comment;\n }\n if (typeof type === \"string\") {\n const t = hyphenate(type);\n if (t === \"transition\" || t === \"transition-group\" || t === \"keep-alive\") {\n type = `__compat__${t}`;\n }\n type = resolveDynamicComponent(type);\n }\n const l = arguments.length;\n const is2ndArgArrayChildren = isArray(propsOrChildren);\n if (l === 2 || is2ndArgArrayChildren) {\n if (isObject(propsOrChildren) && !is2ndArgArrayChildren) {\n if (isVNode(propsOrChildren)) {\n return convertLegacySlots(createVNode(type, null, [propsOrChildren]));\n }\n return convertLegacySlots(\n convertLegacyDirectives(\n createVNode(type, convertLegacyProps(propsOrChildren, type)),\n propsOrChildren\n )\n );\n } else {\n return convertLegacySlots(createVNode(type, null, propsOrChildren));\n }\n } else {\n if (isVNode(children)) {\n children = [children];\n }\n return convertLegacySlots(\n convertLegacyDirectives(\n createVNode(type, convertLegacyProps(propsOrChildren, type), children),\n propsOrChildren\n )\n );\n }\n}\nconst skipLegacyRootLevelProps = /* @__PURE__ */ makeMap(\n \"staticStyle,staticClass,directives,model,hook\"\n);\nfunction convertLegacyProps(legacyProps, type) {\n if (!legacyProps) {\n return null;\n }\n const converted = {};\n for (const key in legacyProps) {\n if (key === \"attrs\" || key === \"domProps\" || key === \"props\") {\n extend(converted, legacyProps[key]);\n } else if (key === \"on\" || key === \"nativeOn\") {\n const listeners = legacyProps[key];\n for (const event in listeners) {\n let handlerKey = convertLegacyEventKey(event);\n if (key === \"nativeOn\")\n handlerKey += `Native`;\n const existing = converted[handlerKey];\n const incoming = listeners[event];\n if (existing !== incoming) {\n if (existing) {\n converted[handlerKey] = [].concat(existing, incoming);\n } else {\n converted[handlerKey] = incoming;\n }\n }\n }\n } else if (!skipLegacyRootLevelProps(key)) {\n converted[key] = legacyProps[key];\n }\n }\n if (legacyProps.staticClass) {\n converted.class = normalizeClass([legacyProps.staticClass, converted.class]);\n }\n if (legacyProps.staticStyle) {\n converted.style = normalizeStyle([legacyProps.staticStyle, converted.style]);\n }\n if (legacyProps.model && isObject(type)) {\n const { prop = \"value\", event = \"input\" } = type.model || {};\n converted[prop] = legacyProps.model.value;\n converted[compatModelEventPrefix + event] = legacyProps.model.callback;\n }\n return converted;\n}\nfunction convertLegacyEventKey(event) {\n if (event[0] === \"&\") {\n event = event.slice(1) + \"Passive\";\n }\n if (event[0] === \"~\") {\n event = event.slice(1) + \"Once\";\n }\n if (event[0] === \"!\") {\n event = event.slice(1) + \"Capture\";\n }\n return toHandlerKey(event);\n}\nfunction convertLegacyDirectives(vnode, props) {\n if (props && props.directives) {\n return withDirectives(\n vnode,\n props.directives.map(({ name, value, arg, modifiers }) => {\n return [\n resolveDirective(name),\n value,\n arg,\n modifiers\n ];\n })\n );\n }\n return vnode;\n}\nfunction convertLegacySlots(vnode) {\n const { props, children } = vnode;\n let slots;\n if (vnode.shapeFlag & 6 && isArray(children)) {\n slots = {};\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n const slotName = isVNode(child) && child.props && child.props.slot || \"default\";\n const slot = slots[slotName] || (slots[slotName] = []);\n if (isVNode(child) && child.type === \"template\") {\n slot.push(child.children);\n } else {\n slot.push(child);\n }\n }\n if (slots) {\n for (const key in slots) {\n const slotChildren = slots[key];\n slots[key] = () => slotChildren;\n slots[key]._ns = true;\n }\n }\n }\n const scopedSlots = props && props.scopedSlots;\n if (scopedSlots) {\n delete props.scopedSlots;\n if (slots) {\n extend(slots, scopedSlots);\n } else {\n slots = scopedSlots;\n }\n }\n if (slots) {\n normalizeChildren(vnode, slots);\n }\n return vnode;\n}\nfunction defineLegacyVNodeProperties(vnode) {\n if (isCompatEnabled(\n \"RENDER_FUNCTION\",\n currentRenderingInstance,\n true\n ) && isCompatEnabled(\n \"PRIVATE_APIS\",\n currentRenderingInstance,\n true\n )) {\n const context = currentRenderingInstance;\n const getInstance = () => vnode.component && vnode.component.proxy;\n let componentOptions;\n Object.defineProperties(vnode, {\n tag: { get: () => vnode.type },\n data: { get: () => vnode.props || {}, set: (p) => vnode.props = p },\n elm: { get: () => vnode.el },\n componentInstance: { get: getInstance },\n child: { get: getInstance },\n text: { get: () => isString(vnode.children) ? vnode.children : null },\n context: { get: () => context && context.proxy },\n componentOptions: {\n get: () => {\n if (vnode.shapeFlag & 4) {\n if (componentOptions) {\n return componentOptions;\n }\n return componentOptions = {\n Ctor: vnode.type,\n propsData: vnode.props,\n children: vnode.children\n };\n }\n }\n }\n });\n }\n}\n\nconst normalizedFunctionalComponentMap = /* @__PURE__ */ new WeakMap();\nconst legacySlotProxyHandlers = {\n get(target, key) {\n const slot = target[key];\n return slot && slot();\n }\n};\nfunction convertLegacyFunctionalComponent(comp) {\n if (normalizedFunctionalComponentMap.has(comp)) {\n return normalizedFunctionalComponentMap.get(comp);\n }\n const legacyFn = comp.render;\n const Func = (props, ctx) => {\n const instance = getCurrentInstance();\n const legacyCtx = {\n props,\n children: instance.vnode.children || [],\n data: instance.vnode.props || {},\n scopedSlots: ctx.slots,\n parent: instance.parent && instance.parent.proxy,\n slots() {\n return new Proxy(ctx.slots, legacySlotProxyHandlers);\n },\n get listeners() {\n return getCompatListeners(instance);\n },\n get injections() {\n if (comp.inject) {\n const injections = {};\n resolveInjections(comp.inject, injections);\n return injections;\n }\n return {};\n }\n };\n return legacyFn(compatH, legacyCtx);\n };\n Func.props = comp.props;\n Func.displayName = comp.name;\n Func.compatConfig = comp.compatConfig;\n Func.inheritAttrs = false;\n normalizedFunctionalComponentMap.set(comp, Func);\n return Func;\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n if (isArray(source) || isString(source)) {\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(source[i], i, void 0, cached && cached[i]);\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && !Number.isInteger(source)) {\n warn$1(`The v-for range expect an integer value but got ${source}.`);\n }\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res)\n res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) {\n if (name !== \"default\")\n props.name = name;\n return createVNode(\"slot\", props, fallback && fallback());\n }\n let slot = slots[name];\n if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n warn$1(\n `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const rendered = createBlock(\n Fragment,\n {\n key: props.key || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key || `_${name}`\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child))\n return true;\n if (child.type === Comment)\n return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn$1(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nfunction toObject(arr) {\n const res = {};\n for (let i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res;\n}\nfunction legacyBindObjectProps(data, _tag, value, _asProp, isSync) {\n if (value && isObject(value)) {\n if (isArray(value)) {\n value = toObject(value);\n }\n for (const key in value) {\n if (isReservedProp(key)) {\n data[key] = value[key];\n } else if (key === \"class\") {\n data.class = normalizeClass([data.class, value.class]);\n } else if (key === \"style\") {\n data.style = normalizeClass([data.style, value.style]);\n } else {\n const attrs = data.attrs || (data.attrs = {});\n const camelizedKey = camelize(key);\n const hyphenatedKey = hyphenate(key);\n if (!(camelizedKey in attrs) && !(hyphenatedKey in attrs)) {\n attrs[key] = value[key];\n if (isSync) {\n const on = data.on || (data.on = {});\n on[`update:${key}`] = function($event) {\n value[key] = $event;\n };\n }\n }\n }\n }\n }\n return data;\n}\nfunction legacyBindObjectListeners(props, listeners) {\n return mergeProps(props, toHandlers(listeners));\n}\nfunction legacyRenderSlot(instance, name, fallback, props, bindObject) {\n if (bindObject) {\n props = mergeProps(props, bindObject);\n }\n return renderSlot(instance.slots, name, props, fallback && (() => fallback));\n}\nfunction legacyresolveScopedSlots(fns, raw, hasDynamicKeys) {\n return createSlots(\n raw || { $stable: !hasDynamicKeys },\n mapKeyToName(fns)\n );\n}\nfunction mapKeyToName(slots) {\n for (let i = 0; i < slots.length; i++) {\n const fn = slots[i];\n if (fn) {\n if (isArray(fn)) {\n mapKeyToName(fn);\n } else {\n fn.name = fn.key || \"default\";\n }\n }\n }\n return slots;\n}\nconst staticCacheMap = /* @__PURE__ */ new WeakMap();\nfunction legacyRenderStatic(instance, index) {\n let cache = staticCacheMap.get(instance);\n if (!cache) {\n staticCacheMap.set(instance, cache = []);\n }\n if (cache[index]) {\n return cache[index];\n }\n const fn = instance.type.staticRenderFns[index];\n const ctx = instance.proxy;\n return cache[index] = fn.call(ctx, null, ctx);\n}\nfunction legacyCheckKeyCodes(instance, eventKeyCode, key, builtInKeyCode, eventKeyName, builtInKeyName) {\n const config = instance.appContext.config;\n const configKeyCodes = config.keyCodes || {};\n const mappedKeyCode = configKeyCodes[key] || builtInKeyCode;\n if (builtInKeyName && eventKeyName && !configKeyCodes[key]) {\n return isKeyNotMatch(builtInKeyName, eventKeyName);\n } else if (mappedKeyCode) {\n return isKeyNotMatch(mappedKeyCode, eventKeyCode);\n } else if (eventKeyName) {\n return hyphenate(eventKeyName) !== key;\n }\n}\nfunction isKeyNotMatch(expect, actual) {\n if (isArray(expect)) {\n return !expect.includes(actual);\n } else {\n return expect !== actual;\n }\n}\nfunction legacyMarkOnce(tree) {\n return tree;\n}\nfunction legacyBindDynamicKeys(props, values) {\n for (let i = 0; i < values.length; i += 2) {\n const key = values[i];\n if (typeof key === \"string\" && key) {\n props[values[i]] = values[i + 1];\n }\n }\n return props;\n}\nfunction legacyPrependModifier(value, symbol) {\n return typeof value === \"string\" ? symbol + value : value;\n}\n\nfunction installCompatInstanceProperties(map) {\n const set = (target, key, val) => {\n target[key] = val;\n return target[key];\n };\n const del = (target, key) => {\n delete target[key];\n };\n extend(map, {\n $set: (i) => {\n assertCompatEnabled(\"INSTANCE_SET\", i);\n return set;\n },\n $delete: (i) => {\n assertCompatEnabled(\"INSTANCE_DELETE\", i);\n return del;\n },\n $mount: (i) => {\n assertCompatEnabled(\n \"GLOBAL_MOUNT\",\n null\n );\n return i.ctx._compat_mount || NOOP;\n },\n $destroy: (i) => {\n assertCompatEnabled(\"INSTANCE_DESTROY\", i);\n return i.ctx._compat_destroy || NOOP;\n },\n // overrides existing accessor\n $slots: (i) => {\n if (isCompatEnabled(\"RENDER_FUNCTION\", i) && i.render && i.render._compatWrapped) {\n return new Proxy(i.slots, legacySlotProxyHandlers);\n }\n return !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots;\n },\n $scopedSlots: (i) => {\n assertCompatEnabled(\"INSTANCE_SCOPED_SLOTS\", i);\n const res = {};\n for (const key in i.slots) {\n const fn = i.slots[key];\n if (!fn._ns) {\n res[key] = fn;\n }\n }\n return res;\n },\n $on: (i) => on.bind(null, i),\n $once: (i) => once.bind(null, i),\n $off: (i) => off.bind(null, i),\n $children: getCompatChildren,\n $listeners: getCompatListeners\n });\n if (isCompatEnabled(\"PRIVATE_APIS\", null)) {\n extend(map, {\n // needed by many libs / render fns\n $vnode: (i) => i.vnode,\n // inject additional properties into $options for compat\n // e.g. vuex needs this.$options.parent\n $options: (i) => {\n const res = extend({}, resolveMergedOptions(i));\n res.parent = i.proxy.$parent;\n res.propsData = i.vnode.props;\n return res;\n },\n // some private properties that are likely accessed...\n _self: (i) => i.proxy,\n _uid: (i) => i.uid,\n _data: (i) => i.data,\n _isMounted: (i) => i.isMounted,\n _isDestroyed: (i) => i.isUnmounted,\n // v2 render helpers\n $createElement: () => compatH,\n _c: () => compatH,\n _o: () => legacyMarkOnce,\n _n: () => looseToNumber,\n _s: () => toDisplayString,\n _l: () => renderList,\n _t: (i) => legacyRenderSlot.bind(null, i),\n _q: () => looseEqual,\n _i: () => looseIndexOf,\n _m: (i) => legacyRenderStatic.bind(null, i),\n _f: () => resolveFilter$1,\n _k: (i) => legacyCheckKeyCodes.bind(null, i),\n _b: () => legacyBindObjectProps,\n _v: () => createTextVNode,\n _e: () => createCommentVNode,\n _u: () => legacyresolveScopedSlots,\n _g: () => legacyBindObjectListeners,\n _d: () => legacyBindDynamicKeys,\n _p: () => legacyPrependModifier\n });\n }\n}\n\nconst getPublicInstance = (i) => {\n if (!i)\n return null;\n if (isStatefulComponent(i))\n return getExposeProxy(i) || i.proxy;\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n i.effect.dirty = true;\n queueJob(i.update);\n }),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\n{\n installCompatInstanceProperties(publicPropertiesMap);\n}\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\n ) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance, \"get\", key);\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n const desc = Object.getOwnPropertyDescriptor(globalProperties, key);\n if (desc.get) {\n return desc.get.call(instance.proxy);\n } else {\n const val = globalProperties[key];\n return isFunction(val) ? Object.assign(val.bind(instance.proxy), val) : val;\n }\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`Cannot mutate <script setup> binding \"${key}\" from Options API.`);\n return false;\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n data[key] = value;\n return true;\n } else if (hasOwn(instance.props, key)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`Attempting to mutate prop \"${key}\". Props are readonly.`);\n return false;\n }\n if (key[0] === \"$\" && key.slice(1) in instance) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Attempting to mutate public property \"${key}\". Properties starting with $ are reserved and readonly.`\n );\n return false;\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && key in instance.appContext.config.globalProperties) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n value\n });\n } else {\n ctx[key] = value;\n }\n }\n return true;\n },\n has({\n _: { data, setupState, accessCache, ctx, appContext, propsOptions }\n }, key) {\n let normalizedProps;\n return !!accessCache[key] || data !== EMPTY_OBJ && hasOwn(data, key) || hasSetupBinding(setupState, key) || (normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key);\n },\n defineProperty(target, key, descriptor) {\n if (descriptor.get != null) {\n target._.accessCache[key] = 0;\n } else if (hasOwn(descriptor, \"value\")) {\n this.set(target, key, descriptor.value, null);\n }\n return Reflect.defineProperty(target, key, descriptor);\n }\n};\nif (!!(process.env.NODE_ENV !== \"production\") && true) {\n PublicInstanceProxyHandlers.ownKeys = (target) => {\n warn$1(\n `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.`\n );\n return Reflect.ownKeys(target);\n };\n}\nconst RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend(\n {},\n PublicInstanceProxyHandlers,\n {\n get(target, key) {\n if (key === Symbol.unscopables) {\n return;\n }\n return PublicInstanceProxyHandlers.get(target, key, target);\n },\n has(_, key) {\n const has = key[0] !== \"_\" && !isGloballyAllowed(key);\n if (!!(process.env.NODE_ENV !== \"production\") && !has && PublicInstanceProxyHandlers.has(_, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} should not start with _ which is a reserved prefix for Vue internals.`\n );\n }\n return has;\n }\n }\n);\nfunction createDevRenderContext(instance) {\n const target = {};\n Object.defineProperty(target, `_`, {\n configurable: true,\n enumerable: false,\n get: () => instance\n });\n Object.keys(publicPropertiesMap).forEach((key) => {\n Object.defineProperty(target, key, {\n configurable: true,\n enumerable: false,\n get: () => publicPropertiesMap[key](instance),\n // intercepted by the proxy so no need for implementation,\n // but needed to prevent set errors\n set: NOOP\n });\n });\n return target;\n}\nfunction exposePropsOnRenderContext(instance) {\n const {\n ctx,\n propsOptions: [propsOptions]\n } = instance;\n if (propsOptions) {\n Object.keys(propsOptions).forEach((key) => {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => instance.props[key],\n set: NOOP\n });\n });\n }\n}\nfunction exposeSetupStateOnRenderContext(instance) {\n const { ctx, setupState } = instance;\n Object.keys(toRaw(setupState)).forEach((key) => {\n if (!setupState.__isScriptSetup) {\n if (isReservedPrefix(key[0])) {\n warn$1(\n `setup() return property ${JSON.stringify(\n key\n )} should not start with \"$\" or \"_\" which are reserved prefixes for Vue internals.`\n );\n return;\n }\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => setupState[key],\n set: NOOP\n });\n }\n });\n}\n\nfunction deepMergeData(to, from) {\n for (const key in from) {\n const toVal = to[key];\n const fromVal = from[key];\n if (key in to && isPlainObject(toVal) && isPlainObject(fromVal)) {\n !!(process.env.NODE_ENV !== \"production\") && warnDeprecation(\"OPTIONS_DATA_MERGE\", null, key);\n deepMergeData(toVal, fromVal);\n } else {\n to[key] = fromVal;\n }\n }\n return to;\n}\n\nconst warnRuntimeUsage = (method) => warn$1(\n `${method}() is a compiler-hint helper that is only usable inside <script setup> of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.`\n);\nfunction defineProps() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineProps`);\n }\n return null;\n}\nfunction defineEmits() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineEmits`);\n }\n return null;\n}\nfunction defineExpose(exposed) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineExpose`);\n }\n}\nfunction defineOptions(options) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineOptions`);\n }\n}\nfunction defineSlots() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineSlots`);\n }\n return null;\n}\nfunction defineModel() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(\"defineModel\");\n }\n}\nfunction withDefaults(props, defaults) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`withDefaults`);\n }\n return null;\n}\nfunction useSlots() {\n return getContext().slots;\n}\nfunction useAttrs() {\n return getContext().attrs;\n}\nfunction getContext() {\n const i = getCurrentInstance();\n if (!!(process.env.NODE_ENV !== \"production\") && !i) {\n warn$1(`useContext() called without active instance.`);\n }\n return i.setupContext || (i.setupContext = createSetupContext(i));\n}\nfunction normalizePropsOrEmits(props) {\n return isArray(props) ? props.reduce(\n (normalized, p) => (normalized[p] = null, normalized),\n {}\n ) : props;\n}\nfunction mergeDefaults(raw, defaults) {\n const props = normalizePropsOrEmits(raw);\n for (const key in defaults) {\n if (key.startsWith(\"__skip\"))\n continue;\n let opt = props[key];\n if (opt) {\n if (isArray(opt) || isFunction(opt)) {\n opt = props[key] = { type: opt, default: defaults[key] };\n } else {\n opt.default = defaults[key];\n }\n } else if (opt === null) {\n opt = props[key] = { default: defaults[key] };\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`props default key \"${key}\" has no corresponding declaration.`);\n }\n if (opt && defaults[`__skip_${key}`]) {\n opt.skipFactory = true;\n }\n }\n return props;\n}\nfunction mergeModels(a, b) {\n if (!a || !b)\n return a || b;\n if (isArray(a) && isArray(b))\n return a.concat(b);\n return extend({}, normalizePropsOrEmits(a), normalizePropsOrEmits(b));\n}\nfunction createPropsRestProxy(props, excludedKeys) {\n const ret = {};\n for (const key in props) {\n if (!excludedKeys.includes(key)) {\n Object.defineProperty(ret, key, {\n enumerable: true,\n get: () => props[key]\n });\n }\n }\n return ret;\n}\nfunction withAsyncContext(getAwaitable) {\n const ctx = getCurrentInstance();\n if (!!(process.env.NODE_ENV !== \"production\") && !ctx) {\n warn$1(\n `withAsyncContext called without active current instance. This is likely a bug.`\n );\n }\n let awaitable = getAwaitable();\n unsetCurrentInstance();\n if (isPromise(awaitable)) {\n awaitable = awaitable.catch((e) => {\n setCurrentInstance(ctx);\n throw e;\n });\n }\n return [awaitable, () => setCurrentInstance(ctx)];\n}\n\nfunction createDuplicateChecker() {\n const cache = /* @__PURE__ */ Object.create(null);\n return (type, key) => {\n if (cache[key]) {\n warn$1(`${type} property \"${key}\" is already defined in ${cache[key]}.`);\n } else {\n cache[key] = type;\n }\n };\n}\nlet shouldCacheAccess = true;\nfunction applyOptions(instance) {\n const options = resolveMergedOptions(instance);\n const publicThis = instance.proxy;\n const ctx = instance.ctx;\n shouldCacheAccess = false;\n if (options.beforeCreate) {\n callHook$1(options.beforeCreate, instance, \"bc\");\n }\n const {\n // state\n data: dataOptions,\n computed: computedOptions,\n methods,\n watch: watchOptions,\n provide: provideOptions,\n inject: injectOptions,\n // lifecycle\n created,\n beforeMount,\n mounted,\n beforeUpdate,\n updated,\n activated,\n deactivated,\n beforeDestroy,\n beforeUnmount,\n destroyed,\n unmounted,\n render,\n renderTracked,\n renderTriggered,\n errorCaptured,\n serverPrefetch,\n // public API\n expose,\n inheritAttrs,\n // assets\n components,\n directives,\n filters\n } = options;\n const checkDuplicateProperties = !!(process.env.NODE_ENV !== \"production\") ? createDuplicateChecker() : null;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const [propsOptions] = instance.propsOptions;\n if (propsOptions) {\n for (const key in propsOptions) {\n checkDuplicateProperties(\"Props\" /* PROPS */, key);\n }\n }\n }\n if (injectOptions) {\n resolveInjections(injectOptions, ctx, checkDuplicateProperties);\n }\n if (methods) {\n for (const key in methods) {\n const methodHandler = methods[key];\n if (isFunction(methodHandler)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n Object.defineProperty(ctx, key, {\n value: methodHandler.bind(publicThis),\n configurable: true,\n enumerable: true,\n writable: true\n });\n } else {\n ctx[key] = methodHandler.bind(publicThis);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Methods\" /* METHODS */, key);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Method \"${key}\" has type \"${typeof methodHandler}\" in the component definition. Did you reference the function correctly?`\n );\n }\n }\n }\n if (dataOptions) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(dataOptions)) {\n warn$1(\n `The data option must be a function. Plain object usage is no longer supported.`\n );\n }\n const data = dataOptions.call(publicThis, publicThis);\n if (!!(process.env.NODE_ENV !== \"production\") && isPromise(data)) {\n warn$1(\n `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.`\n );\n }\n if (!isObject(data)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`data() should return an object.`);\n } else {\n instance.data = reactive(data);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (const key in data) {\n checkDuplicateProperties(\"Data\" /* DATA */, key);\n if (!isReservedPrefix(key[0])) {\n Object.defineProperty(ctx, key, {\n configurable: true,\n enumerable: true,\n get: () => data[key],\n set: NOOP\n });\n }\n }\n }\n }\n }\n shouldCacheAccess = true;\n if (computedOptions) {\n for (const key in computedOptions) {\n const opt = computedOptions[key];\n const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;\n if (!!(process.env.NODE_ENV !== \"production\") && get === NOOP) {\n warn$1(`Computed property \"${key}\" has no getter.`);\n }\n const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : !!(process.env.NODE_ENV !== \"production\") ? () => {\n warn$1(\n `Write operation failed: computed property \"${key}\" is readonly.`\n );\n } : NOOP;\n const c = computed({\n get,\n set\n });\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => c.value,\n set: (v) => c.value = v\n });\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Computed\" /* COMPUTED */, key);\n }\n }\n }\n if (watchOptions) {\n for (const key in watchOptions) {\n createWatcher(watchOptions[key], ctx, publicThis, key);\n }\n }\n if (provideOptions) {\n const provides = isFunction(provideOptions) ? provideOptions.call(publicThis) : provideOptions;\n Reflect.ownKeys(provides).forEach((key) => {\n provide(key, provides[key]);\n });\n }\n if (created) {\n callHook$1(created, instance, \"c\");\n }\n function registerLifecycleHook(register, hook) {\n if (isArray(hook)) {\n hook.forEach((_hook) => register(_hook.bind(publicThis)));\n } else if (hook) {\n register(hook.bind(publicThis));\n }\n }\n registerLifecycleHook(onBeforeMount, beforeMount);\n registerLifecycleHook(onMounted, mounted);\n registerLifecycleHook(onBeforeUpdate, beforeUpdate);\n registerLifecycleHook(onUpdated, updated);\n registerLifecycleHook(onActivated, activated);\n registerLifecycleHook(onDeactivated, deactivated);\n registerLifecycleHook(onErrorCaptured, errorCaptured);\n registerLifecycleHook(onRenderTracked, renderTracked);\n registerLifecycleHook(onRenderTriggered, renderTriggered);\n registerLifecycleHook(onBeforeUnmount, beforeUnmount);\n registerLifecycleHook(onUnmounted, unmounted);\n registerLifecycleHook(onServerPrefetch, serverPrefetch);\n {\n if (beforeDestroy && softAssertCompatEnabled(\"OPTIONS_BEFORE_DESTROY\", instance)) {\n registerLifecycleHook(onBeforeUnmount, beforeDestroy);\n }\n if (destroyed && softAssertCompatEnabled(\"OPTIONS_DESTROYED\", instance)) {\n registerLifecycleHook(onUnmounted, destroyed);\n }\n }\n if (isArray(expose)) {\n if (expose.length) {\n const exposed = instance.exposed || (instance.exposed = {});\n expose.forEach((key) => {\n Object.defineProperty(exposed, key, {\n get: () => publicThis[key],\n set: (val) => publicThis[key] = val\n });\n });\n } else if (!instance.exposed) {\n instance.exposed = {};\n }\n }\n if (render && instance.render === NOOP) {\n instance.render = render;\n }\n if (inheritAttrs != null) {\n instance.inheritAttrs = inheritAttrs;\n }\n if (components)\n instance.components = components;\n if (directives)\n instance.directives = directives;\n if (filters && isCompatEnabled(\"FILTERS\", instance)) {\n instance.filters = filters;\n }\n}\nfunction resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP) {\n if (isArray(injectOptions)) {\n injectOptions = normalizeInject(injectOptions);\n }\n for (const key in injectOptions) {\n const opt = injectOptions[key];\n let injected;\n if (isObject(opt)) {\n if (\"default\" in opt) {\n injected = inject(\n opt.from || key,\n opt.default,\n true\n );\n } else {\n injected = inject(opt.from || key);\n }\n } else {\n injected = inject(opt);\n }\n if (isRef(injected)) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => injected.value,\n set: (v) => injected.value = v\n });\n } else {\n ctx[key] = injected;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Inject\" /* INJECT */, key);\n }\n }\n}\nfunction callHook$1(hook, instance, type) {\n callWithAsyncErrorHandling(\n isArray(hook) ? hook.map((h) => h.bind(instance.proxy)) : hook.bind(instance.proxy),\n instance,\n type\n );\n}\nfunction createWatcher(raw, ctx, publicThis, key) {\n const getter = key.includes(\".\") ? createPathGetter(publicThis, key) : () => publicThis[key];\n if (isString(raw)) {\n const handler = ctx[raw];\n if (isFunction(handler)) {\n watch(getter, handler);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch handler specified by key \"${raw}\"`, handler);\n }\n } else if (isFunction(raw)) {\n watch(getter, raw.bind(publicThis));\n } else if (isObject(raw)) {\n if (isArray(raw)) {\n raw.forEach((r) => createWatcher(r, ctx, publicThis, key));\n } else {\n const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];\n if (isFunction(handler)) {\n watch(getter, handler, raw);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch handler specified by key \"${raw.handler}\"`, handler);\n }\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch option: \"${key}\"`, raw);\n }\n}\nfunction resolveMergedOptions(instance) {\n const base = instance.type;\n const { mixins, extends: extendsOptions } = base;\n const {\n mixins: globalMixins,\n optionsCache: cache,\n config: { optionMergeStrategies }\n } = instance.appContext;\n const cached = cache.get(base);\n let resolved;\n if (cached) {\n resolved = cached;\n } else if (!globalMixins.length && !mixins && !extendsOptions) {\n if (isCompatEnabled(\"PRIVATE_APIS\", instance)) {\n resolved = extend({}, base);\n resolved.parent = instance.parent && instance.parent.proxy;\n resolved.propsData = instance.vnode.props;\n } else {\n resolved = base;\n }\n } else {\n resolved = {};\n if (globalMixins.length) {\n globalMixins.forEach(\n (m) => mergeOptions(resolved, m, optionMergeStrategies, true)\n );\n }\n mergeOptions(resolved, base, optionMergeStrategies);\n }\n if (isObject(base)) {\n cache.set(base, resolved);\n }\n return resolved;\n}\nfunction mergeOptions(to, from, strats, asMixin = false) {\n if (isFunction(from)) {\n from = from.options;\n }\n const { mixins, extends: extendsOptions } = from;\n if (extendsOptions) {\n mergeOptions(to, extendsOptions, strats, true);\n }\n if (mixins) {\n mixins.forEach(\n (m) => mergeOptions(to, m, strats, true)\n );\n }\n for (const key in from) {\n if (asMixin && key === \"expose\") {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `\"expose\" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.`\n );\n } else {\n const strat = internalOptionMergeStrats[key] || strats && strats[key];\n to[key] = strat ? strat(to[key], from[key]) : from[key];\n }\n }\n return to;\n}\nconst internalOptionMergeStrats = {\n data: mergeDataFn,\n props: mergeEmitsOrPropsOptions,\n emits: mergeEmitsOrPropsOptions,\n // objects\n methods: mergeObjectOptions,\n computed: mergeObjectOptions,\n // lifecycle\n beforeCreate: mergeAsArray,\n created: mergeAsArray,\n beforeMount: mergeAsArray,\n mounted: mergeAsArray,\n beforeUpdate: mergeAsArray,\n updated: mergeAsArray,\n beforeDestroy: mergeAsArray,\n beforeUnmount: mergeAsArray,\n destroyed: mergeAsArray,\n unmounted: mergeAsArray,\n activated: mergeAsArray,\n deactivated: mergeAsArray,\n errorCaptured: mergeAsArray,\n serverPrefetch: mergeAsArray,\n // assets\n components: mergeObjectOptions,\n directives: mergeObjectOptions,\n // watch\n watch: mergeWatchOptions,\n // provide / inject\n provide: mergeDataFn,\n inject: mergeInject\n};\n{\n internalOptionMergeStrats.filters = mergeObjectOptions;\n}\nfunction mergeDataFn(to, from) {\n if (!from) {\n return to;\n }\n if (!to) {\n return from;\n }\n return function mergedDataFn() {\n return (isCompatEnabled(\"OPTIONS_DATA_MERGE\", null) ? deepMergeData : extend)(\n isFunction(to) ? to.call(this, this) : to,\n isFunction(from) ? from.call(this, this) : from\n );\n };\n}\nfunction mergeInject(to, from) {\n return mergeObjectOptions(normalizeInject(to), normalizeInject(from));\n}\nfunction normalizeInject(raw) {\n if (isArray(raw)) {\n const res = {};\n for (let i = 0; i < raw.length; i++) {\n res[raw[i]] = raw[i];\n }\n return res;\n }\n return raw;\n}\nfunction mergeAsArray(to, from) {\n return to ? [...new Set([].concat(to, from))] : from;\n}\nfunction mergeObjectOptions(to, from) {\n return to ? extend(/* @__PURE__ */ Object.create(null), to, from) : from;\n}\nfunction mergeEmitsOrPropsOptions(to, from) {\n if (to) {\n if (isArray(to) && isArray(from)) {\n return [.../* @__PURE__ */ new Set([...to, ...from])];\n }\n return extend(\n /* @__PURE__ */ Object.create(null),\n normalizePropsOrEmits(to),\n normalizePropsOrEmits(from != null ? from : {})\n );\n } else {\n return from;\n }\n}\nfunction mergeWatchOptions(to, from) {\n if (!to)\n return from;\n if (!from)\n return to;\n const merged = extend(/* @__PURE__ */ Object.create(null), to);\n for (const key in from) {\n merged[key] = mergeAsArray(to[key], from[key]);\n }\n return merged;\n}\n\nfunction installLegacyConfigWarnings(config) {\n const legacyConfigOptions = {\n silent: \"CONFIG_SILENT\",\n devtools: \"CONFIG_DEVTOOLS\",\n ignoredElements: \"CONFIG_IGNORED_ELEMENTS\",\n keyCodes: \"CONFIG_KEY_CODES\",\n productionTip: \"CONFIG_PRODUCTION_TIP\"\n };\n Object.keys(legacyConfigOptions).forEach((key) => {\n let val = config[key];\n Object.defineProperty(config, key, {\n enumerable: true,\n get() {\n return val;\n },\n set(newVal) {\n if (!isCopyingConfig) {\n warnDeprecation(legacyConfigOptions[key], null);\n }\n val = newVal;\n }\n });\n });\n}\nfunction installLegacyOptionMergeStrats(config) {\n config.optionMergeStrategies = new Proxy({}, {\n get(target, key) {\n if (key in target) {\n return target[key];\n }\n if (key in internalOptionMergeStrats && softAssertCompatEnabled(\n \"CONFIG_OPTION_MERGE_STRATS\",\n null\n )) {\n return internalOptionMergeStrats[key];\n }\n }\n });\n}\n\nlet isCopyingConfig = false;\nlet singletonApp;\nlet singletonCtor;\nfunction createCompatVue$1(createApp, createSingletonApp) {\n singletonApp = createSingletonApp({});\n const Vue = singletonCtor = function Vue2(options = {}) {\n return createCompatApp(options, Vue2);\n };\n function createCompatApp(options = {}, Ctor) {\n assertCompatEnabled(\"GLOBAL_MOUNT\", null);\n const { data } = options;\n if (data && !isFunction(data) && softAssertCompatEnabled(\"OPTIONS_DATA_FN\", null)) {\n options.data = () => data;\n }\n const app = createApp(options);\n if (Ctor !== Vue) {\n applySingletonPrototype(app, Ctor);\n }\n const vm = app._createRoot(options);\n if (options.el) {\n return vm.$mount(options.el);\n } else {\n return vm;\n }\n }\n Vue.version = `2.6.14-compat:${\"3.4.15\"}`;\n Vue.config = singletonApp.config;\n Vue.use = (p, ...options) => {\n if (p && isFunction(p.install)) {\n p.install(Vue, ...options);\n } else if (isFunction(p)) {\n p(Vue, ...options);\n }\n return Vue;\n };\n Vue.mixin = (m) => {\n singletonApp.mixin(m);\n return Vue;\n };\n Vue.component = (name, comp) => {\n if (comp) {\n singletonApp.component(name, comp);\n return Vue;\n } else {\n return singletonApp.component(name);\n }\n };\n Vue.directive = (name, dir) => {\n if (dir) {\n singletonApp.directive(name, dir);\n return Vue;\n } else {\n return singletonApp.directive(name);\n }\n };\n Vue.options = { _base: Vue };\n let cid = 1;\n Vue.cid = cid;\n Vue.nextTick = nextTick;\n const extendCache = /* @__PURE__ */ new WeakMap();\n function extendCtor(extendOptions = {}) {\n assertCompatEnabled(\"GLOBAL_EXTEND\", null);\n if (isFunction(extendOptions)) {\n extendOptions = extendOptions.options;\n }\n if (extendCache.has(extendOptions)) {\n return extendCache.get(extendOptions);\n }\n const Super = this;\n function SubVue(inlineOptions) {\n if (!inlineOptions) {\n return createCompatApp(SubVue.options, SubVue);\n } else {\n return createCompatApp(\n mergeOptions(\n extend({}, SubVue.options),\n inlineOptions,\n internalOptionMergeStrats\n ),\n SubVue\n );\n }\n }\n SubVue.super = Super;\n SubVue.prototype = Object.create(Vue.prototype);\n SubVue.prototype.constructor = SubVue;\n const mergeBase = {};\n for (const key in Super.options) {\n const superValue = Super.options[key];\n mergeBase[key] = isArray(superValue) ? superValue.slice() : isObject(superValue) ? extend(/* @__PURE__ */ Object.create(null), superValue) : superValue;\n }\n SubVue.options = mergeOptions(\n mergeBase,\n extendOptions,\n internalOptionMergeStrats\n );\n SubVue.options._base = SubVue;\n SubVue.extend = extendCtor.bind(SubVue);\n SubVue.mixin = Super.mixin;\n SubVue.use = Super.use;\n SubVue.cid = ++cid;\n extendCache.set(extendOptions, SubVue);\n return SubVue;\n }\n Vue.extend = extendCtor.bind(Vue);\n Vue.set = (target, key, value) => {\n assertCompatEnabled(\"GLOBAL_SET\", null);\n target[key] = value;\n };\n Vue.delete = (target, key) => {\n assertCompatEnabled(\"GLOBAL_DELETE\", null);\n delete target[key];\n };\n Vue.observable = (target) => {\n assertCompatEnabled(\"GLOBAL_OBSERVABLE\", null);\n return reactive(target);\n };\n Vue.filter = (name, filter) => {\n if (filter) {\n singletonApp.filter(name, filter);\n return Vue;\n } else {\n return singletonApp.filter(name);\n }\n };\n const util = {\n warn: !!(process.env.NODE_ENV !== \"production\") ? warn$1 : NOOP,\n extend,\n mergeOptions: (parent, child, vm) => mergeOptions(\n parent,\n child,\n vm ? void 0 : internalOptionMergeStrats\n ),\n defineReactive\n };\n Object.defineProperty(Vue, \"util\", {\n get() {\n assertCompatEnabled(\"GLOBAL_PRIVATE_UTIL\", null);\n return util;\n }\n });\n Vue.configureCompat = configureCompat$1;\n return Vue;\n}\nfunction installAppCompatProperties(app, context, render) {\n installFilterMethod(app, context);\n installLegacyOptionMergeStrats(app.config);\n if (!singletonApp) {\n return;\n }\n installCompatMount(app, context, render);\n installLegacyAPIs(app);\n applySingletonAppMutations(app);\n if (!!(process.env.NODE_ENV !== \"production\"))\n installLegacyConfigWarnings(app.config);\n}\nfunction installFilterMethod(app, context) {\n context.filters = {};\n app.filter = (name, filter) => {\n assertCompatEnabled(\"FILTERS\", null);\n if (!filter) {\n return context.filters[name];\n }\n if (!!(process.env.NODE_ENV !== \"production\") && context.filters[name]) {\n warn$1(`Filter \"${name}\" has already been registered.`);\n }\n context.filters[name] = filter;\n return app;\n };\n}\nfunction installLegacyAPIs(app) {\n Object.defineProperties(app, {\n // so that app.use() can work with legacy plugins that extend prototypes\n prototype: {\n get() {\n !!(process.env.NODE_ENV !== \"production\") && warnDeprecation(\"GLOBAL_PROTOTYPE\", null);\n return app.config.globalProperties;\n }\n },\n nextTick: { value: nextTick },\n extend: { value: singletonCtor.extend },\n set: { value: singletonCtor.set },\n delete: { value: singletonCtor.delete },\n observable: { value: singletonCtor.observable },\n util: {\n get() {\n return singletonCtor.util;\n }\n }\n });\n}\nfunction applySingletonAppMutations(app) {\n app._context.mixins = [...singletonApp._context.mixins];\n [\"components\", \"directives\", \"filters\"].forEach((key) => {\n app._context[key] = Object.create(singletonApp._context[key]);\n });\n isCopyingConfig = true;\n for (const key in singletonApp.config) {\n if (key === \"isNativeTag\")\n continue;\n if (isRuntimeOnly() && (key === \"isCustomElement\" || key === \"compilerOptions\")) {\n continue;\n }\n const val = singletonApp.config[key];\n app.config[key] = isObject(val) ? Object.create(val) : val;\n if (key === \"ignoredElements\" && isCompatEnabled(\"CONFIG_IGNORED_ELEMENTS\", null) && !isRuntimeOnly() && isArray(val)) {\n app.config.compilerOptions.isCustomElement = (tag) => {\n return val.some((v) => isString(v) ? v === tag : v.test(tag));\n };\n }\n }\n isCopyingConfig = false;\n applySingletonPrototype(app, singletonCtor);\n}\nfunction applySingletonPrototype(app, Ctor) {\n const enabled = isCompatEnabled(\"GLOBAL_PROTOTYPE\", null);\n if (enabled) {\n app.config.globalProperties = Object.create(Ctor.prototype);\n }\n let hasPrototypeAugmentations = false;\n const descriptors = Object.getOwnPropertyDescriptors(Ctor.prototype);\n for (const key in descriptors) {\n if (key !== \"constructor\") {\n hasPrototypeAugmentations = true;\n if (enabled) {\n Object.defineProperty(\n app.config.globalProperties,\n key,\n descriptors[key]\n );\n }\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && hasPrototypeAugmentations) {\n warnDeprecation(\"GLOBAL_PROTOTYPE\", null);\n }\n}\nfunction installCompatMount(app, context, render) {\n let isMounted = false;\n app._createRoot = (options) => {\n const component = app._component;\n const vnode = createVNode(component, options.propsData || null);\n vnode.appContext = context;\n const hasNoRender = !isFunction(component) && !component.render && !component.template;\n const emptyRender = () => {\n };\n const instance = createComponentInstance(vnode, null, null);\n if (hasNoRender) {\n instance.render = emptyRender;\n }\n setupComponent(instance);\n vnode.component = instance;\n vnode.isCompatRoot = true;\n instance.ctx._compat_mount = (selectorOrEl) => {\n if (isMounted) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`Root instance is already mounted.`);\n return;\n }\n let container;\n if (typeof selectorOrEl === \"string\") {\n const result = document.querySelector(selectorOrEl);\n if (!result) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Failed to mount root instance: selector \"${selectorOrEl}\" returned null.`\n );\n return;\n }\n container = result;\n } else {\n container = selectorOrEl || document.createElement(\"div\");\n }\n let namespace;\n if (container instanceof SVGElement)\n namespace = \"svg\";\n else if (typeof MathMLElement === \"function\" && container instanceof MathMLElement)\n namespace = \"mathml\";\n if (!!(process.env.NODE_ENV !== \"production\")) {\n context.reload = () => {\n const cloned = cloneVNode(vnode);\n cloned.component = null;\n render(cloned, container, namespace);\n };\n }\n if (hasNoRender && instance.render === emptyRender) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (let i = 0; i < container.attributes.length; i++) {\n const attr = container.attributes[i];\n if (attr.name !== \"v-cloak\" && /^(v-|:|@)/.test(attr.name)) {\n warnDeprecation(\"GLOBAL_MOUNT_CONTAINER\", null);\n break;\n }\n }\n }\n instance.render = null;\n component.template = container.innerHTML;\n finishComponentSetup(\n instance,\n false,\n true\n /* skip options */\n );\n }\n container.innerHTML = \"\";\n render(vnode, container, namespace);\n if (container instanceof Element) {\n container.removeAttribute(\"v-cloak\");\n container.setAttribute(\"data-v-app\", \"\");\n }\n isMounted = true;\n app._container = container;\n container.__vue_app__ = app;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsInitApp(app, version);\n }\n return instance.proxy;\n };\n instance.ctx._compat_destroy = () => {\n if (isMounted) {\n render(null, app._container);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsUnmountApp(app);\n }\n delete app._container.__vue_app__;\n } else {\n const { bum, scope, um } = instance;\n if (bum) {\n invokeArrayFns(bum);\n }\n if (isCompatEnabled(\"INSTANCE_EVENT_HOOKS\", instance)) {\n instance.emit(\"hook:beforeDestroy\");\n }\n if (scope) {\n scope.stop();\n }\n if (um) {\n invokeArrayFns(um);\n }\n if (isCompatEnabled(\"INSTANCE_EVENT_HOOKS\", instance)) {\n instance.emit(\"hook:destroyed\");\n }\n }\n };\n return instance.proxy;\n };\n}\nconst methodsToPatch = [\n \"push\",\n \"pop\",\n \"shift\",\n \"unshift\",\n \"splice\",\n \"sort\",\n \"reverse\"\n];\nconst patched = /* @__PURE__ */ new WeakSet();\nfunction defineReactive(obj, key, val) {\n if (isObject(val) && !isReactive(val) && !patched.has(val)) {\n const reactiveVal = reactive(val);\n if (isArray(val)) {\n methodsToPatch.forEach((m) => {\n val[m] = (...args) => {\n Array.prototype[m].call(reactiveVal, ...args);\n };\n });\n } else {\n Object.keys(val).forEach((key2) => {\n try {\n defineReactiveSimple(val, key2, val[key2]);\n } catch (e) {\n }\n });\n }\n }\n const i = obj.$;\n if (i && obj === i.proxy) {\n defineReactiveSimple(i.ctx, key, val);\n i.accessCache = /* @__PURE__ */ Object.create(null);\n } else if (isReactive(obj)) {\n obj[key] = val;\n } else {\n defineReactiveSimple(obj, key, val);\n }\n}\nfunction defineReactiveSimple(obj, key, val) {\n val = isObject(val) ? reactive(val) : val;\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get() {\n track(obj, \"get\", key);\n return val;\n },\n set(newVal) {\n val = isObject(newVal) ? reactive(newVal) : newVal;\n trigger(obj, \"set\", key, newVal);\n }\n });\n}\n\nfunction createAppContext() {\n return {\n app: null,\n config: {\n isNativeTag: NO,\n performance: false,\n globalProperties: {},\n optionMergeStrategies: {},\n errorHandler: void 0,\n warnHandler: void 0,\n compilerOptions: {}\n },\n mixins: [],\n components: {},\n directives: {},\n provides: /* @__PURE__ */ Object.create(null),\n optionsCache: /* @__PURE__ */ new WeakMap(),\n propsCache: /* @__PURE__ */ new WeakMap(),\n emitsCache: /* @__PURE__ */ new WeakMap()\n };\n}\nlet uid$1 = 0;\nfunction createAppAPI(render, hydrate) {\n return function createApp(rootComponent, rootProps = null) {\n if (!isFunction(rootComponent)) {\n rootComponent = extend({}, rootComponent);\n }\n if (rootProps != null && !isObject(rootProps)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`root props passed to app.mount() must be an object.`);\n rootProps = null;\n }\n const context = createAppContext();\n const installedPlugins = /* @__PURE__ */ new WeakSet();\n let isMounted = false;\n const app = context.app = {\n _uid: uid$1++,\n _component: rootComponent,\n _props: rootProps,\n _container: null,\n _context: context,\n _instance: null,\n version,\n get config() {\n return context.config;\n },\n set config(v) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `app.config cannot be replaced. Modify individual options instead.`\n );\n }\n },\n use(plugin, ...options) {\n if (installedPlugins.has(plugin)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`Plugin has already been applied to target app.`);\n } else if (plugin && isFunction(plugin.install)) {\n installedPlugins.add(plugin);\n plugin.install(app, ...options);\n } else if (isFunction(plugin)) {\n installedPlugins.add(plugin);\n plugin(app, ...options);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `A plugin must either be a function or an object with an \"install\" function.`\n );\n }\n return app;\n },\n mixin(mixin) {\n if (__VUE_OPTIONS_API__) {\n if (!context.mixins.includes(mixin)) {\n context.mixins.push(mixin);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Mixin has already been applied to target app\" + (mixin.name ? `: ${mixin.name}` : \"\")\n );\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Mixins are only available in builds supporting Options API\");\n }\n return app;\n },\n component(name, component) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateComponentName(name, context.config);\n }\n if (!component) {\n return context.components[name];\n }\n if (!!(process.env.NODE_ENV !== \"production\") && context.components[name]) {\n warn$1(`Component \"${name}\" has already been registered in target app.`);\n }\n context.components[name] = component;\n return app;\n },\n directive(name, directive) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateDirectiveName(name);\n }\n if (!directive) {\n return context.directives[name];\n }\n if (!!(process.env.NODE_ENV !== \"production\") && context.directives[name]) {\n warn$1(`Directive \"${name}\" has already been registered in target app.`);\n }\n context.directives[name] = directive;\n return app;\n },\n mount(rootContainer, isHydrate, namespace) {\n if (!isMounted) {\n if (!!(process.env.NODE_ENV !== \"production\") && rootContainer.__vue_app__) {\n warn$1(\n `There is already an app instance mounted on the host container.\n If you want to mount another app on the same host container, you need to unmount the previous app by calling \\`app.unmount()\\` first.`\n );\n }\n const vnode = createVNode(rootComponent, rootProps);\n vnode.appContext = context;\n if (namespace === true) {\n namespace = \"svg\";\n } else if (namespace === false) {\n namespace = void 0;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n context.reload = () => {\n render(\n cloneVNode(vnode),\n rootContainer,\n namespace\n );\n };\n }\n if (isHydrate && hydrate) {\n hydrate(vnode, rootContainer);\n } else {\n render(vnode, rootContainer, namespace);\n }\n isMounted = true;\n app._container = rootContainer;\n rootContainer.__vue_app__ = app;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n app._instance = vnode.component;\n devtoolsInitApp(app, version);\n }\n return getExposeProxy(vnode.component) || vnode.component.proxy;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `App has already been mounted.\nIf you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. \\`const createMyApp = () => createApp(App)\\``\n );\n }\n },\n unmount() {\n if (isMounted) {\n render(null, app._container);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n app._instance = null;\n devtoolsUnmountApp(app);\n }\n delete app._container.__vue_app__;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Cannot unmount an app that is not mounted.`);\n }\n },\n provide(key, value) {\n if (!!(process.env.NODE_ENV !== \"production\") && key in context.provides) {\n warn$1(\n `App already provides property with key \"${String(key)}\". It will be overwritten with the new value.`\n );\n }\n context.provides[key] = value;\n return app;\n },\n runWithContext(fn) {\n currentApp = app;\n try {\n return fn();\n } finally {\n currentApp = null;\n }\n }\n };\n {\n installAppCompatProperties(app, context, render);\n }\n return app;\n };\n}\nlet currentApp = null;\n\nfunction provide(key, value) {\n if (!currentInstance) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`provide() can only be used inside setup().`);\n }\n } else {\n let provides = currentInstance.provides;\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n provides[key] = value;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n const instance = currentInstance || currentRenderingInstance;\n if (instance || currentApp) {\n const provides = instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : currentApp._context.provides;\n if (provides && key in provides) {\n return provides[key];\n } else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`injection \"${String(key)}\" not found.`);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`inject() can only be used inside setup() or functional components.`);\n }\n}\nfunction hasInjectionContext() {\n return !!(currentInstance || currentRenderingInstance || currentApp);\n}\n\nfunction createPropsDefaultThis(instance, rawProps, propKey) {\n return new Proxy(\n {},\n {\n get(_, key) {\n !!(process.env.NODE_ENV !== \"production\") && warnDeprecation(\"PROPS_DEFAULT_THIS\", null, propKey);\n if (key === \"$options\") {\n return resolveMergedOptions(instance);\n }\n if (key in rawProps) {\n return rawProps[key];\n }\n const injections = instance.type.inject;\n if (injections) {\n if (isArray(injections)) {\n if (injections.includes(key)) {\n return inject(key);\n }\n } else if (key in injections) {\n return inject(key);\n }\n }\n }\n }\n );\n}\n\nfunction shouldSkipAttr(key, instance) {\n if (key === \"is\") {\n return true;\n }\n if ((key === \"class\" || key === \"style\") && isCompatEnabled(\"INSTANCE_ATTRS_CLASS_STYLE\", instance)) {\n return true;\n }\n if (isOn(key) && isCompatEnabled(\"INSTANCE_LISTENERS\", instance)) {\n return true;\n }\n if (key.startsWith(\"routerView\") || key === \"registerRouteInstance\") {\n return true;\n }\n return false;\n}\n\nfunction initProps(instance, rawProps, isStateful, isSSR = false) {\n const props = {};\n const attrs = {};\n def(attrs, InternalObjectKey, 1);\n instance.propsDefaults = /* @__PURE__ */ Object.create(null);\n setFullProps(instance, rawProps, props, attrs);\n for (const key in instance.propsOptions[0]) {\n if (!(key in props)) {\n props[key] = void 0;\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateProps(rawProps || {}, props, instance);\n }\n if (isStateful) {\n instance.props = isSSR ? props : shallowReactive(props);\n } else {\n if (!instance.type.props) {\n instance.props = attrs;\n } else {\n instance.props = props;\n }\n }\n instance.attrs = attrs;\n}\nfunction isInHmrContext(instance) {\n while (instance) {\n if (instance.type.__hmrId)\n return true;\n instance = instance.parent;\n }\n}\nfunction updateProps(instance, rawProps, rawPrevProps, optimized) {\n const {\n props,\n attrs,\n vnode: { patchFlag }\n } = instance;\n const rawCurrentProps = toRaw(props);\n const [options] = instance.propsOptions;\n let hasAttrsChanged = false;\n if (\n // always force full diff in dev\n // - #1942 if hmr is enabled with sfc component\n // - vite#872 non-sfc component used by sfc component\n !(!!(process.env.NODE_ENV !== \"production\") && isInHmrContext(instance)) && (optimized || patchFlag > 0) && !(patchFlag & 16)\n ) {\n if (patchFlag & 8) {\n const propsToUpdate = instance.vnode.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n let key = propsToUpdate[i];\n if (isEmitListener(instance.emitsOptions, key)) {\n continue;\n }\n const value = rawProps[key];\n if (options) {\n if (hasOwn(attrs, key)) {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n } else {\n const camelizedKey = camelize(key);\n props[camelizedKey] = resolvePropValue(\n options,\n rawCurrentProps,\n camelizedKey,\n value,\n instance,\n false\n );\n }\n } else {\n {\n if (isOn(key) && key.endsWith(\"Native\")) {\n key = key.slice(0, -6);\n } else if (shouldSkipAttr(key, instance)) {\n continue;\n }\n }\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n } else {\n if (setFullProps(instance, rawProps, props, attrs)) {\n hasAttrsChanged = true;\n }\n let kebabKey;\n for (const key in rawCurrentProps) {\n if (!rawProps || // for camelCase\n !hasOwn(rawProps, key) && // it's possible the original props was passed in as kebab-case\n // and converted to camelCase (#955)\n ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) {\n if (options) {\n if (rawPrevProps && // for camelCase\n (rawPrevProps[key] !== void 0 || // for kebab-case\n rawPrevProps[kebabKey] !== void 0)) {\n props[key] = resolvePropValue(\n options,\n rawCurrentProps,\n key,\n void 0,\n instance,\n true\n );\n }\n } else {\n delete props[key];\n }\n }\n }\n if (attrs !== rawCurrentProps) {\n for (const key in attrs) {\n if (!rawProps || !hasOwn(rawProps, key) && !hasOwn(rawProps, key + \"Native\")) {\n delete attrs[key];\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (hasAttrsChanged) {\n trigger(instance, \"set\", \"$attrs\");\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateProps(rawProps || {}, props, instance);\n }\n}\nfunction setFullProps(instance, rawProps, props, attrs) {\n const [options, needCastKeys] = instance.propsOptions;\n let hasAttrsChanged = false;\n let rawCastValues;\n if (rawProps) {\n for (let key in rawProps) {\n if (isReservedProp(key)) {\n continue;\n }\n {\n if (key.startsWith(\"onHook:\")) {\n softAssertCompatEnabled(\n \"INSTANCE_EVENT_HOOKS\",\n instance,\n key.slice(2).toLowerCase()\n );\n }\n if (key === \"inline-template\") {\n continue;\n }\n }\n const value = rawProps[key];\n let camelKey;\n if (options && hasOwn(options, camelKey = camelize(key))) {\n if (!needCastKeys || !needCastKeys.includes(camelKey)) {\n props[camelKey] = value;\n } else {\n (rawCastValues || (rawCastValues = {}))[camelKey] = value;\n }\n } else if (!isEmitListener(instance.emitsOptions, key)) {\n {\n if (isOn(key) && key.endsWith(\"Native\")) {\n key = key.slice(0, -6);\n } else if (shouldSkipAttr(key, instance)) {\n continue;\n }\n }\n if (!(key in attrs) || value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (needCastKeys) {\n const rawCurrentProps = toRaw(props);\n const castValues = rawCastValues || EMPTY_OBJ;\n for (let i = 0; i < needCastKeys.length; i++) {\n const key = needCastKeys[i];\n props[key] = resolvePropValue(\n options,\n rawCurrentProps,\n key,\n castValues[key],\n instance,\n !hasOwn(castValues, key)\n );\n }\n }\n return hasAttrsChanged;\n}\nfunction resolvePropValue(options, props, key, value, instance, isAbsent) {\n const opt = options[key];\n if (opt != null) {\n const hasDefault = hasOwn(opt, \"default\");\n if (hasDefault && value === void 0) {\n const defaultValue = opt.default;\n if (opt.type !== Function && !opt.skipFactory && isFunction(defaultValue)) {\n const { propsDefaults } = instance;\n if (key in propsDefaults) {\n value = propsDefaults[key];\n } else {\n const reset = setCurrentInstance(instance);\n value = propsDefaults[key] = defaultValue.call(\n isCompatEnabled(\"PROPS_DEFAULT_THIS\", instance) ? createPropsDefaultThis(instance, props, key) : null,\n props\n );\n reset();\n }\n } else {\n value = defaultValue;\n }\n }\n if (opt[0 /* shouldCast */]) {\n if (isAbsent && !hasDefault) {\n value = false;\n } else if (opt[1 /* shouldCastTrue */] && (value === \"\" || value === hyphenate(key))) {\n value = true;\n }\n }\n }\n return value;\n}\nfunction normalizePropsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.propsCache;\n const cached = cache.get(comp);\n if (cached) {\n return cached;\n }\n const raw = comp.props;\n const normalized = {};\n const needCastKeys = [];\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendProps = (raw2) => {\n if (isFunction(raw2)) {\n raw2 = raw2.options;\n }\n hasExtends = true;\n const [props, keys] = normalizePropsOptions(raw2, appContext, true);\n extend(normalized, props);\n if (keys)\n needCastKeys.push(...keys);\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendProps);\n }\n if (comp.extends) {\n extendProps(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendProps);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, EMPTY_ARR);\n }\n return EMPTY_ARR;\n }\n if (isArray(raw)) {\n for (let i = 0; i < raw.length; i++) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isString(raw[i])) {\n warn$1(`props must be strings when using array syntax.`, raw[i]);\n }\n const normalizedKey = camelize(raw[i]);\n if (validatePropName(normalizedKey)) {\n normalized[normalizedKey] = EMPTY_OBJ;\n }\n }\n } else if (raw) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(raw)) {\n warn$1(`invalid props options`, raw);\n }\n for (const key in raw) {\n const normalizedKey = camelize(key);\n if (validatePropName(normalizedKey)) {\n const opt = raw[key];\n const prop = normalized[normalizedKey] = isArray(opt) || isFunction(opt) ? { type: opt } : extend({}, opt);\n if (prop) {\n const booleanIndex = getTypeIndex(Boolean, prop.type);\n const stringIndex = getTypeIndex(String, prop.type);\n prop[0 /* shouldCast */] = booleanIndex > -1;\n prop[1 /* shouldCastTrue */] = stringIndex < 0 || booleanIndex < stringIndex;\n if (booleanIndex > -1 || hasOwn(prop, \"default\")) {\n needCastKeys.push(normalizedKey);\n }\n }\n }\n }\n }\n const res = [normalized, needCastKeys];\n if (isObject(comp)) {\n cache.set(comp, res);\n }\n return res;\n}\nfunction validatePropName(key) {\n if (key[0] !== \"$\") {\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid prop name: \"${key}\" is a reserved property.`);\n }\n return false;\n}\nfunction getType(ctor) {\n const match = ctor && ctor.toString().match(/^\\s*(function|class) (\\w+)/);\n return match ? match[2] : ctor === null ? \"null\" : \"\";\n}\nfunction isSameType(a, b) {\n return getType(a) === getType(b);\n}\nfunction getTypeIndex(type, expectedTypes) {\n if (isArray(expectedTypes)) {\n return expectedTypes.findIndex((t) => isSameType(t, type));\n } else if (isFunction(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1;\n }\n return -1;\n}\nfunction validateProps(rawProps, props, instance) {\n const resolvedValues = toRaw(props);\n const options = instance.propsOptions[0];\n for (const key in options) {\n let opt = options[key];\n if (opt == null)\n continue;\n validateProp(\n key,\n resolvedValues[key],\n opt,\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(resolvedValues) : resolvedValues,\n !hasOwn(rawProps, key) && !hasOwn(rawProps, hyphenate(key))\n );\n }\n}\nfunction validateProp(name, value, prop, props, isAbsent) {\n const { type, required, validator, skipCheck } = prop;\n if (required && isAbsent) {\n warn$1('Missing required prop: \"' + name + '\"');\n return;\n }\n if (value == null && !required) {\n return;\n }\n if (type != null && type !== true && !skipCheck) {\n let isValid = false;\n const types = isArray(type) ? type : [type];\n const expectedTypes = [];\n for (let i = 0; i < types.length && !isValid; i++) {\n const { valid, expectedType } = assertType(value, types[i]);\n expectedTypes.push(expectedType || \"\");\n isValid = valid;\n }\n if (!isValid) {\n warn$1(getInvalidTypeMessage(name, value, expectedTypes));\n return;\n }\n }\n if (validator && !validator(value, props)) {\n warn$1('Invalid prop: custom validator check failed for prop \"' + name + '\".');\n }\n}\nconst isSimpleType = /* @__PURE__ */ makeMap(\n \"String,Number,Boolean,Function,Symbol,BigInt\"\n);\nfunction assertType(value, type) {\n let valid;\n const expectedType = getType(type);\n if (isSimpleType(expectedType)) {\n const t = typeof value;\n valid = t === expectedType.toLowerCase();\n if (!valid && t === \"object\") {\n valid = value instanceof type;\n }\n } else if (expectedType === \"Object\") {\n valid = isObject(value);\n } else if (expectedType === \"Array\") {\n valid = isArray(value);\n } else if (expectedType === \"null\") {\n valid = value === null;\n } else {\n valid = value instanceof type;\n }\n return {\n valid,\n expectedType\n };\n}\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\n if (expectedTypes.length === 0) {\n return `Prop type [] for prop \"${name}\" won't match anything. Did you mean to use type Array instead?`;\n }\n let message = `Invalid prop: type check failed for prop \"${name}\". Expected ${expectedTypes.map(capitalize).join(\" | \")}`;\n const expectedType = expectedTypes[0];\n const receivedType = toRawType(value);\n const expectedValue = styleValue(value, expectedType);\n const receivedValue = styleValue(value, receivedType);\n if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) {\n message += ` with value ${expectedValue}`;\n }\n message += `, got ${receivedType} `;\n if (isExplicable(receivedType)) {\n message += `with value ${receivedValue}.`;\n }\n return message;\n}\nfunction styleValue(value, type) {\n if (type === \"String\") {\n return `\"${value}\"`;\n } else if (type === \"Number\") {\n return `${Number(value)}`;\n } else {\n return `${value}`;\n }\n}\nfunction isExplicable(type) {\n const explicitTypes = [\"string\", \"number\", \"boolean\"];\n return explicitTypes.some((elem) => type.toLowerCase() === elem);\n}\nfunction isBoolean(...args) {\n return args.some((elem) => elem.toLowerCase() === \"boolean\");\n}\n\nconst isInternalKey = (key) => key[0] === \"_\" || key === \"$stable\";\nconst normalizeSlotValue = (value) => isArray(value) ? value.map(normalizeVNode) : [normalizeVNode(value)];\nconst normalizeSlot = (key, rawSlot, ctx) => {\n if (rawSlot._n) {\n return rawSlot;\n }\n const normalized = withCtx((...args) => {\n if (!!(process.env.NODE_ENV !== \"production\") && currentInstance && (!ctx || ctx.root === currentInstance.root)) {\n warn$1(\n `Slot \"${key}\" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.`\n );\n }\n return normalizeSlotValue(rawSlot(...args));\n }, ctx);\n normalized._c = false;\n return normalized;\n};\nconst normalizeObjectSlots = (rawSlots, slots, instance) => {\n const ctx = rawSlots._ctx;\n for (const key in rawSlots) {\n if (isInternalKey(key))\n continue;\n const value = rawSlots[key];\n if (isFunction(value)) {\n slots[key] = normalizeSlot(key, value, ctx);\n } else if (value != null) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isCompatEnabled(\"RENDER_FUNCTION\", instance)) {\n warn$1(\n `Non-function value encountered for slot \"${key}\". Prefer function slots for better performance.`\n );\n }\n const normalized = normalizeSlotValue(value);\n slots[key] = () => normalized;\n }\n }\n};\nconst normalizeVNodeSlots = (instance, children) => {\n if (!!(process.env.NODE_ENV !== \"production\") && !isKeepAlive(instance.vnode) && !isCompatEnabled(\"RENDER_FUNCTION\", instance)) {\n warn$1(\n `Non-function value encountered for default slot. Prefer function slots for better performance.`\n );\n }\n const normalized = normalizeSlotValue(children);\n instance.slots.default = () => normalized;\n};\nconst initSlots = (instance, children) => {\n if (instance.vnode.shapeFlag & 32) {\n const type = children._;\n if (type) {\n instance.slots = toRaw(children);\n def(children, \"_\", type);\n } else {\n normalizeObjectSlots(\n children,\n instance.slots = {},\n instance\n );\n }\n } else {\n instance.slots = {};\n if (children) {\n normalizeVNodeSlots(instance, children);\n }\n }\n def(instance.slots, InternalObjectKey, 1);\n};\nconst updateSlots = (instance, children, optimized) => {\n const { vnode, slots } = instance;\n let needDeletionCheck = true;\n let deletionComparisonTarget = EMPTY_OBJ;\n if (vnode.shapeFlag & 32) {\n const type = children._;\n if (type) {\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n extend(slots, children);\n trigger(instance, \"set\", \"$slots\");\n } else if (optimized && type === 1) {\n needDeletionCheck = false;\n } else {\n extend(slots, children);\n if (!optimized && type === 1) {\n delete slots._;\n }\n }\n } else {\n needDeletionCheck = !children.$stable;\n normalizeObjectSlots(children, slots, instance);\n }\n deletionComparisonTarget = children;\n } else if (children) {\n normalizeVNodeSlots(instance, children);\n deletionComparisonTarget = { default: 1 };\n }\n if (needDeletionCheck) {\n for (const key in slots) {\n if (!isInternalKey(key) && deletionComparisonTarget[key] == null) {\n delete slots[key];\n }\n }\n }\n};\n\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n if (isArray(rawRef)) {\n rawRef.forEach(\n (r, i) => setRef(\n r,\n oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef),\n parentSuspense,\n vnode,\n isUnmount\n )\n );\n return;\n }\n if (isAsyncWrapper(vnode) && !isUnmount) {\n return;\n }\n const refValue = vnode.shapeFlag & 4 ? getExposeProxy(vnode.component) || vnode.component.proxy : vnode.el;\n const value = isUnmount ? null : refValue;\n const { i: owner, r: ref } = rawRef;\n if (!!(process.env.NODE_ENV !== \"production\") && !owner) {\n warn$1(\n `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`\n );\n return;\n }\n const oldRef = oldRawRef && oldRawRef.r;\n const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;\n const setupState = owner.setupState;\n if (oldRef != null && oldRef !== ref) {\n if (isString(oldRef)) {\n refs[oldRef] = null;\n if (hasOwn(setupState, oldRef)) {\n setupState[oldRef] = null;\n }\n } else if (isRef(oldRef)) {\n oldRef.value = null;\n }\n }\n if (isFunction(ref)) {\n callWithErrorHandling(ref, owner, 12, [value, refs]);\n } else {\n const _isString = isString(ref);\n const _isRef = isRef(ref);\n const isVFor = rawRef.f;\n if (_isString || _isRef) {\n const doSet = () => {\n if (isVFor) {\n const existing = _isString ? hasOwn(setupState, ref) ? setupState[ref] : refs[ref] : ref.value;\n if (isUnmount) {\n isArray(existing) && remove(existing, refValue);\n } else {\n if (!isArray(existing)) {\n if (_isString) {\n refs[ref] = [refValue];\n if (hasOwn(setupState, ref)) {\n setupState[ref] = refs[ref];\n }\n } else {\n ref.value = [refValue];\n if (rawRef.k)\n refs[rawRef.k] = ref.value;\n }\n } else if (!existing.includes(refValue)) {\n existing.push(refValue);\n }\n }\n } else if (_isString) {\n refs[ref] = value;\n if (hasOwn(setupState, ref)) {\n setupState[ref] = value;\n }\n } else if (_isRef) {\n ref.value = value;\n if (rawRef.k)\n refs[rawRef.k] = value;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n };\n if (isUnmount || isVFor) {\n doSet();\n } else {\n doSet.id = -1;\n queuePostRenderEffect(doSet, parentSuspense);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n }\n}\n\nlet hasMismatch = false;\nconst isSVGContainer = (container) => container.namespaceURI.includes(\"svg\") && container.tagName !== \"foreignObject\";\nconst isMathMLContainer = (container) => container.namespaceURI.includes(\"MathML\");\nconst getContainerType = (container) => {\n if (isSVGContainer(container))\n return \"svg\";\n if (isMathMLContainer(container))\n return \"mathml\";\n return void 0;\n};\nconst isComment = (node) => node.nodeType === 8 /* COMMENT */;\nfunction createHydrationFunctions(rendererInternals) {\n const {\n mt: mountComponent,\n p: patch,\n o: {\n patchProp,\n createText,\n nextSibling,\n parentNode,\n remove,\n insert,\n createComment\n }\n } = rendererInternals;\n const hydrate = (vnode, container) => {\n if (!container.hasChildNodes()) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Attempting to hydrate existing markup but container is empty. Performing full mount instead.`\n );\n patch(null, vnode, container);\n flushPostFlushCbs();\n container._vnode = vnode;\n return;\n }\n hasMismatch = false;\n hydrateNode(container.firstChild, vnode, null, null, null);\n flushPostFlushCbs();\n container._vnode = vnode;\n if (hasMismatch && true) {\n console.error(`Hydration completed but contains mismatches.`);\n }\n };\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\n const isFragmentStart = isComment(node) && node.data === \"[\";\n const onMismatch = () => handleMismatch(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n isFragmentStart\n );\n const { type, ref, shapeFlag, patchFlag } = vnode;\n let domType = node.nodeType;\n vnode.el = node;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n if (!(\"__vnode\" in node)) {\n Object.defineProperty(node, \"__vnode\", {\n value: vnode,\n enumerable: false\n });\n }\n if (!(\"__vueParentComponent\" in node)) {\n Object.defineProperty(node, \"__vueParentComponent\", {\n value: parentComponent,\n enumerable: false\n });\n }\n }\n if (patchFlag === -2) {\n optimized = false;\n vnode.dynamicChildren = null;\n }\n let nextNode = null;\n switch (type) {\n case Text:\n if (domType !== 3 /* TEXT */) {\n if (vnode.children === \"\") {\n insert(vnode.el = createText(\"\"), parentNode(node), node);\n nextNode = node;\n } else {\n nextNode = onMismatch();\n }\n } else {\n if (node.data !== vnode.children) {\n hasMismatch = true;\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text mismatch in`,\n node.parentNode,\n `\n - rendered on server: ${JSON.stringify(\n node.data\n )}\n - expected on client: ${JSON.stringify(vnode.children)}`\n );\n node.data = vnode.children;\n }\n nextNode = nextSibling(node);\n }\n break;\n case Comment:\n if (isTemplateNode(node)) {\n nextNode = nextSibling(node);\n replaceNode(\n vnode.el = node.content.firstChild,\n node,\n parentComponent\n );\n } else if (domType !== 8 /* COMMENT */ || isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = nextSibling(node);\n }\n break;\n case Static:\n if (isFragmentStart) {\n node = nextSibling(node);\n domType = node.nodeType;\n }\n if (domType === 1 /* ELEMENT */ || domType === 3 /* TEXT */) {\n nextNode = node;\n const needToAdoptContent = !vnode.children.length;\n for (let i = 0; i < vnode.staticCount; i++) {\n if (needToAdoptContent)\n vnode.children += nextNode.nodeType === 1 /* ELEMENT */ ? nextNode.outerHTML : nextNode.data;\n if (i === vnode.staticCount - 1) {\n vnode.anchor = nextNode;\n }\n nextNode = nextSibling(nextNode);\n }\n return isFragmentStart ? nextSibling(nextNode) : nextNode;\n } else {\n onMismatch();\n }\n break;\n case Fragment:\n if (!isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateFragment(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n break;\n default:\n if (shapeFlag & 1) {\n if ((domType !== 1 /* ELEMENT */ || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateElement(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n } else if (shapeFlag & 6) {\n vnode.slotScopeIds = slotScopeIds;\n const container = parentNode(node);\n if (isFragmentStart) {\n nextNode = locateClosingAnchor(node);\n } else if (isComment(node) && node.data === \"teleport start\") {\n nextNode = locateClosingAnchor(node, node.data, \"teleport end\");\n } else {\n nextNode = nextSibling(node);\n }\n mountComponent(\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n optimized\n );\n if (isAsyncWrapper(vnode)) {\n let subTree;\n if (isFragmentStart) {\n subTree = createVNode(Fragment);\n subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;\n } else {\n subTree = node.nodeType === 3 ? createTextVNode(\"\") : createVNode(\"div\");\n }\n subTree.el = node;\n vnode.component.subTree = subTree;\n }\n } else if (shapeFlag & 64) {\n if (domType !== 8 /* COMMENT */) {\n nextNode = onMismatch();\n } else {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateChildren\n );\n }\n } else if (shapeFlag & 128) {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n getContainerType(parentNode(node)),\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateNode\n );\n } else if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) {\n warn$1(\"Invalid HostVNode type:\", type, `(${typeof type})`);\n }\n }\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode);\n }\n return nextNode;\n };\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode;\n const forcePatch = type === \"input\" || type === \"option\";\n if (!!(process.env.NODE_ENV !== \"production\") || forcePatch || patchFlag !== -1) {\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n }\n let needCallTransitionHooks = false;\n if (isTemplateNode(el)) {\n needCallTransitionHooks = needTransition(parentSuspense, transition) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;\n const content = el.content.firstChild;\n if (needCallTransitionHooks) {\n transition.beforeEnter(content);\n }\n replaceNode(content, el, parentComponent);\n vnode.el = el = content;\n }\n if (shapeFlag & 16 && // skip if element has innerHTML / textContent\n !(props && (props.innerHTML || props.textContent))) {\n let next = hydrateChildren(\n el.firstChild,\n vnode,\n el,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n let hasWarned = false;\n while (next) {\n hasMismatch = true;\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {\n warn$1(\n `Hydration children mismatch on`,\n el,\n `\nServer rendered element contains more child nodes than client vdom.`\n );\n hasWarned = true;\n }\n const cur = next;\n next = next.nextSibling;\n remove(cur);\n }\n } else if (shapeFlag & 8) {\n if (el.textContent !== vnode.children) {\n hasMismatch = true;\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text content mismatch on`,\n el,\n `\n - rendered on server: ${el.textContent}\n - expected on client: ${vnode.children}`\n );\n el.textContent = vnode.children;\n }\n }\n if (props) {\n if (!!(process.env.NODE_ENV !== \"production\") || forcePatch || !optimized || patchFlag & (16 | 32)) {\n for (const key in props) {\n if (!!(process.env.NODE_ENV !== \"production\") && propHasMismatch(el, key, props[key], vnode)) {\n hasMismatch = true;\n }\n if (forcePatch && (key.endsWith(\"value\") || key === \"indeterminate\") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers\n key[0] === \".\") {\n patchProp(\n el,\n key,\n null,\n props[key],\n void 0,\n void 0,\n parentComponent\n );\n }\n }\n } else if (props.onClick) {\n patchProp(\n el,\n \"onClick\",\n null,\n props.onClick,\n void 0,\n void 0,\n parentComponent\n );\n }\n }\n let vnodeHooks;\n if (vnodeHooks = props && props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) {\n queueEffectWithSuspense(() => {\n vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n }\n return el.nextSibling;\n };\n const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!parentVNode.dynamicChildren;\n const children = parentVNode.children;\n const l = children.length;\n let hasWarned = false;\n for (let i = 0; i < l; i++) {\n const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);\n if (node) {\n node = hydrateNode(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n } else if (vnode.type === Text && !vnode.children) {\n continue;\n } else {\n hasMismatch = true;\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {\n warn$1(\n `Hydration children mismatch on`,\n container,\n `\nServer rendered element contains fewer child nodes than client vdom.`\n );\n hasWarned = true;\n }\n patch(\n null,\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n }\n }\n return node;\n };\n const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n const { slotScopeIds: fragmentSlotScopeIds } = vnode;\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n const container = parentNode(node);\n const next = hydrateChildren(\n nextSibling(node),\n vnode,\n container,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n if (next && isComment(next) && next.data === \"]\") {\n return nextSibling(vnode.anchor = next);\n } else {\n hasMismatch = true;\n insert(vnode.anchor = createComment(`]`), container, next);\n return next;\n }\n };\n const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {\n hasMismatch = true;\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration node mismatch:\n- rendered on server:`,\n node,\n node.nodeType === 3 /* TEXT */ ? `(text)` : isComment(node) && node.data === \"[\" ? `(start of fragment)` : ``,\n `\n- expected on client:`,\n vnode.type\n );\n vnode.el = null;\n if (isFragment) {\n const end = locateClosingAnchor(node);\n while (true) {\n const next2 = nextSibling(node);\n if (next2 && next2 !== end) {\n remove(next2);\n } else {\n break;\n }\n }\n }\n const next = nextSibling(node);\n const container = parentNode(node);\n remove(node);\n patch(\n null,\n vnode,\n container,\n next,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n return next;\n };\n const locateClosingAnchor = (node, open = \"[\", close = \"]\") => {\n let match = 0;\n while (node) {\n node = nextSibling(node);\n if (node && isComment(node)) {\n if (node.data === open)\n match++;\n if (node.data === close) {\n if (match === 0) {\n return nextSibling(node);\n } else {\n match--;\n }\n }\n }\n }\n return node;\n };\n const replaceNode = (newNode, oldNode, parentComponent) => {\n const parentNode2 = oldNode.parentNode;\n if (parentNode2) {\n parentNode2.replaceChild(newNode, oldNode);\n }\n let parent = parentComponent;\n while (parent) {\n if (parent.vnode.el === oldNode) {\n parent.vnode.el = parent.subTree.el = newNode;\n }\n parent = parent.parent;\n }\n };\n const isTemplateNode = (node) => {\n return node.nodeType === 1 /* ELEMENT */ && node.tagName.toLowerCase() === \"template\";\n };\n return [hydrate, hydrateNode];\n}\nfunction propHasMismatch(el, key, clientValue, vnode) {\n let mismatchType;\n let mismatchKey;\n let actual;\n let expected;\n if (key === \"class\") {\n actual = el.getAttribute(\"class\");\n expected = normalizeClass(clientValue);\n if (!isSetEqual(toClassSet(actual || \"\"), toClassSet(expected))) {\n mismatchType = mismatchKey = `class`;\n }\n } else if (key === \"style\") {\n actual = el.getAttribute(\"style\");\n expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue));\n const actualMap = toStyleMap(actual);\n const expectedMap = toStyleMap(expected);\n if (vnode.dirs) {\n for (const { dir, value } of vnode.dirs) {\n if (dir.name === \"show\" && !value) {\n expectedMap.set(\"display\", \"none\");\n }\n }\n }\n if (!isMapEqual(actualMap, expectedMap)) {\n mismatchType = mismatchKey = \"style\";\n }\n } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {\n if (isBooleanAttr(key)) {\n actual = el.hasAttribute(key);\n expected = includeBooleanAttr(clientValue);\n } else if (clientValue == null) {\n actual = el.hasAttribute(key);\n expected = false;\n } else {\n if (el.hasAttribute(key)) {\n actual = el.getAttribute(key);\n } else if (key === \"value\" && el.tagName === \"TEXTAREA\") {\n actual = el.value;\n } else {\n actual = false;\n }\n expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false;\n }\n if (actual !== expected) {\n mismatchType = `attribute`;\n mismatchKey = key;\n }\n }\n if (mismatchType) {\n const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}=\"${v}\"`;\n const preSegment = `Hydration ${mismatchType} mismatch on`;\n const postSegment = `\n - rendered on server: ${format(actual)}\n - expected on client: ${format(expected)}\n Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.\n You should fix the source of the mismatch.`;\n {\n warn$1(preSegment, el, postSegment);\n }\n return true;\n }\n return false;\n}\nfunction toClassSet(str) {\n return new Set(str.trim().split(/\\s+/));\n}\nfunction isSetEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const s of a) {\n if (!b.has(s)) {\n return false;\n }\n }\n return true;\n}\nfunction toStyleMap(str) {\n const styleMap = /* @__PURE__ */ new Map();\n for (const item of str.split(\";\")) {\n let [key, value] = item.split(\":\");\n key = key == null ? void 0 : key.trim();\n value = value == null ? void 0 : value.trim();\n if (key && value) {\n styleMap.set(key, value);\n }\n }\n return styleMap;\n}\nfunction isMapEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const [key, value] of a) {\n if (value !== b.get(key)) {\n return false;\n }\n }\n return true;\n}\n\nlet supported;\nlet perf;\nfunction startMeasure(instance, type) {\n if (instance.appContext.config.performance && isSupported()) {\n perf.mark(`vue-${type}-${instance.uid}`);\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now());\n }\n}\nfunction endMeasure(instance, type) {\n if (instance.appContext.config.performance && isSupported()) {\n const startTag = `vue-${type}-${instance.uid}`;\n const endTag = startTag + `:end`;\n perf.mark(endTag);\n perf.measure(\n `<${formatComponentName(instance, instance.type)}> ${type}`,\n startTag,\n endTag\n );\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now());\n }\n}\nfunction isSupported() {\n if (supported !== void 0) {\n return supported;\n }\n if (typeof window !== \"undefined\" && window.performance) {\n supported = true;\n perf = window.performance;\n } else {\n supported = false;\n }\n return supported;\n}\n\nfunction initFeatureFlags() {\n const needWarn = [];\n if (typeof __VUE_OPTIONS_API__ !== \"boolean\") {\n !!(process.env.NODE_ENV !== \"production\") && needWarn.push(`__VUE_OPTIONS_API__`);\n getGlobalThis().__VUE_OPTIONS_API__ = true;\n }\n if (typeof __VUE_PROD_DEVTOOLS__ !== \"boolean\") {\n !!(process.env.NODE_ENV !== \"production\") && needWarn.push(`__VUE_PROD_DEVTOOLS__`);\n getGlobalThis().__VUE_PROD_DEVTOOLS__ = false;\n }\n if (typeof __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ !== \"boolean\") {\n !!(process.env.NODE_ENV !== \"production\") && needWarn.push(`__VUE_PROD_HYDRATION_MISMATCH_DETAILS__`);\n getGlobalThis().__VUE_PROD_HYDRATION_MISMATCH_DETAILS__ = false;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && needWarn.length) {\n const multi = needWarn.length > 1;\n console.warn(\n `Feature flag${multi ? `s` : ``} ${needWarn.join(\", \")} ${multi ? `are` : `is`} not explicitly defined. You are running the esm-bundler build of Vue, which expects these compile-time feature flags to be globally injected via the bundler config in order to get better tree-shaking in the production bundle.\n\nFor more details, see https://link.vuejs.org/feature-flags.`\n );\n }\n}\n\nconst queuePostRenderEffect = queueEffectWithSuspense ;\nfunction createRenderer(options) {\n return baseCreateRenderer(options);\n}\nfunction createHydrationRenderer(options) {\n return baseCreateRenderer(options, createHydrationFunctions);\n}\nfunction baseCreateRenderer(options, createHydrationFns) {\n {\n initFeatureFlags();\n }\n const target = getGlobalThis();\n target.__VUE__ = true;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n setDevtoolsHook$1(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);\n }\n const {\n insert: hostInsert,\n remove: hostRemove,\n patchProp: hostPatchProp,\n createElement: hostCreateElement,\n createText: hostCreateText,\n createComment: hostCreateComment,\n setText: hostSetText,\n setElementText: hostSetElementText,\n parentNode: hostParentNode,\n nextSibling: hostNextSibling,\n setScopeId: hostSetScopeId = NOOP,\n insertStaticContent: hostInsertStaticContent\n } = options;\n const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace = void 0, slotScopeIds = null, optimized = !!(process.env.NODE_ENV !== \"production\") && isHmrUpdating ? false : !!n2.dynamicChildren) => {\n if (n1 === n2) {\n return;\n }\n if (n1 && !isSameVNodeType(n1, n2)) {\n anchor = getNextHostNode(n1);\n unmount(n1, parentComponent, parentSuspense, true);\n n1 = null;\n }\n if (n2.patchFlag === -2) {\n optimized = false;\n n2.dynamicChildren = null;\n }\n const { type, ref, shapeFlag } = n2;\n switch (type) {\n case Text:\n processText(n1, n2, container, anchor);\n break;\n case Comment:\n processCommentNode(n1, n2, container, anchor);\n break;\n case Static:\n if (n1 == null) {\n mountStaticNode(n2, container, anchor, namespace);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n patchStaticNode(n1, n2, container, namespace);\n }\n break;\n case Fragment:\n processFragment(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n break;\n default:\n if (shapeFlag & 1) {\n processElement(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else if (shapeFlag & 6) {\n processComponent(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else if (shapeFlag & 64) {\n type.process(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n internals\n );\n } else if (shapeFlag & 128) {\n type.process(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n internals\n );\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid VNode type:\", type, `(${typeof type})`);\n }\n }\n if (ref != null && parentComponent) {\n setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2);\n }\n };\n const processText = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert(\n n2.el = hostCreateText(n2.children),\n container,\n anchor\n );\n } else {\n const el = n2.el = n1.el;\n if (n2.children !== n1.children) {\n hostSetText(el, n2.children);\n }\n }\n };\n const processCommentNode = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert(\n n2.el = hostCreateComment(n2.children || \"\"),\n container,\n anchor\n );\n } else {\n n2.el = n1.el;\n }\n };\n const mountStaticNode = (n2, container, anchor, namespace) => {\n [n2.el, n2.anchor] = hostInsertStaticContent(\n n2.children,\n container,\n anchor,\n namespace,\n n2.el,\n n2.anchor\n );\n };\n const patchStaticNode = (n1, n2, container, namespace) => {\n if (n2.children !== n1.children) {\n const anchor = hostNextSibling(n1.anchor);\n removeStaticNode(n1);\n [n2.el, n2.anchor] = hostInsertStaticContent(\n n2.children,\n container,\n anchor,\n namespace\n );\n } else {\n n2.el = n1.el;\n n2.anchor = n1.anchor;\n }\n };\n const moveStaticNode = ({ el, anchor }, container, nextSibling) => {\n let next;\n while (el && el !== anchor) {\n next = hostNextSibling(el);\n hostInsert(el, container, nextSibling);\n el = next;\n }\n hostInsert(anchor, container, nextSibling);\n };\n const removeStaticNode = ({ el, anchor }) => {\n let next;\n while (el && el !== anchor) {\n next = hostNextSibling(el);\n hostRemove(el);\n el = next;\n }\n hostRemove(anchor);\n };\n const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n if (n2.type === \"svg\") {\n namespace = \"svg\";\n } else if (n2.type === \"math\") {\n namespace = \"mathml\";\n }\n if (n1 == null) {\n mountElement(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n patchElement(\n n1,\n n2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n let el;\n let vnodeHook;\n const { props, shapeFlag, transition, dirs } = vnode;\n el = vnode.el = hostCreateElement(\n vnode.type,\n namespace,\n props && props.is,\n props\n );\n if (shapeFlag & 8) {\n hostSetElementText(el, vnode.children);\n } else if (shapeFlag & 16) {\n mountChildren(\n vnode.children,\n el,\n null,\n parentComponent,\n parentSuspense,\n resolveChildrenNamespace(vnode, namespace),\n slotScopeIds,\n optimized\n );\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n }\n setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent);\n if (props) {\n for (const key in props) {\n if (key !== \"value\" && !isReservedProp(key)) {\n hostPatchProp(\n el,\n key,\n null,\n props[key],\n namespace,\n vnode.children,\n parentComponent,\n parentSuspense,\n unmountChildren\n );\n }\n }\n if (\"value\" in props) {\n hostPatchProp(el, \"value\", null, props.value, namespace);\n }\n if (vnodeHook = props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n Object.defineProperty(el, \"__vnode\", {\n value: vnode,\n enumerable: false\n });\n Object.defineProperty(el, \"__vueParentComponent\", {\n value: parentComponent,\n enumerable: false\n });\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n const needCallTransitionHooks = needTransition(parentSuspense, transition);\n if (needCallTransitionHooks) {\n transition.beforeEnter(el);\n }\n hostInsert(el, container, anchor);\n if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n };\n const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => {\n if (scopeId) {\n hostSetScopeId(el, scopeId);\n }\n if (slotScopeIds) {\n for (let i = 0; i < slotScopeIds.length; i++) {\n hostSetScopeId(el, slotScopeIds[i]);\n }\n }\n if (parentComponent) {\n let subTree = parentComponent.subTree;\n if (!!(process.env.NODE_ENV !== \"production\") && subTree.patchFlag > 0 && subTree.patchFlag & 2048) {\n subTree = filterSingleRoot(subTree.children) || subTree;\n }\n if (vnode === subTree) {\n const parentVNode = parentComponent.vnode;\n setScopeId(\n el,\n parentVNode,\n parentVNode.scopeId,\n parentVNode.slotScopeIds,\n parentComponent.parent\n );\n }\n }\n };\n const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {\n for (let i = start; i < children.length; i++) {\n const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);\n patch(\n null,\n child,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n const el = n2.el = n1.el;\n let { patchFlag, dynamicChildren, dirs } = n2;\n patchFlag |= n1.patchFlag & 16;\n const oldProps = n1.props || EMPTY_OBJ;\n const newProps = n2.props || EMPTY_OBJ;\n let vnodeHook;\n parentComponent && toggleRecurse(parentComponent, false);\n if (vnodeHook = newProps.onVnodeBeforeUpdate) {\n invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n }\n if (dirs) {\n invokeDirectiveHook(n2, n1, parentComponent, \"beforeUpdate\");\n }\n parentComponent && toggleRecurse(parentComponent, true);\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n patchFlag = 0;\n optimized = false;\n dynamicChildren = null;\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n el,\n parentComponent,\n parentSuspense,\n resolveChildrenNamespace(n2, namespace),\n slotScopeIds\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n traverseStaticChildren(n1, n2);\n }\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n el,\n null,\n parentComponent,\n parentSuspense,\n resolveChildrenNamespace(n2, namespace),\n slotScopeIds,\n false\n );\n }\n if (patchFlag > 0) {\n if (patchFlag & 16) {\n patchProps(\n el,\n n2,\n oldProps,\n newProps,\n parentComponent,\n parentSuspense,\n namespace\n );\n } else {\n if (patchFlag & 2) {\n if (oldProps.class !== newProps.class) {\n hostPatchProp(el, \"class\", null, newProps.class, namespace);\n }\n }\n if (patchFlag & 4) {\n hostPatchProp(el, \"style\", oldProps.style, newProps.style, namespace);\n }\n if (patchFlag & 8) {\n const propsToUpdate = n2.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n const key = propsToUpdate[i];\n const prev = oldProps[key];\n const next = newProps[key];\n if (next !== prev || key === \"value\") {\n hostPatchProp(\n el,\n key,\n prev,\n next,\n namespace,\n n1.children,\n parentComponent,\n parentSuspense,\n unmountChildren\n );\n }\n }\n }\n }\n if (patchFlag & 1) {\n if (n1.children !== n2.children) {\n hostSetElementText(el, n2.children);\n }\n }\n } else if (!optimized && dynamicChildren == null) {\n patchProps(\n el,\n n2,\n oldProps,\n newProps,\n parentComponent,\n parentSuspense,\n namespace\n );\n }\n if ((vnodeHook = newProps.onVnodeUpdated) || dirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n dirs && invokeDirectiveHook(n2, n1, parentComponent, \"updated\");\n }, parentSuspense);\n }\n };\n const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds) => {\n for (let i = 0; i < newChildren.length; i++) {\n const oldVNode = oldChildren[i];\n const newVNode = newChildren[i];\n const container = (\n // oldVNode may be an errored async setup() component inside Suspense\n // which will not have a mounted element\n oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent\n // of the Fragment itself so it can move its children.\n (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement\n // which also requires the correct parent container\n !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything.\n oldVNode.shapeFlag & (6 | 64)) ? hostParentNode(oldVNode.el) : (\n // In other cases, the parent container is not actually used so we\n // just pass the block element here to avoid a DOM parentNode call.\n fallbackContainer\n )\n );\n patch(\n oldVNode,\n newVNode,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n true\n );\n }\n };\n const patchProps = (el, vnode, oldProps, newProps, parentComponent, parentSuspense, namespace) => {\n if (oldProps !== newProps) {\n if (oldProps !== EMPTY_OBJ) {\n for (const key in oldProps) {\n if (!isReservedProp(key) && !(key in newProps)) {\n hostPatchProp(\n el,\n key,\n oldProps[key],\n null,\n namespace,\n vnode.children,\n parentComponent,\n parentSuspense,\n unmountChildren\n );\n }\n }\n }\n for (const key in newProps) {\n if (isReservedProp(key))\n continue;\n const next = newProps[key];\n const prev = oldProps[key];\n if (next !== prev && key !== \"value\") {\n hostPatchProp(\n el,\n key,\n prev,\n next,\n namespace,\n vnode.children,\n parentComponent,\n parentSuspense,\n unmountChildren\n );\n }\n }\n if (\"value\" in newProps) {\n hostPatchProp(el, \"value\", oldProps.value, newProps.value, namespace);\n }\n }\n };\n const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText(\"\");\n const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText(\"\");\n let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2;\n if (!!(process.env.NODE_ENV !== \"production\") && // #5523 dev root fragment may inherit directives\n (isHmrUpdating || patchFlag & 2048)) {\n patchFlag = 0;\n optimized = false;\n dynamicChildren = null;\n }\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n if (n1 == null) {\n hostInsert(fragmentStartAnchor, container, anchor);\n hostInsert(fragmentEndAnchor, container, anchor);\n mountChildren(\n // #10007\n // such fragment like `<></>` will be compiled into\n // a fragment which doesn't have a children.\n // In this case fallback to an empty array\n n2.children || [],\n container,\n fragmentEndAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result\n // of renderSlot() with no valid children\n n1.dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n container,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n traverseStaticChildren(n1, n2);\n } else if (\n // #2080 if the stable fragment has a key, it's a <template v-for> that may\n // get moved around. Make sure all root level vnodes inherit el.\n // #2134 or if it's a component root, it may also get moved around\n // as the component is being moved.\n n2.key != null || parentComponent && n2 === parentComponent.subTree\n ) {\n traverseStaticChildren(\n n1,\n n2,\n true\n /* shallow */\n );\n }\n } else {\n patchChildren(\n n1,\n n2,\n container,\n fragmentEndAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n }\n };\n const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n n2.slotScopeIds = slotScopeIds;\n if (n1 == null) {\n if (n2.shapeFlag & 512) {\n parentComponent.ctx.activate(\n n2,\n container,\n anchor,\n namespace,\n optimized\n );\n } else {\n mountComponent(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n optimized\n );\n }\n } else {\n updateComponent(n1, n2, optimized);\n }\n };\n const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {\n const compatMountInstance = initialVNode.isCompatRoot && initialVNode.component;\n const instance = compatMountInstance || (initialVNode.component = createComponentInstance(\n initialVNode,\n parentComponent,\n parentSuspense\n ));\n if (!!(process.env.NODE_ENV !== \"production\") && instance.type.__hmrId) {\n registerHMR(instance);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(initialVNode);\n startMeasure(instance, `mount`);\n }\n if (isKeepAlive(initialVNode)) {\n instance.ctx.renderer = internals;\n }\n if (!compatMountInstance) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `init`);\n }\n setupComponent(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `init`);\n }\n }\n if (instance.asyncDep) {\n parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect);\n if (!initialVNode.el) {\n const placeholder = instance.subTree = createVNode(Comment);\n processCommentNode(null, placeholder, container, anchor);\n }\n } else {\n setupRenderEffect(\n instance,\n initialVNode,\n container,\n anchor,\n parentSuspense,\n namespace,\n optimized\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n endMeasure(instance, `mount`);\n }\n };\n const updateComponent = (n1, n2, optimized) => {\n const instance = n2.component = n1.component;\n if (shouldUpdateComponent(n1, n2, optimized)) {\n if (instance.asyncDep && !instance.asyncResolved) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(n2);\n }\n updateComponentPreRender(instance, n2, optimized);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n return;\n } else {\n instance.next = n2;\n invalidateJob(instance.update);\n instance.effect.dirty = true;\n instance.update();\n }\n } else {\n n2.el = n1.el;\n instance.vnode = n2;\n }\n };\n const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, namespace, optimized) => {\n const componentUpdateFn = () => {\n if (!instance.isMounted) {\n let vnodeHook;\n const { el, props } = initialVNode;\n const { bm, m, parent } = instance;\n const isAsyncWrapperVNode = isAsyncWrapper(initialVNode);\n toggleRecurse(instance, false);\n if (bm) {\n invokeArrayFns(bm);\n }\n if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) {\n invokeVNodeHook(vnodeHook, parent, initialVNode);\n }\n if (isCompatEnabled(\"INSTANCE_EVENT_HOOKS\", instance)) {\n instance.emit(\"hook:beforeMount\");\n }\n toggleRecurse(instance, true);\n if (el && hydrateNode) {\n const hydrateSubTree = () => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `render`);\n }\n instance.subTree = renderComponentRoot(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `render`);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `hydrate`);\n }\n hydrateNode(\n el,\n instance.subTree,\n instance,\n parentSuspense,\n null\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `hydrate`);\n }\n };\n if (isAsyncWrapperVNode) {\n initialVNode.type.__asyncLoader().then(\n // note: we are moving the render call into an async callback,\n // which means it won't track dependencies - but it's ok because\n // a server-rendered async wrapper is already in resolved state\n // and it will never need to change.\n () => !instance.isUnmounted && hydrateSubTree()\n );\n } else {\n hydrateSubTree();\n }\n } else {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `render`);\n }\n const subTree = instance.subTree = renderComponentRoot(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `render`);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `patch`);\n }\n patch(\n null,\n subTree,\n container,\n anchor,\n instance,\n parentSuspense,\n namespace\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `patch`);\n }\n initialVNode.el = subTree.el;\n }\n if (m) {\n queuePostRenderEffect(m, parentSuspense);\n }\n if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) {\n const scopedInitialVNode = initialVNode;\n queuePostRenderEffect(\n () => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode),\n parentSuspense\n );\n }\n if (isCompatEnabled(\"INSTANCE_EVENT_HOOKS\", instance)) {\n queuePostRenderEffect(\n () => instance.emit(\"hook:mounted\"),\n parentSuspense\n );\n }\n if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) {\n instance.a && queuePostRenderEffect(instance.a, parentSuspense);\n if (isCompatEnabled(\"INSTANCE_EVENT_HOOKS\", instance)) {\n queuePostRenderEffect(\n () => instance.emit(\"hook:activated\"),\n parentSuspense\n );\n }\n }\n instance.isMounted = true;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance);\n }\n initialVNode = container = anchor = null;\n } else {\n let { next, bu, u, parent, vnode } = instance;\n {\n const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance);\n if (nonHydratedAsyncRoot) {\n if (next) {\n next.el = vnode.el;\n updateComponentPreRender(instance, next, optimized);\n }\n nonHydratedAsyncRoot.asyncDep.then(() => {\n if (!instance.isUnmounted) {\n componentUpdateFn();\n }\n });\n return;\n }\n }\n let originNext = next;\n let vnodeHook;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(next || instance.vnode);\n }\n toggleRecurse(instance, false);\n if (next) {\n next.el = vnode.el;\n updateComponentPreRender(instance, next, optimized);\n } else {\n next = vnode;\n }\n if (bu) {\n invokeArrayFns(bu);\n }\n if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) {\n invokeVNodeHook(vnodeHook, parent, next, vnode);\n }\n if (isCompatEnabled(\"INSTANCE_EVENT_HOOKS\", instance)) {\n instance.emit(\"hook:beforeUpdate\");\n }\n toggleRecurse(instance, true);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `render`);\n }\n const nextTree = renderComponentRoot(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `render`);\n }\n const prevTree = instance.subTree;\n instance.subTree = nextTree;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `patch`);\n }\n patch(\n prevTree,\n nextTree,\n // parent may have changed if it's in a teleport\n hostParentNode(prevTree.el),\n // anchor may have changed if it's in a fragment\n getNextHostNode(prevTree),\n instance,\n parentSuspense,\n namespace\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `patch`);\n }\n next.el = nextTree.el;\n if (originNext === null) {\n updateHOCHostEl(instance, nextTree.el);\n }\n if (u) {\n queuePostRenderEffect(u, parentSuspense);\n }\n if (vnodeHook = next.props && next.props.onVnodeUpdated) {\n queuePostRenderEffect(\n () => invokeVNodeHook(vnodeHook, parent, next, vnode),\n parentSuspense\n );\n }\n if (isCompatEnabled(\"INSTANCE_EVENT_HOOKS\", instance)) {\n queuePostRenderEffect(\n () => instance.emit(\"hook:updated\"),\n parentSuspense\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(instance);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n }\n };\n const effect = instance.effect = new ReactiveEffect(\n componentUpdateFn,\n NOOP,\n () => queueJob(update),\n instance.scope\n // track it in component's effect scope\n );\n const update = instance.update = () => {\n if (effect.dirty) {\n effect.run();\n }\n };\n update.id = instance.uid;\n toggleRecurse(instance, true);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = instance.rtc ? (e) => invokeArrayFns(instance.rtc, e) : void 0;\n effect.onTrigger = instance.rtg ? (e) => invokeArrayFns(instance.rtg, e) : void 0;\n update.ownerInstance = instance;\n }\n update();\n };\n const updateComponentPreRender = (instance, nextVNode, optimized) => {\n nextVNode.component = instance;\n const prevProps = instance.vnode.props;\n instance.vnode = nextVNode;\n instance.next = null;\n updateProps(instance, nextVNode.props, prevProps, optimized);\n updateSlots(instance, nextVNode.children, optimized);\n pauseTracking();\n flushPreFlushCbs(instance);\n resetTracking();\n };\n const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized = false) => {\n const c1 = n1 && n1.children;\n const prevShapeFlag = n1 ? n1.shapeFlag : 0;\n const c2 = n2.children;\n const { patchFlag, shapeFlag } = n2;\n if (patchFlag > 0) {\n if (patchFlag & 128) {\n patchKeyedChildren(\n c1,\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n return;\n } else if (patchFlag & 256) {\n patchUnkeyedChildren(\n c1,\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n return;\n }\n }\n if (shapeFlag & 8) {\n if (prevShapeFlag & 16) {\n unmountChildren(c1, parentComponent, parentSuspense);\n }\n if (c2 !== c1) {\n hostSetElementText(container, c2);\n }\n } else {\n if (prevShapeFlag & 16) {\n if (shapeFlag & 16) {\n patchKeyedChildren(\n c1,\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n unmountChildren(c1, parentComponent, parentSuspense, true);\n }\n } else {\n if (prevShapeFlag & 8) {\n hostSetElementText(container, \"\");\n }\n if (shapeFlag & 16) {\n mountChildren(\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n }\n }\n };\n const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n c1 = c1 || EMPTY_ARR;\n c2 = c2 || EMPTY_ARR;\n const oldLength = c1.length;\n const newLength = c2.length;\n const commonLength = Math.min(oldLength, newLength);\n let i;\n for (i = 0; i < commonLength; i++) {\n const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n patch(\n c1[i],\n nextChild,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n if (oldLength > newLength) {\n unmountChildren(\n c1,\n parentComponent,\n parentSuspense,\n true,\n false,\n commonLength\n );\n } else {\n mountChildren(\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n commonLength\n );\n }\n };\n const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n let i = 0;\n const l2 = c2.length;\n let e1 = c1.length - 1;\n let e2 = l2 - 1;\n while (i <= e1 && i <= e2) {\n const n1 = c1[i];\n const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n if (isSameVNodeType(n1, n2)) {\n patch(\n n1,\n n2,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n break;\n }\n i++;\n }\n while (i <= e1 && i <= e2) {\n const n1 = c1[e1];\n const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]);\n if (isSameVNodeType(n1, n2)) {\n patch(\n n1,\n n2,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n break;\n }\n e1--;\n e2--;\n }\n if (i > e1) {\n if (i <= e2) {\n const nextPos = e2 + 1;\n const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor;\n while (i <= e2) {\n patch(\n null,\n c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]),\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n i++;\n }\n }\n } else if (i > e2) {\n while (i <= e1) {\n unmount(c1[i], parentComponent, parentSuspense, true);\n i++;\n }\n } else {\n const s1 = i;\n const s2 = i;\n const keyToNewIndexMap = /* @__PURE__ */ new Map();\n for (i = s2; i <= e2; i++) {\n const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n if (nextChild.key != null) {\n if (!!(process.env.NODE_ENV !== \"production\") && keyToNewIndexMap.has(nextChild.key)) {\n warn$1(\n `Duplicate keys found during update:`,\n JSON.stringify(nextChild.key),\n `Make sure keys are unique.`\n );\n }\n keyToNewIndexMap.set(nextChild.key, i);\n }\n }\n let j;\n let patched = 0;\n const toBePatched = e2 - s2 + 1;\n let moved = false;\n let maxNewIndexSoFar = 0;\n const newIndexToOldIndexMap = new Array(toBePatched);\n for (i = 0; i < toBePatched; i++)\n newIndexToOldIndexMap[i] = 0;\n for (i = s1; i <= e1; i++) {\n const prevChild = c1[i];\n if (patched >= toBePatched) {\n unmount(prevChild, parentComponent, parentSuspense, true);\n continue;\n }\n let newIndex;\n if (prevChild.key != null) {\n newIndex = keyToNewIndexMap.get(prevChild.key);\n } else {\n for (j = s2; j <= e2; j++) {\n if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) {\n newIndex = j;\n break;\n }\n }\n }\n if (newIndex === void 0) {\n unmount(prevChild, parentComponent, parentSuspense, true);\n } else {\n newIndexToOldIndexMap[newIndex - s2] = i + 1;\n if (newIndex >= maxNewIndexSoFar) {\n maxNewIndexSoFar = newIndex;\n } else {\n moved = true;\n }\n patch(\n prevChild,\n c2[newIndex],\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n patched++;\n }\n }\n const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : EMPTY_ARR;\n j = increasingNewIndexSequence.length - 1;\n for (i = toBePatched - 1; i >= 0; i--) {\n const nextIndex = s2 + i;\n const nextChild = c2[nextIndex];\n const anchor = nextIndex + 1 < l2 ? c2[nextIndex + 1].el : parentAnchor;\n if (newIndexToOldIndexMap[i] === 0) {\n patch(\n null,\n nextChild,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else if (moved) {\n if (j < 0 || i !== increasingNewIndexSequence[j]) {\n move(nextChild, container, anchor, 2);\n } else {\n j--;\n }\n }\n }\n }\n };\n const move = (vnode, container, anchor, moveType, parentSuspense = null) => {\n const { el, type, transition, children, shapeFlag } = vnode;\n if (shapeFlag & 6) {\n move(vnode.component.subTree, container, anchor, moveType);\n return;\n }\n if (shapeFlag & 128) {\n vnode.suspense.move(container, anchor, moveType);\n return;\n }\n if (shapeFlag & 64) {\n type.move(vnode, container, anchor, internals);\n return;\n }\n if (type === Fragment) {\n hostInsert(el, container, anchor);\n for (let i = 0; i < children.length; i++) {\n move(children[i], container, anchor, moveType);\n }\n hostInsert(vnode.anchor, container, anchor);\n return;\n }\n if (type === Static) {\n moveStaticNode(vnode, container, anchor);\n return;\n }\n const needTransition2 = moveType !== 2 && shapeFlag & 1 && transition;\n if (needTransition2) {\n if (moveType === 0) {\n transition.beforeEnter(el);\n hostInsert(el, container, anchor);\n queuePostRenderEffect(() => transition.enter(el), parentSuspense);\n } else {\n const { leave, delayLeave, afterLeave } = transition;\n const remove2 = () => hostInsert(el, container, anchor);\n const performLeave = () => {\n leave(el, () => {\n remove2();\n afterLeave && afterLeave();\n });\n };\n if (delayLeave) {\n delayLeave(el, remove2, performLeave);\n } else {\n performLeave();\n }\n }\n } else {\n hostInsert(el, container, anchor);\n }\n };\n const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {\n const {\n type,\n props,\n ref,\n children,\n dynamicChildren,\n shapeFlag,\n patchFlag,\n dirs\n } = vnode;\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode, true);\n }\n if (shapeFlag & 256) {\n parentComponent.ctx.deactivate(vnode);\n return;\n }\n const shouldInvokeDirs = shapeFlag & 1 && dirs;\n const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);\n let vnodeHook;\n if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n if (shapeFlag & 6) {\n unmountComponent(vnode.component, parentSuspense, doRemove);\n } else {\n if (shapeFlag & 128) {\n vnode.suspense.unmount(parentSuspense, doRemove);\n return;\n }\n if (shouldInvokeDirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeUnmount\");\n }\n if (shapeFlag & 64) {\n vnode.type.remove(\n vnode,\n parentComponent,\n parentSuspense,\n optimized,\n internals,\n doRemove\n );\n } else if (dynamicChildren && // #1153: fast path should not be taken for non-stable (v-for) fragments\n (type !== Fragment || patchFlag > 0 && patchFlag & 64)) {\n unmountChildren(\n dynamicChildren,\n parentComponent,\n parentSuspense,\n false,\n true\n );\n } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) {\n unmountChildren(children, parentComponent, parentSuspense);\n }\n if (doRemove) {\n remove(vnode);\n }\n }\n if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, \"unmounted\");\n }, parentSuspense);\n }\n };\n const remove = (vnode) => {\n const { type, el, anchor, transition } = vnode;\n if (type === Fragment) {\n if (!!(process.env.NODE_ENV !== \"production\") && vnode.patchFlag > 0 && vnode.patchFlag & 2048 && transition && !transition.persisted) {\n vnode.children.forEach((child) => {\n if (child.type === Comment) {\n hostRemove(child.el);\n } else {\n remove(child);\n }\n });\n } else {\n removeFragment(el, anchor);\n }\n return;\n }\n if (type === Static) {\n removeStaticNode(vnode);\n return;\n }\n const performRemove = () => {\n hostRemove(el);\n if (transition && !transition.persisted && transition.afterLeave) {\n transition.afterLeave();\n }\n };\n if (vnode.shapeFlag & 1 && transition && !transition.persisted) {\n const { leave, delayLeave } = transition;\n const performLeave = () => leave(el, performRemove);\n if (delayLeave) {\n delayLeave(vnode.el, performRemove, performLeave);\n } else {\n performLeave();\n }\n } else {\n performRemove();\n }\n };\n const removeFragment = (cur, end) => {\n let next;\n while (cur !== end) {\n next = hostNextSibling(cur);\n hostRemove(cur);\n cur = next;\n }\n hostRemove(end);\n };\n const unmountComponent = (instance, parentSuspense, doRemove) => {\n if (!!(process.env.NODE_ENV !== \"production\") && instance.type.__hmrId) {\n unregisterHMR(instance);\n }\n const { bum, scope, update, subTree, um } = instance;\n if (bum) {\n invokeArrayFns(bum);\n }\n if (isCompatEnabled(\"INSTANCE_EVENT_HOOKS\", instance)) {\n instance.emit(\"hook:beforeDestroy\");\n }\n scope.stop();\n if (update) {\n update.active = false;\n unmount(subTree, instance, parentSuspense, doRemove);\n }\n if (um) {\n queuePostRenderEffect(um, parentSuspense);\n }\n if (isCompatEnabled(\"INSTANCE_EVENT_HOOKS\", instance)) {\n queuePostRenderEffect(\n () => instance.emit(\"hook:destroyed\"),\n parentSuspense\n );\n }\n queuePostRenderEffect(() => {\n instance.isUnmounted = true;\n }, parentSuspense);\n if (parentSuspense && parentSuspense.pendingBranch && !parentSuspense.isUnmounted && instance.asyncDep && !instance.asyncResolved && instance.suspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0) {\n parentSuspense.resolve();\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentRemoved(instance);\n }\n };\n const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => {\n for (let i = start; i < children.length; i++) {\n unmount(children[i], parentComponent, parentSuspense, doRemove, optimized);\n }\n };\n const getNextHostNode = (vnode) => {\n if (vnode.shapeFlag & 6) {\n return getNextHostNode(vnode.component.subTree);\n }\n if (vnode.shapeFlag & 128) {\n return vnode.suspense.next();\n }\n return hostNextSibling(vnode.anchor || vnode.el);\n };\n let isFlushing = false;\n const render = (vnode, container, namespace) => {\n if (vnode == null) {\n if (container._vnode) {\n unmount(container._vnode, null, null, true);\n }\n } else {\n patch(\n container._vnode || null,\n vnode,\n container,\n null,\n null,\n null,\n namespace\n );\n }\n if (!isFlushing) {\n isFlushing = true;\n flushPreFlushCbs();\n flushPostFlushCbs();\n isFlushing = false;\n }\n container._vnode = vnode;\n };\n const internals = {\n p: patch,\n um: unmount,\n m: move,\n r: remove,\n mt: mountComponent,\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n n: getNextHostNode,\n o: options\n };\n let hydrate;\n let hydrateNode;\n if (createHydrationFns) {\n [hydrate, hydrateNode] = createHydrationFns(\n internals\n );\n }\n return {\n render,\n hydrate,\n createApp: createAppAPI(render, hydrate)\n };\n}\nfunction resolveChildrenNamespace({ type, props }, currentNamespace) {\n return currentNamespace === \"svg\" && type === \"foreignObject\" || currentNamespace === \"mathml\" && type === \"annotation-xml\" && props && props.encoding && props.encoding.includes(\"html\") ? void 0 : currentNamespace;\n}\nfunction toggleRecurse({ effect, update }, allowed) {\n effect.allowRecurse = update.allowRecurse = allowed;\n}\nfunction needTransition(parentSuspense, transition) {\n return (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted;\n}\nfunction traverseStaticChildren(n1, n2, shallow = false) {\n const ch1 = n1.children;\n const ch2 = n2.children;\n if (isArray(ch1) && isArray(ch2)) {\n for (let i = 0; i < ch1.length; i++) {\n const c1 = ch1[i];\n let c2 = ch2[i];\n if (c2.shapeFlag & 1 && !c2.dynamicChildren) {\n if (c2.patchFlag <= 0 || c2.patchFlag === 32) {\n c2 = ch2[i] = cloneIfMounted(ch2[i]);\n c2.el = c1.el;\n }\n if (!shallow)\n traverseStaticChildren(c1, c2);\n }\n if (c2.type === Text) {\n c2.el = c1.el;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && c2.type === Comment && !c2.el) {\n c2.el = c1.el;\n }\n }\n }\n}\nfunction getSequence(arr) {\n const p = arr.slice();\n const result = [0];\n let i, j, u, v, c;\n const len = arr.length;\n for (i = 0; i < len; i++) {\n const arrI = arr[i];\n if (arrI !== 0) {\n j = result[result.length - 1];\n if (arr[j] < arrI) {\n p[i] = j;\n result.push(i);\n continue;\n }\n u = 0;\n v = result.length - 1;\n while (u < v) {\n c = u + v >> 1;\n if (arr[result[c]] < arrI) {\n u = c + 1;\n } else {\n v = c;\n }\n }\n if (arrI < arr[result[u]]) {\n if (u > 0) {\n p[i] = result[u - 1];\n }\n result[u] = i;\n }\n }\n }\n u = result.length;\n v = result[u - 1];\n while (u-- > 0) {\n result[u] = v;\n v = p[v];\n }\n return result;\n}\nfunction locateNonHydratedAsyncRoot(instance) {\n const subComponent = instance.subTree.component;\n if (subComponent) {\n if (subComponent.asyncDep && !subComponent.asyncResolved) {\n return subComponent;\n } else {\n return locateNonHydratedAsyncRoot(subComponent);\n }\n }\n}\n\nconst isTeleport = (type) => type.__isTeleport;\nconst isTeleportDisabled = (props) => props && (props.disabled || props.disabled === \"\");\nconst isTargetSVG = (target) => typeof SVGElement !== \"undefined\" && target instanceof SVGElement;\nconst isTargetMathML = (target) => typeof MathMLElement === \"function\" && target instanceof MathMLElement;\nconst resolveTarget = (props, select) => {\n const targetSelector = props && props.to;\n if (isString(targetSelector)) {\n if (!select) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Current renderer does not support string target for Teleports. (missing querySelector renderer option)`\n );\n return null;\n } else {\n const target = select(targetSelector);\n if (!target) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Failed to locate Teleport target with selector \"${targetSelector}\". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`\n );\n }\n return target;\n }\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && !targetSelector && !isTeleportDisabled(props)) {\n warn$1(`Invalid Teleport target: ${targetSelector}`);\n }\n return targetSelector;\n }\n};\nconst TeleportImpl = {\n name: \"Teleport\",\n __isTeleport: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {\n const {\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n o: { insert, querySelector, createText, createComment }\n } = internals;\n const disabled = isTeleportDisabled(n2.props);\n let { shapeFlag, children, dynamicChildren } = n2;\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n optimized = false;\n dynamicChildren = null;\n }\n if (n1 == null) {\n const placeholder = n2.el = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport start\") : createText(\"\");\n const mainAnchor = n2.anchor = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport end\") : createText(\"\");\n insert(placeholder, container, anchor);\n insert(mainAnchor, container, anchor);\n const target = n2.target = resolveTarget(n2.props, querySelector);\n const targetAnchor = n2.targetAnchor = createText(\"\");\n if (target) {\n insert(targetAnchor, target);\n if (namespace === \"svg\" || isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace === \"mathml\" || isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && !disabled) {\n warn$1(\"Invalid Teleport target on mount:\", target, `(${typeof target})`);\n }\n const mount = (container2, anchor2) => {\n if (shapeFlag & 16) {\n mountChildren(\n children,\n container2,\n anchor2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n if (disabled) {\n mount(container, mainAnchor);\n } else if (target) {\n mount(target, targetAnchor);\n }\n } else {\n n2.el = n1.el;\n const mainAnchor = n2.anchor = n1.anchor;\n const target = n2.target = n1.target;\n const targetAnchor = n2.targetAnchor = n1.targetAnchor;\n const wasDisabled = isTeleportDisabled(n1.props);\n const currentContainer = wasDisabled ? container : target;\n const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;\n if (namespace === \"svg\" || isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace === \"mathml\" || isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n currentContainer,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n traverseStaticChildren(n1, n2, true);\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n currentContainer,\n currentAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n false\n );\n }\n if (disabled) {\n if (!wasDisabled) {\n moveTeleport(\n n2,\n container,\n mainAnchor,\n internals,\n 1\n );\n } else {\n if (n2.props && n1.props && n2.props.to !== n1.props.to) {\n n2.props.to = n1.props.to;\n }\n }\n } else {\n if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {\n const nextTarget = n2.target = resolveTarget(\n n2.props,\n querySelector\n );\n if (nextTarget) {\n moveTeleport(\n n2,\n nextTarget,\n null,\n internals,\n 0\n );\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Invalid Teleport target on update:\",\n target,\n `(${typeof target})`\n );\n }\n } else if (wasDisabled) {\n moveTeleport(\n n2,\n target,\n targetAnchor,\n internals,\n 1\n );\n }\n }\n }\n updateCssVars(n2);\n },\n remove(vnode, parentComponent, parentSuspense, optimized, { um: unmount, o: { remove: hostRemove } }, doRemove) {\n const { shapeFlag, children, anchor, targetAnchor, target, props } = vnode;\n if (target) {\n hostRemove(targetAnchor);\n }\n doRemove && hostRemove(anchor);\n if (shapeFlag & 16) {\n const shouldRemove = doRemove || !isTeleportDisabled(props);\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n unmount(\n child,\n parentComponent,\n parentSuspense,\n shouldRemove,\n !!child.dynamicChildren\n );\n }\n }\n },\n move: moveTeleport,\n hydrate: hydrateTeleport\n};\nfunction moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {\n if (moveType === 0) {\n insert(vnode.targetAnchor, container, parentAnchor);\n }\n const { el, anchor, shapeFlag, children, props } = vnode;\n const isReorder = moveType === 2;\n if (isReorder) {\n insert(el, container, parentAnchor);\n }\n if (!isReorder || isTeleportDisabled(props)) {\n if (shapeFlag & 16) {\n for (let i = 0; i < children.length; i++) {\n move(\n children[i],\n container,\n parentAnchor,\n 2\n );\n }\n }\n }\n if (isReorder) {\n insert(anchor, container, parentAnchor);\n }\n}\nfunction hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {\n o: { nextSibling, parentNode, querySelector }\n}, hydrateChildren) {\n const target = vnode.target = resolveTarget(\n vnode.props,\n querySelector\n );\n if (target) {\n const targetNode = target._lpa || target.firstChild;\n if (vnode.shapeFlag & 16) {\n if (isTeleportDisabled(vnode.props)) {\n vnode.anchor = hydrateChildren(\n nextSibling(node),\n vnode,\n parentNode(node),\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n vnode.targetAnchor = targetNode;\n } else {\n vnode.anchor = nextSibling(node);\n let targetAnchor = targetNode;\n while (targetAnchor) {\n targetAnchor = nextSibling(targetAnchor);\n if (targetAnchor && targetAnchor.nodeType === 8 && targetAnchor.data === \"teleport anchor\") {\n vnode.targetAnchor = targetAnchor;\n target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);\n break;\n }\n }\n hydrateChildren(\n targetNode,\n vnode,\n target,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n }\n updateCssVars(vnode);\n }\n return vnode.anchor && nextSibling(vnode.anchor);\n}\nconst Teleport = TeleportImpl;\nfunction updateCssVars(vnode) {\n const ctx = vnode.ctx;\n if (ctx && ctx.ut) {\n let node = vnode.children[0].el;\n while (node && node !== vnode.targetAnchor) {\n if (node.nodeType === 1)\n node.setAttribute(\"data-v-owner\", ctx.uid);\n node = node.nextSibling;\n }\n ctx.ut();\n }\n}\n\nconst normalizedAsyncComponentMap = /* @__PURE__ */ new WeakMap();\nfunction convertLegacyAsyncComponent(comp) {\n if (normalizedAsyncComponentMap.has(comp)) {\n return normalizedAsyncComponentMap.get(comp);\n }\n let resolve;\n let reject;\n const fallbackPromise = new Promise((r, rj) => {\n resolve = r, reject = rj;\n });\n const res = comp(resolve, reject);\n let converted;\n if (isPromise(res)) {\n converted = defineAsyncComponent(() => res);\n } else if (isObject(res) && !isVNode(res) && !isArray(res)) {\n converted = defineAsyncComponent({\n loader: () => res.component,\n loadingComponent: res.loading,\n errorComponent: res.error,\n delay: res.delay,\n timeout: res.timeout\n });\n } else if (res == null) {\n converted = defineAsyncComponent(() => fallbackPromise);\n } else {\n converted = comp;\n }\n normalizedAsyncComponentMap.set(comp, converted);\n return converted;\n}\n\nfunction convertLegacyComponent(comp, instance) {\n if (comp.__isBuiltIn) {\n return comp;\n }\n if (isFunction(comp) && comp.cid) {\n comp = comp.options;\n }\n if (isFunction(comp) && checkCompatEnabled(\"COMPONENT_ASYNC\", instance, comp)) {\n return convertLegacyAsyncComponent(comp);\n }\n if (isObject(comp) && comp.functional && softAssertCompatEnabled(\n \"COMPONENT_FUNCTIONAL\",\n instance,\n comp\n )) {\n return convertLegacyFunctionalComponent(comp);\n }\n return comp;\n}\n\nconst Fragment = Symbol.for(\"v-fgt\");\nconst Text = Symbol.for(\"v-txt\");\nconst Comment = Symbol.for(\"v-cmt\");\nconst Static = Symbol.for(\"v-stc\");\nconst blockStack = [];\nlet currentBlock = null;\nfunction openBlock(disableTracking = false) {\n blockStack.push(currentBlock = disableTracking ? null : []);\n}\nfunction closeBlock() {\n blockStack.pop();\n currentBlock = blockStack[blockStack.length - 1] || null;\n}\nlet isBlockTreeEnabled = 1;\nfunction setBlockTracking(value) {\n isBlockTreeEnabled += value;\n}\nfunction setupBlock(vnode) {\n vnode.dynamicChildren = isBlockTreeEnabled > 0 ? currentBlock || EMPTY_ARR : null;\n closeBlock();\n if (isBlockTreeEnabled > 0 && currentBlock) {\n currentBlock.push(vnode);\n }\n return vnode;\n}\nfunction createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) {\n return setupBlock(\n createBaseVNode(\n type,\n props,\n children,\n patchFlag,\n dynamicProps,\n shapeFlag,\n true\n )\n );\n}\nfunction createBlock(type, props, children, patchFlag, dynamicProps) {\n return setupBlock(\n createVNode(\n type,\n props,\n children,\n patchFlag,\n dynamicProps,\n true\n )\n );\n}\nfunction isVNode(value) {\n return value ? value.__v_isVNode === true : false;\n}\nfunction isSameVNodeType(n1, n2) {\n if (!!(process.env.NODE_ENV !== \"production\") && n2.shapeFlag & 6 && hmrDirtyComponents.has(n2.type)) {\n n1.shapeFlag &= ~256;\n n2.shapeFlag &= ~512;\n return false;\n }\n return n1.type === n2.type && n1.key === n2.key;\n}\nlet vnodeArgsTransformer;\nfunction transformVNodeArgs(transformer) {\n vnodeArgsTransformer = transformer;\n}\nconst createVNodeWithArgsTransform = (...args) => {\n return _createVNode(\n ...vnodeArgsTransformer ? vnodeArgsTransformer(args, currentRenderingInstance) : args\n );\n};\nconst InternalObjectKey = `__vInternal`;\nconst normalizeKey = ({ key }) => key != null ? key : null;\nconst normalizeRef = ({\n ref,\n ref_key,\n ref_for\n}) => {\n if (typeof ref === \"number\") {\n ref = \"\" + ref;\n }\n return ref != null ? isString(ref) || isRef(ref) || isFunction(ref) ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for } : ref : null;\n};\nfunction createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) {\n const vnode = {\n __v_isVNode: true,\n __v_skip: true,\n type,\n props,\n key: props && normalizeKey(props),\n ref: props && normalizeRef(props),\n scopeId: currentScopeId,\n slotScopeIds: null,\n children,\n component: null,\n suspense: null,\n ssContent: null,\n ssFallback: null,\n dirs: null,\n transition: null,\n el: null,\n anchor: null,\n target: null,\n targetAnchor: null,\n staticCount: 0,\n shapeFlag,\n patchFlag,\n dynamicProps,\n dynamicChildren: null,\n appContext: null,\n ctx: currentRenderingInstance\n };\n if (needFullChildrenNormalization) {\n normalizeChildren(vnode, children);\n if (shapeFlag & 128) {\n type.normalize(vnode);\n }\n } else if (children) {\n vnode.shapeFlag |= isString(children) ? 8 : 16;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && vnode.key !== vnode.key) {\n warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);\n }\n if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself\n !isBlockNode && // has current parent block\n currentBlock && // presence of a patch flag indicates this node needs patching on updates.\n // component nodes also should always be patched, because even if the\n // component doesn't need to update, it needs to persist the instance on to\n // the next vnode so that it can be properly unmounted later.\n (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the\n // vnode should not be considered dynamic due to handler caching.\n vnode.patchFlag !== 32) {\n currentBlock.push(vnode);\n }\n {\n convertLegacyVModelProps(vnode);\n defineLegacyVNodeProperties(vnode);\n }\n return vnode;\n}\nconst createVNode = !!(process.env.NODE_ENV !== \"production\") ? createVNodeWithArgsTransform : _createVNode;\nfunction _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {\n if (!type || type === NULL_DYNAMIC_COMPONENT) {\n if (!!(process.env.NODE_ENV !== \"production\") && !type) {\n warn$1(`Invalid vnode type when creating vnode: ${type}.`);\n }\n type = Comment;\n }\n if (isVNode(type)) {\n const cloned = cloneVNode(\n type,\n props,\n true\n /* mergeRef: true */\n );\n if (children) {\n normalizeChildren(cloned, children);\n }\n if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {\n if (cloned.shapeFlag & 6) {\n currentBlock[currentBlock.indexOf(type)] = cloned;\n } else {\n currentBlock.push(cloned);\n }\n }\n cloned.patchFlag |= -2;\n return cloned;\n }\n if (isClassComponent(type)) {\n type = type.__vccOpts;\n }\n {\n type = convertLegacyComponent(type, currentRenderingInstance);\n }\n if (props) {\n props = guardReactiveProps(props);\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (isObject(style)) {\n if (isProxy(style) && !isArray(style)) {\n style = extend({}, style);\n }\n props.style = normalizeStyle(style);\n }\n }\n const shapeFlag = isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject(type) ? 4 : isFunction(type) ? 2 : 0;\n if (!!(process.env.NODE_ENV !== \"production\") && shapeFlag & 4 && isProxy(type)) {\n type = toRaw(type);\n warn$1(\n `Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with \\`markRaw\\` or using \\`shallowRef\\` instead of \\`ref\\`.`,\n `\nComponent that was made reactive: `,\n type\n );\n }\n return createBaseVNode(\n type,\n props,\n children,\n patchFlag,\n dynamicProps,\n shapeFlag,\n isBlockNode,\n true\n );\n}\nfunction guardReactiveProps(props) {\n if (!props)\n return null;\n return isProxy(props) || InternalObjectKey in props ? extend({}, props) : props;\n}\nfunction cloneVNode(vnode, extraProps, mergeRef = false) {\n const { props, ref, patchFlag, children } = vnode;\n const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;\n const cloned = {\n __v_isVNode: true,\n __v_skip: true,\n type: vnode.type,\n props: mergedProps,\n key: mergedProps && normalizeKey(mergedProps),\n ref: extraProps && extraProps.ref ? (\n // #2078 in the case of <component :is=\"vnode\" ref=\"extra\"/>\n // if the vnode itself already has a ref, cloneVNode will need to merge\n // the refs so the single vnode can be set on multiple refs\n mergeRef && ref ? isArray(ref) ? ref.concat(normalizeRef(extraProps)) : [ref, normalizeRef(extraProps)] : normalizeRef(extraProps)\n ) : ref,\n scopeId: vnode.scopeId,\n slotScopeIds: vnode.slotScopeIds,\n children: !!(process.env.NODE_ENV !== \"production\") && patchFlag === -1 && isArray(children) ? children.map(deepCloneVNode) : children,\n target: vnode.target,\n targetAnchor: vnode.targetAnchor,\n staticCount: vnode.staticCount,\n shapeFlag: vnode.shapeFlag,\n // if the vnode is cloned with extra props, we can no longer assume its\n // existing patch flag to be reliable and need to add the FULL_PROPS flag.\n // note: preserve flag for fragments since they use the flag for children\n // fast paths only.\n patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag,\n dynamicProps: vnode.dynamicProps,\n dynamicChildren: vnode.dynamicChildren,\n appContext: vnode.appContext,\n dirs: vnode.dirs,\n transition: vnode.transition,\n // These should technically only be non-null on mounted VNodes. However,\n // they *should* be copied for kept-alive vnodes. So we just always copy\n // them since them being non-null during a mount doesn't affect the logic as\n // they will simply be overwritten.\n component: vnode.component,\n suspense: vnode.suspense,\n ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),\n ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),\n el: vnode.el,\n anchor: vnode.anchor,\n ctx: vnode.ctx,\n ce: vnode.ce\n };\n {\n defineLegacyVNodeProperties(cloned);\n }\n return cloned;\n}\nfunction deepCloneVNode(vnode) {\n const cloned = cloneVNode(vnode);\n if (isArray(vnode.children)) {\n cloned.children = vnode.children.map(deepCloneVNode);\n }\n return cloned;\n}\nfunction createTextVNode(text = \" \", flag = 0) {\n return createVNode(Text, null, text, flag);\n}\nfunction createStaticVNode(content, numberOfNodes) {\n const vnode = createVNode(Static, null, content);\n vnode.staticCount = numberOfNodes;\n return vnode;\n}\nfunction createCommentVNode(text = \"\", asBlock = false) {\n return asBlock ? (openBlock(), createBlock(Comment, null, text)) : createVNode(Comment, null, text);\n}\nfunction normalizeVNode(child) {\n if (child == null || typeof child === \"boolean\") {\n return createVNode(Comment);\n } else if (isArray(child)) {\n return createVNode(\n Fragment,\n null,\n // #3666, avoid reference pollution when reusing vnode\n child.slice()\n );\n } else if (typeof child === \"object\") {\n return cloneIfMounted(child);\n } else {\n return createVNode(Text, null, String(child));\n }\n}\nfunction cloneIfMounted(child) {\n return child.el === null && child.patchFlag !== -1 || child.memo ? child : cloneVNode(child);\n}\nfunction normalizeChildren(vnode, children) {\n let type = 0;\n const { shapeFlag } = vnode;\n if (children == null) {\n children = null;\n } else if (isArray(children)) {\n type = 16;\n } else if (typeof children === \"object\") {\n if (shapeFlag & (1 | 64)) {\n const slot = children.default;\n if (slot) {\n slot._c && (slot._d = false);\n normalizeChildren(vnode, slot());\n slot._c && (slot._d = true);\n }\n return;\n } else {\n type = 32;\n const slotFlag = children._;\n if (!slotFlag && !(InternalObjectKey in children)) {\n children._ctx = currentRenderingInstance;\n } else if (slotFlag === 3 && currentRenderingInstance) {\n if (currentRenderingInstance.slots._ === 1) {\n children._ = 1;\n } else {\n children._ = 2;\n vnode.patchFlag |= 1024;\n }\n }\n }\n } else if (isFunction(children)) {\n children = { default: children, _ctx: currentRenderingInstance };\n type = 32;\n } else {\n children = String(children);\n if (shapeFlag & 64) {\n type = 16;\n children = [createTextVNode(children)];\n } else {\n type = 8;\n }\n }\n vnode.children = children;\n vnode.shapeFlag |= type;\n}\nfunction mergeProps(...args) {\n const ret = {};\n for (let i = 0; i < args.length; i++) {\n const toMerge = args[i];\n for (const key in toMerge) {\n if (key === \"class\") {\n if (ret.class !== toMerge.class) {\n ret.class = normalizeClass([ret.class, toMerge.class]);\n }\n } else if (key === \"style\") {\n ret.style = normalizeStyle([ret.style, toMerge.style]);\n } else if (isOn(key)) {\n const existing = ret[key];\n const incoming = toMerge[key];\n if (incoming && existing !== incoming && !(isArray(existing) && existing.includes(incoming))) {\n ret[key] = existing ? [].concat(existing, incoming) : incoming;\n }\n } else if (key !== \"\") {\n ret[key] = toMerge[key];\n }\n }\n }\n return ret;\n}\nfunction invokeVNodeHook(hook, instance, vnode, prevVNode = null) {\n callWithAsyncErrorHandling(hook, instance, 7, [\n vnode,\n prevVNode\n ]);\n}\n\nconst emptyAppContext = createAppContext();\nlet uid = 0;\nfunction createComponentInstance(vnode, parent, suspense) {\n const type = vnode.type;\n const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;\n const instance = {\n uid: uid++,\n vnode,\n type,\n parent,\n appContext,\n root: null,\n // to be immediately set\n next: null,\n subTree: null,\n // will be set synchronously right after creation\n effect: null,\n update: null,\n // will be set synchronously right after creation\n scope: new EffectScope(\n true\n /* detached */\n ),\n render: null,\n proxy: null,\n exposed: null,\n exposeProxy: null,\n withProxy: null,\n provides: parent ? parent.provides : Object.create(appContext.provides),\n accessCache: null,\n renderCache: [],\n // local resolved assets\n components: null,\n directives: null,\n // resolved props and emits options\n propsOptions: normalizePropsOptions(type, appContext),\n emitsOptions: normalizeEmitsOptions(type, appContext),\n // emit\n emit: null,\n // to be set immediately\n emitted: null,\n // props default value\n propsDefaults: EMPTY_OBJ,\n // inheritAttrs\n inheritAttrs: type.inheritAttrs,\n // state\n ctx: EMPTY_OBJ,\n data: EMPTY_OBJ,\n props: EMPTY_OBJ,\n attrs: EMPTY_OBJ,\n slots: EMPTY_OBJ,\n refs: EMPTY_OBJ,\n setupState: EMPTY_OBJ,\n setupContext: null,\n attrsProxy: null,\n slotsProxy: null,\n // suspense related\n suspense,\n suspenseId: suspense ? suspense.pendingId : 0,\n asyncDep: null,\n asyncResolved: false,\n // lifecycle hooks\n // not using enums here because it results in computed properties\n isMounted: false,\n isUnmounted: false,\n isDeactivated: false,\n bc: null,\n c: null,\n bm: null,\n m: null,\n bu: null,\n u: null,\n um: null,\n bum: null,\n da: null,\n a: null,\n rtg: null,\n rtc: null,\n ec: null,\n sp: null\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n instance.ctx = createDevRenderContext(instance);\n } else {\n instance.ctx = { _: instance };\n }\n instance.root = parent ? parent.root : instance;\n instance.emit = emit.bind(null, instance);\n if (vnode.ce) {\n vnode.ce(instance);\n }\n return instance;\n}\nlet currentInstance = null;\nconst getCurrentInstance = () => currentInstance || currentRenderingInstance;\nlet internalSetCurrentInstance;\nlet setInSSRSetupState;\n{\n const g = getGlobalThis();\n const registerGlobalSetter = (key, setter) => {\n let setters;\n if (!(setters = g[key]))\n setters = g[key] = [];\n setters.push(setter);\n return (v) => {\n if (setters.length > 1)\n setters.forEach((set) => set(v));\n else\n setters[0](v);\n };\n };\n internalSetCurrentInstance = registerGlobalSetter(\n `__VUE_INSTANCE_SETTERS__`,\n (v) => currentInstance = v\n );\n setInSSRSetupState = registerGlobalSetter(\n `__VUE_SSR_SETTERS__`,\n (v) => isInSSRComponentSetup = v\n );\n}\nconst setCurrentInstance = (instance) => {\n const prev = currentInstance;\n internalSetCurrentInstance(instance);\n instance.scope.on();\n return () => {\n instance.scope.off();\n internalSetCurrentInstance(prev);\n };\n};\nconst unsetCurrentInstance = () => {\n currentInstance && currentInstance.scope.off();\n internalSetCurrentInstance(null);\n};\nconst isBuiltInTag = /* @__PURE__ */ makeMap(\"slot,component\");\nfunction validateComponentName(name, config) {\n const appIsNativeTag = config.isNativeTag || NO;\n if (isBuiltInTag(name) || appIsNativeTag(name)) {\n warn$1(\n \"Do not use built-in or reserved HTML elements as component id: \" + name\n );\n }\n}\nfunction isStatefulComponent(instance) {\n return instance.vnode.shapeFlag & 4;\n}\nlet isInSSRComponentSetup = false;\nfunction setupComponent(instance, isSSR = false) {\n isSSR && setInSSRSetupState(isSSR);\n const { props, children } = instance.vnode;\n const isStateful = isStatefulComponent(instance);\n initProps(instance, props, isStateful, isSSR);\n initSlots(instance, children);\n const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;\n isSSR && setInSSRSetupState(false);\n return setupResult;\n}\nfunction setupStatefulComponent(instance, isSSR) {\n var _a;\n const Component = instance.type;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (Component.name) {\n validateComponentName(Component.name, instance.appContext.config);\n }\n if (Component.components) {\n const names = Object.keys(Component.components);\n for (let i = 0; i < names.length; i++) {\n validateComponentName(names[i], instance.appContext.config);\n }\n }\n if (Component.directives) {\n const names = Object.keys(Component.directives);\n for (let i = 0; i < names.length; i++) {\n validateDirectiveName(names[i]);\n }\n }\n if (Component.compilerOptions && isRuntimeOnly()) {\n warn$1(\n `\"compilerOptions\" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.`\n );\n }\n }\n instance.accessCache = /* @__PURE__ */ Object.create(null);\n instance.proxy = markRaw(new Proxy(instance.ctx, PublicInstanceProxyHandlers));\n if (!!(process.env.NODE_ENV !== \"production\")) {\n exposePropsOnRenderContext(instance);\n }\n const { setup } = Component;\n if (setup) {\n const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;\n const reset = setCurrentInstance(instance);\n pauseTracking();\n const setupResult = callWithErrorHandling(\n setup,\n instance,\n 0,\n [\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(instance.props) : instance.props,\n setupContext\n ]\n );\n resetTracking();\n reset();\n if (isPromise(setupResult)) {\n setupResult.then(unsetCurrentInstance, unsetCurrentInstance);\n if (isSSR) {\n return setupResult.then((resolvedResult) => {\n handleSetupResult(instance, resolvedResult, isSSR);\n }).catch((e) => {\n handleError(e, instance, 0);\n });\n } else {\n instance.asyncDep = setupResult;\n if (!!(process.env.NODE_ENV !== \"production\") && !instance.suspense) {\n const name = (_a = Component.name) != null ? _a : \"Anonymous\";\n warn$1(\n `Component <${name}>: setup function returned a promise, but no <Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.`\n );\n }\n }\n } else {\n handleSetupResult(instance, setupResult, isSSR);\n }\n } else {\n finishComponentSetup(instance, isSSR);\n }\n}\nfunction handleSetupResult(instance, setupResult, isSSR) {\n if (isFunction(setupResult)) {\n if (instance.type.__ssrInlineRender) {\n instance.ssrRender = setupResult;\n } else {\n instance.render = setupResult;\n }\n } else if (isObject(setupResult)) {\n if (!!(process.env.NODE_ENV !== \"production\") && isVNode(setupResult)) {\n warn$1(\n `setup() should not return VNodes directly - return a render function instead.`\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.devtoolsRawSetupState = setupResult;\n }\n instance.setupState = proxyRefs(setupResult);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n exposeSetupStateOnRenderContext(instance);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupResult !== void 0) {\n warn$1(\n `setup() should return an object. Received: ${setupResult === null ? \"null\" : typeof setupResult}`\n );\n }\n finishComponentSetup(instance, isSSR);\n}\nlet compile;\nlet installWithProxy;\nfunction registerRuntimeCompiler(_compile) {\n compile = _compile;\n installWithProxy = (i) => {\n if (i.render._rc) {\n i.withProxy = new Proxy(i.ctx, RuntimeCompiledPublicInstanceProxyHandlers);\n }\n };\n}\nconst isRuntimeOnly = () => !compile;\nfunction finishComponentSetup(instance, isSSR, skipOptions) {\n const Component = instance.type;\n {\n convertLegacyRenderFn(instance);\n if (!!(process.env.NODE_ENV !== \"production\") && Component.compatConfig) {\n validateCompatConfig(Component.compatConfig);\n }\n }\n if (!instance.render) {\n if (!isSSR && compile && !Component.render) {\n const template = instance.vnode.props && instance.vnode.props[\"inline-template\"] || Component.template || resolveMergedOptions(instance).template;\n if (template) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `compile`);\n }\n const { isCustomElement, compilerOptions } = instance.appContext.config;\n const { delimiters, compilerOptions: componentCompilerOptions } = Component;\n const finalCompilerOptions = extend(\n extend(\n {\n isCustomElement,\n delimiters\n },\n compilerOptions\n ),\n componentCompilerOptions\n );\n {\n finalCompilerOptions.compatConfig = Object.create(globalCompatConfig);\n if (Component.compatConfig) {\n extend(finalCompilerOptions.compatConfig, Component.compatConfig);\n }\n }\n Component.render = compile(template, finalCompilerOptions);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `compile`);\n }\n }\n }\n instance.render = Component.render || NOOP;\n if (installWithProxy) {\n installWithProxy(instance);\n }\n }\n if (__VUE_OPTIONS_API__ && !skipOptions) {\n const reset = setCurrentInstance(instance);\n pauseTracking();\n try {\n applyOptions(instance);\n } finally {\n resetTracking();\n reset();\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !Component.render && instance.render === NOOP && !isSSR) {\n if (!compile && Component.template) {\n warn$1(\n `Component provided template option but runtime compilation is not supported in this build of Vue.` + (` Configure your bundler to alias \"vue\" to \"vue/dist/vue.esm-bundler.js\".` )\n );\n } else {\n warn$1(`Component is missing template or render function.`);\n }\n }\n}\nfunction getAttrsProxy(instance) {\n return instance.attrsProxy || (instance.attrsProxy = new Proxy(\n instance.attrs,\n !!(process.env.NODE_ENV !== \"production\") ? {\n get(target, key) {\n markAttrsAccessed();\n track(instance, \"get\", \"$attrs\");\n return target[key];\n },\n set() {\n warn$1(`setupContext.attrs is readonly.`);\n return false;\n },\n deleteProperty() {\n warn$1(`setupContext.attrs is readonly.`);\n return false;\n }\n } : {\n get(target, key) {\n track(instance, \"get\", \"$attrs\");\n return target[key];\n }\n }\n ));\n}\nfunction getSlotsProxy(instance) {\n return instance.slotsProxy || (instance.slotsProxy = new Proxy(instance.slots, {\n get(target, key) {\n track(instance, \"get\", \"$slots\");\n return target[key];\n }\n }));\n}\nfunction createSetupContext(instance) {\n const expose = (exposed) => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (instance.exposed) {\n warn$1(`expose() should be called only once per setup().`);\n }\n if (exposed != null) {\n let exposedType = typeof exposed;\n if (exposedType === \"object\") {\n if (isArray(exposed)) {\n exposedType = \"array\";\n } else if (isRef(exposed)) {\n exposedType = \"ref\";\n }\n }\n if (exposedType !== \"object\") {\n warn$1(\n `expose() should be passed a plain object, received ${exposedType}.`\n );\n }\n }\n }\n instance.exposed = exposed || {};\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n return Object.freeze({\n get attrs() {\n return getAttrsProxy(instance);\n },\n get slots() {\n return getSlotsProxy(instance);\n },\n get emit() {\n return (event, ...args) => instance.emit(event, ...args);\n },\n expose\n });\n } else {\n return {\n get attrs() {\n return getAttrsProxy(instance);\n },\n slots: instance.slots,\n emit: instance.emit,\n expose\n };\n }\n}\nfunction getExposeProxy(instance) {\n if (instance.exposed) {\n return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {\n get(target, key) {\n if (key in target) {\n return target[key];\n } else if (key in publicPropertiesMap) {\n return publicPropertiesMap[key](instance);\n }\n },\n has(target, key) {\n return key in target || key in publicPropertiesMap;\n }\n }));\n }\n}\nconst classifyRE = /(?:^|[-_])(\\w)/g;\nconst classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, \"\");\nfunction getComponentName(Component, includeInferred = true) {\n return isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;\n}\nfunction formatComponentName(instance, Component, isRoot = false) {\n let name = getComponentName(Component);\n if (!name && Component.__file) {\n const match = Component.__file.match(/([^/\\\\]+)\\.\\w+$/);\n if (match) {\n name = match[1];\n }\n }\n if (!name && instance && instance.parent) {\n const inferFromRegistry = (registry) => {\n for (const key in registry) {\n if (registry[key] === Component) {\n return key;\n }\n }\n };\n name = inferFromRegistry(\n instance.components || instance.parent.type.components\n ) || inferFromRegistry(instance.appContext.components);\n }\n return name ? classify(name) : isRoot ? `App` : `Anonymous`;\n}\nfunction isClassComponent(value) {\n return isFunction(value) && \"__vccOpts\" in value;\n}\n\nconst computed = (getterOrOptions, debugOptions) => {\n return computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);\n};\n\nfunction useModel(props, name, options = EMPTY_OBJ) {\n const i = getCurrentInstance();\n if (!!(process.env.NODE_ENV !== \"production\") && !i) {\n warn$1(`useModel() called without active instance.`);\n return ref();\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !i.propsOptions[0][name]) {\n warn$1(`useModel() called with prop \"${name}\" which is not declared.`);\n return ref();\n }\n const camelizedName = camelize(name);\n const hyphenatedName = hyphenate(name);\n const res = customRef((track, trigger) => {\n let localValue;\n watchSyncEffect(() => {\n const propValue = props[name];\n if (hasChanged(localValue, propValue)) {\n localValue = propValue;\n trigger();\n }\n });\n return {\n get() {\n track();\n return options.get ? options.get(localValue) : localValue;\n },\n set(value) {\n const rawProps = i.vnode.props;\n if (!(rawProps && // check if parent has passed v-model\n (name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps)) && hasChanged(value, localValue)) {\n localValue = value;\n trigger();\n }\n i.emit(`update:${name}`, options.set ? options.set(value) : value);\n }\n };\n });\n const modifierKey = name === \"modelValue\" ? \"modelModifiers\" : `${name}Modifiers`;\n res[Symbol.iterator] = () => {\n let i2 = 0;\n return {\n next() {\n if (i2 < 2) {\n return { value: i2++ ? props[modifierKey] || {} : res, done: false };\n } else {\n return { done: true };\n }\n }\n };\n };\n return res;\n}\n\nfunction h(type, propsOrChildren, children) {\n const l = arguments.length;\n if (l === 2) {\n if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {\n if (isVNode(propsOrChildren)) {\n return createVNode(type, null, [propsOrChildren]);\n }\n return createVNode(type, propsOrChildren);\n } else {\n return createVNode(type, null, propsOrChildren);\n }\n } else {\n if (l > 3) {\n children = Array.prototype.slice.call(arguments, 2);\n } else if (l === 3 && isVNode(children)) {\n children = [children];\n }\n return createVNode(type, propsOrChildren, children);\n }\n}\n\nfunction initCustomFormatter() {\n if (!!!(process.env.NODE_ENV !== \"production\") || typeof window === \"undefined\") {\n return;\n }\n const vueStyle = { style: \"color:#3ba776\" };\n const numberStyle = { style: \"color:#1677ff\" };\n const stringStyle = { style: \"color:#f5222d\" };\n const keywordStyle = { style: \"color:#eb2f96\" };\n const formatter = {\n header(obj) {\n if (!isObject(obj)) {\n return null;\n }\n if (obj.__isVue) {\n return [\"div\", vueStyle, `VueInstance`];\n } else if (isRef(obj)) {\n return [\n \"div\",\n {},\n [\"span\", vueStyle, genRefFlag(obj)],\n \"<\",\n formatValue(obj.value),\n `>`\n ];\n } else if (isReactive(obj)) {\n return [\n \"div\",\n {},\n [\"span\", vueStyle, isShallow(obj) ? \"ShallowReactive\" : \"Reactive\"],\n \"<\",\n formatValue(obj),\n `>${isReadonly(obj) ? ` (readonly)` : ``}`\n ];\n } else if (isReadonly(obj)) {\n return [\n \"div\",\n {},\n [\"span\", vueStyle, isShallow(obj) ? \"ShallowReadonly\" : \"Readonly\"],\n \"<\",\n formatValue(obj),\n \">\"\n ];\n }\n return null;\n },\n hasBody(obj) {\n return obj && obj.__isVue;\n },\n body(obj) {\n if (obj && obj.__isVue) {\n return [\n \"div\",\n {},\n ...formatInstance(obj.$)\n ];\n }\n }\n };\n function formatInstance(instance) {\n const blocks = [];\n if (instance.type.props && instance.props) {\n blocks.push(createInstanceBlock(\"props\", toRaw(instance.props)));\n }\n if (instance.setupState !== EMPTY_OBJ) {\n blocks.push(createInstanceBlock(\"setup\", instance.setupState));\n }\n if (instance.data !== EMPTY_OBJ) {\n blocks.push(createInstanceBlock(\"data\", toRaw(instance.data)));\n }\n const computed = extractKeys(instance, \"computed\");\n if (computed) {\n blocks.push(createInstanceBlock(\"computed\", computed));\n }\n const injected = extractKeys(instance, \"inject\");\n if (injected) {\n blocks.push(createInstanceBlock(\"injected\", injected));\n }\n blocks.push([\n \"div\",\n {},\n [\n \"span\",\n {\n style: keywordStyle.style + \";opacity:0.66\"\n },\n \"$ (internal): \"\n ],\n [\"object\", { object: instance }]\n ]);\n return blocks;\n }\n function createInstanceBlock(type, target) {\n target = extend({}, target);\n if (!Object.keys(target).length) {\n return [\"span\", {}];\n }\n return [\n \"div\",\n { style: \"line-height:1.25em;margin-bottom:0.6em\" },\n [\n \"div\",\n {\n style: \"color:#476582\"\n },\n type\n ],\n [\n \"div\",\n {\n style: \"padding-left:1.25em\"\n },\n ...Object.keys(target).map((key) => {\n return [\n \"div\",\n {},\n [\"span\", keywordStyle, key + \": \"],\n formatValue(target[key], false)\n ];\n })\n ]\n ];\n }\n function formatValue(v, asRaw = true) {\n if (typeof v === \"number\") {\n return [\"span\", numberStyle, v];\n } else if (typeof v === \"string\") {\n return [\"span\", stringStyle, JSON.stringify(v)];\n } else if (typeof v === \"boolean\") {\n return [\"span\", keywordStyle, v];\n } else if (isObject(v)) {\n return [\"object\", { object: asRaw ? toRaw(v) : v }];\n } else {\n return [\"span\", stringStyle, String(v)];\n }\n }\n function extractKeys(instance, type) {\n const Comp = instance.type;\n if (isFunction(Comp)) {\n return;\n }\n const extracted = {};\n for (const key in instance.ctx) {\n if (isKeyOfType(Comp, key, type)) {\n extracted[key] = instance.ctx[key];\n }\n }\n return extracted;\n }\n function isKeyOfType(Comp, key, type) {\n const opts = Comp[type];\n if (isArray(opts) && opts.includes(key) || isObject(opts) && key in opts) {\n return true;\n }\n if (Comp.extends && isKeyOfType(Comp.extends, key, type)) {\n return true;\n }\n if (Comp.mixins && Comp.mixins.some((m) => isKeyOfType(m, key, type))) {\n return true;\n }\n }\n function genRefFlag(v) {\n if (isShallow(v)) {\n return `ShallowRef`;\n }\n if (v.effect) {\n return `ComputedRef`;\n }\n return `Ref`;\n }\n if (window.devtoolsFormatters) {\n window.devtoolsFormatters.push(formatter);\n } else {\n window.devtoolsFormatters = [formatter];\n }\n}\n\nfunction withMemo(memo, render, cache, index) {\n const cached = cache[index];\n if (cached && isMemoSame(cached, memo)) {\n return cached;\n }\n const ret = render();\n ret.memo = memo.slice();\n return cache[index] = ret;\n}\nfunction isMemoSame(cached, memo) {\n const prev = cached.memo;\n if (prev.length != memo.length) {\n return false;\n }\n for (let i = 0; i < prev.length; i++) {\n if (hasChanged(prev[i], memo[i])) {\n return false;\n }\n }\n if (isBlockTreeEnabled > 0 && currentBlock) {\n currentBlock.push(cached);\n }\n return true;\n}\n\nconst version = \"3.4.15\";\nconst warn = !!(process.env.NODE_ENV !== \"production\") ? warn$1 : NOOP;\nconst ErrorTypeStrings = ErrorTypeStrings$1 ;\nconst devtools = !!(process.env.NODE_ENV !== \"production\") || true ? devtools$1 : void 0;\nconst setDevtoolsHook = !!(process.env.NODE_ENV !== \"production\") || true ? setDevtoolsHook$1 : NOOP;\nconst _ssrUtils = {\n createComponentInstance,\n setupComponent,\n renderComponentRoot,\n setCurrentRenderingInstance,\n isVNode: isVNode,\n normalizeVNode\n};\nconst ssrUtils = _ssrUtils ;\nconst resolveFilter = resolveFilter$1 ;\nconst _compatUtils = {\n warnDeprecation,\n createCompatVue: createCompatVue$1,\n isCompatEnabled,\n checkCompatEnabled,\n softAssertCompatEnabled\n};\nconst compatUtils = _compatUtils ;\nconst DeprecationTypes = DeprecationTypes$1 ;\n\nconst svgNS = \"http://www.w3.org/2000/svg\";\nconst mathmlNS = \"http://www.w3.org/1998/Math/MathML\";\nconst doc = typeof document !== \"undefined\" ? document : null;\nconst templateContainer = doc && /* @__PURE__ */ doc.createElement(\"template\");\nconst nodeOps = {\n insert: (child, parent, anchor) => {\n parent.insertBefore(child, anchor || null);\n },\n remove: (child) => {\n const parent = child.parentNode;\n if (parent) {\n parent.removeChild(child);\n }\n },\n createElement: (tag, namespace, is, props) => {\n const el = namespace === \"svg\" ? doc.createElementNS(svgNS, tag) : namespace === \"mathml\" ? doc.createElementNS(mathmlNS, tag) : doc.createElement(tag, is ? { is } : void 0);\n if (tag === \"select\" && props && props.multiple != null) {\n el.setAttribute(\"multiple\", props.multiple);\n }\n return el;\n },\n createText: (text) => doc.createTextNode(text),\n createComment: (text) => doc.createComment(text),\n setText: (node, text) => {\n node.nodeValue = text;\n },\n setElementText: (el, text) => {\n el.textContent = text;\n },\n parentNode: (node) => node.parentNode,\n nextSibling: (node) => node.nextSibling,\n querySelector: (selector) => doc.querySelector(selector),\n setScopeId(el, id) {\n el.setAttribute(id, \"\");\n },\n // __UNSAFE__\n // Reason: innerHTML.\n // Static content here can only come from compiled templates.\n // As long as the user only uses trusted templates, this is safe.\n insertStaticContent(content, parent, anchor, namespace, start, end) {\n const before = anchor ? anchor.previousSibling : parent.lastChild;\n if (start && (start === end || start.nextSibling)) {\n while (true) {\n parent.insertBefore(start.cloneNode(true), anchor);\n if (start === end || !(start = start.nextSibling))\n break;\n }\n } else {\n templateContainer.innerHTML = namespace === \"svg\" ? `<svg>${content}</svg>` : namespace === \"mathml\" ? `<math>${content}</math>` : content;\n const template = templateContainer.content;\n if (namespace === \"svg\" || namespace === \"mathml\") {\n const wrapper = template.firstChild;\n while (wrapper.firstChild) {\n template.appendChild(wrapper.firstChild);\n }\n template.removeChild(wrapper);\n }\n parent.insertBefore(template, anchor);\n }\n return [\n // first\n before ? before.nextSibling : parent.firstChild,\n // last\n anchor ? anchor.previousSibling : parent.lastChild\n ];\n }\n};\n\nconst TRANSITION = \"transition\";\nconst ANIMATION = \"animation\";\nconst vtcKey = Symbol(\"_vtc\");\nconst Transition = (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots);\nTransition.displayName = \"Transition\";\n{\n Transition.__isBuiltIn = true;\n}\nconst DOMTransitionPropsValidators = {\n name: String,\n type: String,\n css: {\n type: Boolean,\n default: true\n },\n duration: [String, Number, Object],\n enterFromClass: String,\n enterActiveClass: String,\n enterToClass: String,\n appearFromClass: String,\n appearActiveClass: String,\n appearToClass: String,\n leaveFromClass: String,\n leaveActiveClass: String,\n leaveToClass: String\n};\nconst TransitionPropsValidators = Transition.props = /* @__PURE__ */ extend(\n {},\n BaseTransitionPropsValidators,\n DOMTransitionPropsValidators\n);\nconst callHook = (hook, args = []) => {\n if (isArray(hook)) {\n hook.forEach((h2) => h2(...args));\n } else if (hook) {\n hook(...args);\n }\n};\nconst hasExplicitCallback = (hook) => {\n return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false;\n};\nfunction resolveTransitionProps(rawProps) {\n const baseProps = {};\n for (const key in rawProps) {\n if (!(key in DOMTransitionPropsValidators)) {\n baseProps[key] = rawProps[key];\n }\n }\n if (rawProps.css === false) {\n return baseProps;\n }\n const {\n name = \"v\",\n type,\n duration,\n enterFromClass = `${name}-enter-from`,\n enterActiveClass = `${name}-enter-active`,\n enterToClass = `${name}-enter-to`,\n appearFromClass = enterFromClass,\n appearActiveClass = enterActiveClass,\n appearToClass = enterToClass,\n leaveFromClass = `${name}-leave-from`,\n leaveActiveClass = `${name}-leave-active`,\n leaveToClass = `${name}-leave-to`\n } = rawProps;\n const legacyClassEnabled = compatUtils.isCompatEnabled(\"TRANSITION_CLASSES\", null);\n let legacyEnterFromClass;\n let legacyAppearFromClass;\n let legacyLeaveFromClass;\n if (legacyClassEnabled) {\n const toLegacyClass = (cls) => cls.replace(/-from$/, \"\");\n if (!rawProps.enterFromClass) {\n legacyEnterFromClass = toLegacyClass(enterFromClass);\n }\n if (!rawProps.appearFromClass) {\n legacyAppearFromClass = toLegacyClass(appearFromClass);\n }\n if (!rawProps.leaveFromClass) {\n legacyLeaveFromClass = toLegacyClass(leaveFromClass);\n }\n }\n const durations = normalizeDuration(duration);\n const enterDuration = durations && durations[0];\n const leaveDuration = durations && durations[1];\n const {\n onBeforeEnter,\n onEnter,\n onEnterCancelled,\n onLeave,\n onLeaveCancelled,\n onBeforeAppear = onBeforeEnter,\n onAppear = onEnter,\n onAppearCancelled = onEnterCancelled\n } = baseProps;\n const finishEnter = (el, isAppear, done) => {\n removeTransitionClass(el, isAppear ? appearToClass : enterToClass);\n removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);\n done && done();\n };\n const finishLeave = (el, done) => {\n el._isLeaving = false;\n removeTransitionClass(el, leaveFromClass);\n removeTransitionClass(el, leaveToClass);\n removeTransitionClass(el, leaveActiveClass);\n done && done();\n };\n const makeEnterHook = (isAppear) => {\n return (el, done) => {\n const hook = isAppear ? onAppear : onEnter;\n const resolve = () => finishEnter(el, isAppear, done);\n callHook(hook, [el, resolve]);\n nextFrame(() => {\n removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);\n if (legacyClassEnabled) {\n const legacyClass = isAppear ? legacyAppearFromClass : legacyEnterFromClass;\n if (legacyClass) {\n removeTransitionClass(el, legacyClass);\n }\n }\n addTransitionClass(el, isAppear ? appearToClass : enterToClass);\n if (!hasExplicitCallback(hook)) {\n whenTransitionEnds(el, type, enterDuration, resolve);\n }\n });\n };\n };\n return extend(baseProps, {\n onBeforeEnter(el) {\n callHook(onBeforeEnter, [el]);\n addTransitionClass(el, enterFromClass);\n if (legacyClassEnabled && legacyEnterFromClass) {\n addTransitionClass(el, legacyEnterFromClass);\n }\n addTransitionClass(el, enterActiveClass);\n },\n onBeforeAppear(el) {\n callHook(onBeforeAppear, [el]);\n addTransitionClass(el, appearFromClass);\n if (legacyClassEnabled && legacyAppearFromClass) {\n addTransitionClass(el, legacyAppearFromClass);\n }\n addTransitionClass(el, appearActiveClass);\n },\n onEnter: makeEnterHook(false),\n onAppear: makeEnterHook(true),\n onLeave(el, done) {\n el._isLeaving = true;\n const resolve = () => finishLeave(el, done);\n addTransitionClass(el, leaveFromClass);\n if (legacyClassEnabled && legacyLeaveFromClass) {\n addTransitionClass(el, legacyLeaveFromClass);\n }\n forceReflow();\n addTransitionClass(el, leaveActiveClass);\n nextFrame(() => {\n if (!el._isLeaving) {\n return;\n }\n removeTransitionClass(el, leaveFromClass);\n if (legacyClassEnabled && legacyLeaveFromClass) {\n removeTransitionClass(el, legacyLeaveFromClass);\n }\n addTransitionClass(el, leaveToClass);\n if (!hasExplicitCallback(onLeave)) {\n whenTransitionEnds(el, type, leaveDuration, resolve);\n }\n });\n callHook(onLeave, [el, resolve]);\n },\n onEnterCancelled(el) {\n finishEnter(el, false);\n callHook(onEnterCancelled, [el]);\n },\n onAppearCancelled(el) {\n finishEnter(el, true);\n callHook(onAppearCancelled, [el]);\n },\n onLeaveCancelled(el) {\n finishLeave(el);\n callHook(onLeaveCancelled, [el]);\n }\n });\n}\nfunction normalizeDuration(duration) {\n if (duration == null) {\n return null;\n } else if (isObject(duration)) {\n return [NumberOf(duration.enter), NumberOf(duration.leave)];\n } else {\n const n = NumberOf(duration);\n return [n, n];\n }\n}\nfunction NumberOf(val) {\n const res = toNumber(val);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n assertNumber(res, \"<transition> explicit duration\");\n }\n return res;\n}\nfunction addTransitionClass(el, cls) {\n cls.split(/\\s+/).forEach((c) => c && el.classList.add(c));\n (el[vtcKey] || (el[vtcKey] = /* @__PURE__ */ new Set())).add(cls);\n}\nfunction removeTransitionClass(el, cls) {\n cls.split(/\\s+/).forEach((c) => c && el.classList.remove(c));\n const _vtc = el[vtcKey];\n if (_vtc) {\n _vtc.delete(cls);\n if (!_vtc.size) {\n el[vtcKey] = void 0;\n }\n }\n}\nfunction nextFrame(cb) {\n requestAnimationFrame(() => {\n requestAnimationFrame(cb);\n });\n}\nlet endId = 0;\nfunction whenTransitionEnds(el, expectedType, explicitTimeout, resolve) {\n const id = el._endId = ++endId;\n const resolveIfNotStale = () => {\n if (id === el._endId) {\n resolve();\n }\n };\n if (explicitTimeout) {\n return setTimeout(resolveIfNotStale, explicitTimeout);\n }\n const { type, timeout, propCount } = getTransitionInfo(el, expectedType);\n if (!type) {\n return resolve();\n }\n const endEvent = type + \"end\";\n let ended = 0;\n const end = () => {\n el.removeEventListener(endEvent, onEnd);\n resolveIfNotStale();\n };\n const onEnd = (e) => {\n if (e.target === el && ++ended >= propCount) {\n end();\n }\n };\n setTimeout(() => {\n if (ended < propCount) {\n end();\n }\n }, timeout + 1);\n el.addEventListener(endEvent, onEnd);\n}\nfunction getTransitionInfo(el, expectedType) {\n const styles = window.getComputedStyle(el);\n const getStyleProperties = (key) => (styles[key] || \"\").split(\", \");\n const transitionDelays = getStyleProperties(`${TRANSITION}Delay`);\n const transitionDurations = getStyleProperties(`${TRANSITION}Duration`);\n const transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n const animationDelays = getStyleProperties(`${ANIMATION}Delay`);\n const animationDurations = getStyleProperties(`${ANIMATION}Duration`);\n const animationTimeout = getTimeout(animationDelays, animationDurations);\n let type = null;\n let timeout = 0;\n let propCount = 0;\n if (expectedType === TRANSITION) {\n if (transitionTimeout > 0) {\n type = TRANSITION;\n timeout = transitionTimeout;\n propCount = transitionDurations.length;\n }\n } else if (expectedType === ANIMATION) {\n if (animationTimeout > 0) {\n type = ANIMATION;\n timeout = animationTimeout;\n propCount = animationDurations.length;\n }\n } else {\n timeout = Math.max(transitionTimeout, animationTimeout);\n type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null;\n propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0;\n }\n const hasTransform = type === TRANSITION && /\\b(transform|all)(,|$)/.test(\n getStyleProperties(`${TRANSITION}Property`).toString()\n );\n return {\n type,\n timeout,\n propCount,\n hasTransform\n };\n}\nfunction getTimeout(delays, durations) {\n while (delays.length < durations.length) {\n delays = delays.concat(delays);\n }\n return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));\n}\nfunction toMs(s) {\n if (s === \"auto\")\n return 0;\n return Number(s.slice(0, -1).replace(\",\", \".\")) * 1e3;\n}\nfunction forceReflow() {\n return document.body.offsetHeight;\n}\n\nfunction patchClass(el, value, isSVG) {\n const transitionClasses = el[vtcKey];\n if (transitionClasses) {\n value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(\" \");\n }\n if (value == null) {\n el.removeAttribute(\"class\");\n } else if (isSVG) {\n el.setAttribute(\"class\", value);\n } else {\n el.className = value;\n }\n}\n\nconst vShowOldKey = Symbol(\"_vod\");\nconst vShow = {\n beforeMount(el, { value }, { transition }) {\n el[vShowOldKey] = el.style.display === \"none\" ? \"\" : el.style.display;\n if (transition && value) {\n transition.beforeEnter(el);\n } else {\n setDisplay(el, value);\n }\n },\n mounted(el, { value }, { transition }) {\n if (transition && value) {\n transition.enter(el);\n }\n },\n updated(el, { value, oldValue }, { transition }) {\n if (!value === !oldValue)\n return;\n if (transition) {\n if (value) {\n transition.beforeEnter(el);\n setDisplay(el, true);\n transition.enter(el);\n } else {\n transition.leave(el, () => {\n setDisplay(el, false);\n });\n }\n } else {\n setDisplay(el, value);\n }\n },\n beforeUnmount(el, { value }) {\n setDisplay(el, value);\n }\n};\nif (!!(process.env.NODE_ENV !== \"production\")) {\n vShow.name = \"show\";\n}\nfunction setDisplay(el, value) {\n el.style.display = value ? el[vShowOldKey] : \"none\";\n}\nfunction initVShowForSSR() {\n vShow.getSSRProps = ({ value }) => {\n if (!value) {\n return { style: { display: \"none\" } };\n }\n };\n}\n\nconst CSS_VAR_TEXT = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"CSS_VAR_TEXT\" : \"\");\nfunction useCssVars(getter) {\n const instance = getCurrentInstance();\n if (!instance) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`useCssVars is called without current active component instance.`);\n return;\n }\n const updateTeleports = instance.ut = (vars = getter(instance.proxy)) => {\n Array.from(\n document.querySelectorAll(`[data-v-owner=\"${instance.uid}\"]`)\n ).forEach((node) => setVarsOnNode(node, vars));\n };\n const setVars = () => {\n const vars = getter(instance.proxy);\n setVarsOnVNode(instance.subTree, vars);\n updateTeleports(vars);\n };\n watchPostEffect(setVars);\n onMounted(() => {\n const ob = new MutationObserver(setVars);\n ob.observe(instance.subTree.el.parentNode, { childList: true });\n onUnmounted(() => ob.disconnect());\n });\n}\nfunction setVarsOnVNode(vnode, vars) {\n if (vnode.shapeFlag & 128) {\n const suspense = vnode.suspense;\n vnode = suspense.activeBranch;\n if (suspense.pendingBranch && !suspense.isHydrating) {\n suspense.effects.push(() => {\n setVarsOnVNode(suspense.activeBranch, vars);\n });\n }\n }\n while (vnode.component) {\n vnode = vnode.component.subTree;\n }\n if (vnode.shapeFlag & 1 && vnode.el) {\n setVarsOnNode(vnode.el, vars);\n } else if (vnode.type === Fragment) {\n vnode.children.forEach((c) => setVarsOnVNode(c, vars));\n } else if (vnode.type === Static) {\n let { el, anchor } = vnode;\n while (el) {\n setVarsOnNode(el, vars);\n if (el === anchor)\n break;\n el = el.nextSibling;\n }\n }\n}\nfunction setVarsOnNode(el, vars) {\n if (el.nodeType === 1) {\n const style = el.style;\n let cssText = \"\";\n for (const key in vars) {\n style.setProperty(`--${key}`, vars[key]);\n cssText += `--${key}: ${vars[key]};`;\n }\n style[CSS_VAR_TEXT] = cssText;\n }\n}\n\nfunction patchStyle(el, prev, next) {\n const style = el.style;\n const currentDisplay = style.display;\n const isCssString = isString(next);\n if (next && !isCssString) {\n if (prev && !isString(prev)) {\n for (const key in prev) {\n if (next[key] == null) {\n setStyle(style, key, \"\");\n }\n }\n }\n for (const key in next) {\n setStyle(style, key, next[key]);\n }\n } else {\n if (isCssString) {\n if (prev !== next) {\n const cssVarText = style[CSS_VAR_TEXT];\n if (cssVarText) {\n next += \";\" + cssVarText;\n }\n style.cssText = next;\n }\n } else if (prev) {\n el.removeAttribute(\"style\");\n }\n }\n if (vShowOldKey in el) {\n style.display = currentDisplay;\n }\n}\nconst semicolonRE = /[^\\\\];\\s*$/;\nconst importantRE = /\\s*!important$/;\nfunction setStyle(style, name, val) {\n if (isArray(val)) {\n val.forEach((v) => setStyle(style, name, v));\n } else {\n if (val == null)\n val = \"\";\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (semicolonRE.test(val)) {\n warn(\n `Unexpected semicolon at the end of '${name}' style value: '${val}'`\n );\n }\n }\n if (name.startsWith(\"--\")) {\n style.setProperty(name, val);\n } else {\n const prefixed = autoPrefix(style, name);\n if (importantRE.test(val)) {\n style.setProperty(\n hyphenate(prefixed),\n val.replace(importantRE, \"\"),\n \"important\"\n );\n } else {\n style[prefixed] = val;\n }\n }\n }\n}\nconst prefixes = [\"Webkit\", \"Moz\", \"ms\"];\nconst prefixCache = {};\nfunction autoPrefix(style, rawName) {\n const cached = prefixCache[rawName];\n if (cached) {\n return cached;\n }\n let name = camelize(rawName);\n if (name !== \"filter\" && name in style) {\n return prefixCache[rawName] = name;\n }\n name = capitalize(name);\n for (let i = 0; i < prefixes.length; i++) {\n const prefixed = prefixes[i] + name;\n if (prefixed in style) {\n return prefixCache[rawName] = prefixed;\n }\n }\n return rawName;\n}\n\nconst xlinkNS = \"http://www.w3.org/1999/xlink\";\nfunction patchAttr(el, key, value, isSVG, instance) {\n if (isSVG && key.startsWith(\"xlink:\")) {\n if (value == null) {\n el.removeAttributeNS(xlinkNS, key.slice(6, key.length));\n } else {\n el.setAttributeNS(xlinkNS, key, value);\n }\n } else {\n if (compatCoerceAttr(el, key, value, instance)) {\n return;\n }\n const isBoolean = isSpecialBooleanAttr(key);\n if (value == null || isBoolean && !includeBooleanAttr(value)) {\n el.removeAttribute(key);\n } else {\n el.setAttribute(key, isBoolean ? \"\" : value);\n }\n }\n}\nconst isEnumeratedAttr = /* @__PURE__ */ makeMap(\"contenteditable,draggable,spellcheck\") ;\nfunction compatCoerceAttr(el, key, value, instance = null) {\n if (isEnumeratedAttr(key)) {\n const v2CoercedValue = value === null ? \"false\" : typeof value !== \"boolean\" && value !== void 0 ? \"true\" : null;\n if (v2CoercedValue && compatUtils.softAssertCompatEnabled(\n \"ATTR_ENUMERATED_COERCION\",\n instance,\n key,\n value,\n v2CoercedValue\n )) {\n el.setAttribute(key, v2CoercedValue);\n return true;\n }\n } else if (value === false && !isSpecialBooleanAttr(key) && compatUtils.softAssertCompatEnabled(\n \"ATTR_FALSE_VALUE\",\n instance,\n key\n )) {\n el.removeAttribute(key);\n return true;\n }\n return false;\n}\n\nfunction patchDOMProp(el, key, value, prevChildren, parentComponent, parentSuspense, unmountChildren) {\n if (key === \"innerHTML\" || key === \"textContent\") {\n if (prevChildren) {\n unmountChildren(prevChildren, parentComponent, parentSuspense);\n }\n el[key] = value == null ? \"\" : value;\n return;\n }\n const tag = el.tagName;\n if (key === \"value\" && tag !== \"PROGRESS\" && // custom elements may use _value internally\n !tag.includes(\"-\")) {\n el._value = value;\n const oldValue = tag === \"OPTION\" ? el.getAttribute(\"value\") : el.value;\n const newValue = value == null ? \"\" : value;\n if (oldValue !== newValue) {\n el.value = newValue;\n }\n if (value == null) {\n el.removeAttribute(key);\n }\n return;\n }\n let needRemove = false;\n if (value === \"\" || value == null) {\n const type = typeof el[key];\n if (type === \"boolean\") {\n value = includeBooleanAttr(value);\n } else if (value == null && type === \"string\") {\n value = \"\";\n needRemove = true;\n } else if (type === \"number\") {\n value = 0;\n needRemove = true;\n }\n } else {\n if (value === false && compatUtils.isCompatEnabled(\n \"ATTR_FALSE_VALUE\",\n parentComponent\n )) {\n const type = typeof el[key];\n if (type === \"string\" || type === \"number\") {\n !!(process.env.NODE_ENV !== \"production\") && compatUtils.warnDeprecation(\n \"ATTR_FALSE_VALUE\",\n parentComponent,\n key\n );\n value = type === \"number\" ? 0 : \"\";\n needRemove = true;\n }\n }\n }\n try {\n el[key] = value;\n } catch (e) {\n if (!!(process.env.NODE_ENV !== \"production\") && !needRemove) {\n warn(\n `Failed setting prop \"${key}\" on <${tag.toLowerCase()}>: value ${value} is invalid.`,\n e\n );\n }\n }\n needRemove && el.removeAttribute(key);\n}\n\nfunction addEventListener(el, event, handler, options) {\n el.addEventListener(event, handler, options);\n}\nfunction removeEventListener(el, event, handler, options) {\n el.removeEventListener(event, handler, options);\n}\nconst veiKey = Symbol(\"_vei\");\nfunction patchEvent(el, rawName, prevValue, nextValue, instance = null) {\n const invokers = el[veiKey] || (el[veiKey] = {});\n const existingInvoker = invokers[rawName];\n if (nextValue && existingInvoker) {\n existingInvoker.value = nextValue;\n } else {\n const [name, options] = parseName(rawName);\n if (nextValue) {\n const invoker = invokers[rawName] = createInvoker(nextValue, instance);\n addEventListener(el, name, invoker, options);\n } else if (existingInvoker) {\n removeEventListener(el, name, existingInvoker, options);\n invokers[rawName] = void 0;\n }\n }\n}\nconst optionsModifierRE = /(?:Once|Passive|Capture)$/;\nfunction parseName(name) {\n let options;\n if (optionsModifierRE.test(name)) {\n options = {};\n let m;\n while (m = name.match(optionsModifierRE)) {\n name = name.slice(0, name.length - m[0].length);\n options[m[0].toLowerCase()] = true;\n }\n }\n const event = name[2] === \":\" ? name.slice(3) : hyphenate(name.slice(2));\n return [event, options];\n}\nlet cachedNow = 0;\nconst p = /* @__PURE__ */ Promise.resolve();\nconst getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());\nfunction createInvoker(initialValue, instance) {\n const invoker = (e) => {\n if (!e._vts) {\n e._vts = Date.now();\n } else if (e._vts <= invoker.attached) {\n return;\n }\n callWithAsyncErrorHandling(\n patchStopImmediatePropagation(e, invoker.value),\n instance,\n 5,\n [e]\n );\n };\n invoker.value = initialValue;\n invoker.attached = getNow();\n return invoker;\n}\nfunction patchStopImmediatePropagation(e, value) {\n if (isArray(value)) {\n const originalStop = e.stopImmediatePropagation;\n e.stopImmediatePropagation = () => {\n originalStop.call(e);\n e._stopped = true;\n };\n return value.map((fn) => (e2) => !e2._stopped && fn && fn(e2));\n } else {\n return value;\n }\n}\n\nconst isNativeOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // lowercase letter\nkey.charCodeAt(2) > 96 && key.charCodeAt(2) < 123;\nconst patchProp = (el, key, prevValue, nextValue, namespace, prevChildren, parentComponent, parentSuspense, unmountChildren) => {\n const isSVG = namespace === \"svg\";\n if (key === \"class\") {\n patchClass(el, nextValue, isSVG);\n } else if (key === \"style\") {\n patchStyle(el, prevValue, nextValue);\n } else if (isOn(key)) {\n if (!isModelListener(key)) {\n patchEvent(el, key, prevValue, nextValue, parentComponent);\n }\n } else if (key[0] === \".\" ? (key = key.slice(1), true) : key[0] === \"^\" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) {\n patchDOMProp(\n el,\n key,\n nextValue,\n prevChildren,\n parentComponent,\n parentSuspense,\n unmountChildren\n );\n } else {\n if (key === \"true-value\") {\n el._trueValue = nextValue;\n } else if (key === \"false-value\") {\n el._falseValue = nextValue;\n }\n patchAttr(el, key, nextValue, isSVG, parentComponent);\n }\n};\nfunction shouldSetAsProp(el, key, value, isSVG) {\n if (isSVG) {\n if (key === \"innerHTML\" || key === \"textContent\") {\n return true;\n }\n if (key in el && isNativeOn(key) && isFunction(value)) {\n return true;\n }\n return false;\n }\n if (key === \"spellcheck\" || key === \"draggable\" || key === \"translate\") {\n return false;\n }\n if (key === \"form\") {\n return false;\n }\n if (key === \"list\" && el.tagName === \"INPUT\") {\n return false;\n }\n if (key === \"type\" && el.tagName === \"TEXTAREA\") {\n return false;\n }\n if (key === \"width\" || key === \"height\") {\n const tag = el.tagName;\n if (tag === \"IMG\" || tag === \"VIDEO\" || tag === \"CANVAS\" || tag === \"SOURCE\") {\n return false;\n }\n }\n if (isNativeOn(key) && isString(value)) {\n return false;\n }\n return key in el;\n}\n\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineCustomElement(options, hydrate2) {\n const Comp = defineComponent(options);\n class VueCustomElement extends VueElement {\n constructor(initialProps) {\n super(Comp, initialProps, hydrate2);\n }\n }\n VueCustomElement.def = Comp;\n return VueCustomElement;\n}\n/*! #__NO_SIDE_EFFECTS__ */\nconst defineSSRCustomElement = /* @__NO_SIDE_EFFECTS__ */ (options) => {\n return /* @__PURE__ */ defineCustomElement(options, hydrate);\n};\nconst BaseClass = typeof HTMLElement !== \"undefined\" ? HTMLElement : class {\n};\nclass VueElement extends BaseClass {\n constructor(_def, _props = {}, hydrate2) {\n super();\n this._def = _def;\n this._props = _props;\n /**\n * @internal\n */\n this._instance = null;\n this._connected = false;\n this._resolved = false;\n this._numberProps = null;\n this._ob = null;\n if (this.shadowRoot && hydrate2) {\n hydrate2(this._createVNode(), this.shadowRoot);\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && this.shadowRoot) {\n warn(\n `Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use \\`defineSSRCustomElement\\`.`\n );\n }\n this.attachShadow({ mode: \"open\" });\n if (!this._def.__asyncLoader) {\n this._resolveProps(this._def);\n }\n }\n }\n connectedCallback() {\n this._connected = true;\n if (!this._instance) {\n if (this._resolved) {\n this._update();\n } else {\n this._resolveDef();\n }\n }\n }\n disconnectedCallback() {\n this._connected = false;\n if (this._ob) {\n this._ob.disconnect();\n this._ob = null;\n }\n nextTick(() => {\n if (!this._connected) {\n render(null, this.shadowRoot);\n this._instance = null;\n }\n });\n }\n /**\n * resolve inner component definition (handle possible async component)\n */\n _resolveDef() {\n this._resolved = true;\n for (let i = 0; i < this.attributes.length; i++) {\n this._setAttr(this.attributes[i].name);\n }\n this._ob = new MutationObserver((mutations) => {\n for (const m of mutations) {\n this._setAttr(m.attributeName);\n }\n });\n this._ob.observe(this, { attributes: true });\n const resolve = (def, isAsync = false) => {\n const { props, styles } = def;\n let numberProps;\n if (props && !isArray(props)) {\n for (const key in props) {\n const opt = props[key];\n if (opt === Number || opt && opt.type === Number) {\n if (key in this._props) {\n this._props[key] = toNumber(this._props[key]);\n }\n (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[camelize(key)] = true;\n }\n }\n }\n this._numberProps = numberProps;\n if (isAsync) {\n this._resolveProps(def);\n }\n this._applyStyles(styles);\n this._update();\n };\n const asyncDef = this._def.__asyncLoader;\n if (asyncDef) {\n asyncDef().then((def) => resolve(def, true));\n } else {\n resolve(this._def);\n }\n }\n _resolveProps(def) {\n const { props } = def;\n const declaredPropKeys = isArray(props) ? props : Object.keys(props || {});\n for (const key of Object.keys(this)) {\n if (key[0] !== \"_\" && declaredPropKeys.includes(key)) {\n this._setProp(key, this[key], true, false);\n }\n }\n for (const key of declaredPropKeys.map(camelize)) {\n Object.defineProperty(this, key, {\n get() {\n return this._getProp(key);\n },\n set(val) {\n this._setProp(key, val);\n }\n });\n }\n }\n _setAttr(key) {\n let value = this.getAttribute(key);\n const camelKey = camelize(key);\n if (this._numberProps && this._numberProps[camelKey]) {\n value = toNumber(value);\n }\n this._setProp(camelKey, value, false);\n }\n /**\n * @internal\n */\n _getProp(key) {\n return this._props[key];\n }\n /**\n * @internal\n */\n _setProp(key, val, shouldReflect = true, shouldUpdate = true) {\n if (val !== this._props[key]) {\n this._props[key] = val;\n if (shouldUpdate && this._instance) {\n this._update();\n }\n if (shouldReflect) {\n if (val === true) {\n this.setAttribute(hyphenate(key), \"\");\n } else if (typeof val === \"string\" || typeof val === \"number\") {\n this.setAttribute(hyphenate(key), val + \"\");\n } else if (!val) {\n this.removeAttribute(hyphenate(key));\n }\n }\n }\n }\n _update() {\n render(this._createVNode(), this.shadowRoot);\n }\n _createVNode() {\n const vnode = createVNode(this._def, extend({}, this._props));\n if (!this._instance) {\n vnode.ce = (instance) => {\n this._instance = instance;\n instance.isCE = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n instance.ceReload = (newStyles) => {\n if (this._styles) {\n this._styles.forEach((s) => this.shadowRoot.removeChild(s));\n this._styles.length = 0;\n }\n this._applyStyles(newStyles);\n this._instance = null;\n this._update();\n };\n }\n const dispatch = (event, args) => {\n this.dispatchEvent(\n new CustomEvent(event, {\n detail: args\n })\n );\n };\n instance.emit = (event, ...args) => {\n dispatch(event, args);\n if (hyphenate(event) !== event) {\n dispatch(hyphenate(event), args);\n }\n };\n let parent = this;\n while (parent = parent && (parent.parentNode || parent.host)) {\n if (parent instanceof VueElement) {\n instance.parent = parent._instance;\n instance.provides = parent._instance.provides;\n break;\n }\n }\n };\n }\n return vnode;\n }\n _applyStyles(styles) {\n if (styles) {\n styles.forEach((css) => {\n const s = document.createElement(\"style\");\n s.textContent = css;\n this.shadowRoot.appendChild(s);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (this._styles || (this._styles = [])).push(s);\n }\n });\n }\n }\n}\n\nfunction useCssModule(name = \"$style\") {\n {\n const instance = getCurrentInstance();\n if (!instance) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`useCssModule must be called inside setup()`);\n return EMPTY_OBJ;\n }\n const modules = instance.type.__cssModules;\n if (!modules) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`Current instance does not have CSS modules injected.`);\n return EMPTY_OBJ;\n }\n const mod = modules[name];\n if (!mod) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`Current instance does not have CSS module named \"${name}\".`);\n return EMPTY_OBJ;\n }\n return mod;\n }\n}\n\nconst positionMap = /* @__PURE__ */ new WeakMap();\nconst newPositionMap = /* @__PURE__ */ new WeakMap();\nconst moveCbKey = Symbol(\"_moveCb\");\nconst enterCbKey = Symbol(\"_enterCb\");\nconst TransitionGroupImpl = {\n name: \"TransitionGroup\",\n props: /* @__PURE__ */ extend({}, TransitionPropsValidators, {\n tag: String,\n moveClass: String\n }),\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n let prevChildren;\n let children;\n onUpdated(() => {\n if (!prevChildren.length) {\n return;\n }\n const moveClass = props.moveClass || `${props.name || \"v\"}-move`;\n if (!hasCSSTransform(\n prevChildren[0].el,\n instance.vnode.el,\n moveClass\n )) {\n return;\n }\n prevChildren.forEach(callPendingCbs);\n prevChildren.forEach(recordPosition);\n const movedChildren = prevChildren.filter(applyTranslation);\n forceReflow();\n movedChildren.forEach((c) => {\n const el = c.el;\n const style = el.style;\n addTransitionClass(el, moveClass);\n style.transform = style.webkitTransform = style.transitionDuration = \"\";\n const cb = el[moveCbKey] = (e) => {\n if (e && e.target !== el) {\n return;\n }\n if (!e || /transform$/.test(e.propertyName)) {\n el.removeEventListener(\"transitionend\", cb);\n el[moveCbKey] = null;\n removeTransitionClass(el, moveClass);\n }\n };\n el.addEventListener(\"transitionend\", cb);\n });\n });\n return () => {\n const rawProps = toRaw(props);\n const cssTransitionProps = resolveTransitionProps(rawProps);\n let tag = rawProps.tag || Fragment;\n if (!rawProps.tag && compatUtils.checkCompatEnabled(\n \"TRANSITION_GROUP_ROOT\",\n instance.parent\n )) {\n tag = \"span\";\n }\n prevChildren = children;\n children = slots.default ? getTransitionRawChildren(slots.default()) : [];\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (child.key != null) {\n setTransitionHooks(\n child,\n resolveTransitionHooks(child, cssTransitionProps, state, instance)\n );\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`<TransitionGroup> children must be keyed.`);\n }\n }\n if (prevChildren) {\n for (let i = 0; i < prevChildren.length; i++) {\n const child = prevChildren[i];\n setTransitionHooks(\n child,\n resolveTransitionHooks(child, cssTransitionProps, state, instance)\n );\n positionMap.set(child, child.el.getBoundingClientRect());\n }\n }\n return createVNode(tag, null, children);\n };\n }\n};\n{\n TransitionGroupImpl.__isBuiltIn = true;\n}\nconst removeMode = (props) => delete props.mode;\n/* @__PURE__ */ removeMode(TransitionGroupImpl.props);\nconst TransitionGroup = TransitionGroupImpl;\nfunction callPendingCbs(c) {\n const el = c.el;\n if (el[moveCbKey]) {\n el[moveCbKey]();\n }\n if (el[enterCbKey]) {\n el[enterCbKey]();\n }\n}\nfunction recordPosition(c) {\n newPositionMap.set(c, c.el.getBoundingClientRect());\n}\nfunction applyTranslation(c) {\n const oldPos = positionMap.get(c);\n const newPos = newPositionMap.get(c);\n const dx = oldPos.left - newPos.left;\n const dy = oldPos.top - newPos.top;\n if (dx || dy) {\n const s = c.el.style;\n s.transform = s.webkitTransform = `translate(${dx}px,${dy}px)`;\n s.transitionDuration = \"0s\";\n return c;\n }\n}\nfunction hasCSSTransform(el, root, moveClass) {\n const clone = el.cloneNode();\n const _vtc = el[vtcKey];\n if (_vtc) {\n _vtc.forEach((cls) => {\n cls.split(/\\s+/).forEach((c) => c && clone.classList.remove(c));\n });\n }\n moveClass.split(/\\s+/).forEach((c) => c && clone.classList.add(c));\n clone.style.display = \"none\";\n const container = root.nodeType === 1 ? root : root.parentNode;\n container.appendChild(clone);\n const { hasTransform } = getTransitionInfo(clone);\n container.removeChild(clone);\n return hasTransform;\n}\n\nconst getModelAssigner = (vnode) => {\n const fn = vnode.props[\"onUpdate:modelValue\"] || vnode.props[\"onModelCompat:input\"];\n return isArray(fn) ? (value) => invokeArrayFns(fn, value) : fn;\n};\nfunction onCompositionStart(e) {\n e.target.composing = true;\n}\nfunction onCompositionEnd(e) {\n const target = e.target;\n if (target.composing) {\n target.composing = false;\n target.dispatchEvent(new Event(\"input\"));\n }\n}\nconst assignKey = Symbol(\"_assign\");\nconst vModelText = {\n created(el, { modifiers: { lazy, trim, number } }, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n const castToNumber = number || vnode.props && vnode.props.type === \"number\";\n addEventListener(el, lazy ? \"change\" : \"input\", (e) => {\n if (e.target.composing)\n return;\n let domValue = el.value;\n if (trim) {\n domValue = domValue.trim();\n }\n if (castToNumber) {\n domValue = looseToNumber(domValue);\n }\n el[assignKey](domValue);\n });\n if (trim) {\n addEventListener(el, \"change\", () => {\n el.value = el.value.trim();\n });\n }\n if (!lazy) {\n addEventListener(el, \"compositionstart\", onCompositionStart);\n addEventListener(el, \"compositionend\", onCompositionEnd);\n addEventListener(el, \"change\", onCompositionEnd);\n }\n },\n // set value on mounted so it's after min/max for type=\"range\"\n mounted(el, { value }) {\n el.value = value == null ? \"\" : value;\n },\n beforeUpdate(el, { value, modifiers: { lazy, trim, number } }, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n if (el.composing)\n return;\n const elValue = number || el.type === \"number\" ? looseToNumber(el.value) : el.value;\n const newValue = value == null ? \"\" : value;\n if (elValue === newValue) {\n return;\n }\n if (document.activeElement === el && el.type !== \"range\") {\n if (lazy) {\n return;\n }\n if (trim && el.value.trim() === newValue) {\n return;\n }\n }\n el.value = newValue;\n }\n};\nconst vModelCheckbox = {\n // #4096 array checkboxes need to be deep traversed\n deep: true,\n created(el, _, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n addEventListener(el, \"change\", () => {\n const modelValue = el._modelValue;\n const elementValue = getValue(el);\n const checked = el.checked;\n const assign = el[assignKey];\n if (isArray(modelValue)) {\n const index = looseIndexOf(modelValue, elementValue);\n const found = index !== -1;\n if (checked && !found) {\n assign(modelValue.concat(elementValue));\n } else if (!checked && found) {\n const filtered = [...modelValue];\n filtered.splice(index, 1);\n assign(filtered);\n }\n } else if (isSet(modelValue)) {\n const cloned = new Set(modelValue);\n if (checked) {\n cloned.add(elementValue);\n } else {\n cloned.delete(elementValue);\n }\n assign(cloned);\n } else {\n assign(getCheckboxValue(el, checked));\n }\n });\n },\n // set initial checked on mount to wait for true-value/false-value\n mounted: setChecked,\n beforeUpdate(el, binding, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n setChecked(el, binding, vnode);\n }\n};\nfunction setChecked(el, { value, oldValue }, vnode) {\n el._modelValue = value;\n if (isArray(value)) {\n el.checked = looseIndexOf(value, vnode.props.value) > -1;\n } else if (isSet(value)) {\n el.checked = value.has(vnode.props.value);\n } else if (value !== oldValue) {\n el.checked = looseEqual(value, getCheckboxValue(el, true));\n }\n}\nconst vModelRadio = {\n created(el, { value }, vnode) {\n el.checked = looseEqual(value, vnode.props.value);\n el[assignKey] = getModelAssigner(vnode);\n addEventListener(el, \"change\", () => {\n el[assignKey](getValue(el));\n });\n },\n beforeUpdate(el, { value, oldValue }, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n if (value !== oldValue) {\n el.checked = looseEqual(value, vnode.props.value);\n }\n }\n};\nconst vModelSelect = {\n // <select multiple> value need to be deep traversed\n deep: true,\n created(el, { value, modifiers: { number } }, vnode) {\n const isSetModel = isSet(value);\n addEventListener(el, \"change\", () => {\n const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map(\n (o) => number ? looseToNumber(getValue(o)) : getValue(o)\n );\n el[assignKey](\n el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0]\n );\n el._assigning = true;\n nextTick(() => {\n el._assigning = false;\n });\n });\n el[assignKey] = getModelAssigner(vnode);\n },\n // set value in mounted & updated because <select> relies on its children\n // <option>s.\n mounted(el, { value, oldValue, modifiers: { number } }) {\n setSelected(el, value, oldValue, number);\n },\n beforeUpdate(el, _binding, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n },\n updated(el, { value, oldValue, modifiers: { number } }) {\n if (!el._assigning) {\n setSelected(el, value, oldValue, number);\n }\n }\n};\nfunction setSelected(el, value, oldValue, number) {\n const isMultiple = el.multiple;\n const isArrayValue = isArray(value);\n if (isMultiple && !isArrayValue && !isSet(value)) {\n !!(process.env.NODE_ENV !== \"production\") && warn(\n `<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(value).slice(8, -1)}.`\n );\n return;\n }\n if (isArrayValue && looseEqual(value, oldValue)) {\n return;\n }\n for (let i = 0, l = el.options.length; i < l; i++) {\n const option = el.options[i];\n const optionValue = getValue(option);\n if (isMultiple) {\n if (isArrayValue) {\n const optionType = typeof optionValue;\n if (optionType === \"string\" || optionType === \"number\") {\n option.selected = value.includes(\n number ? looseToNumber(optionValue) : optionValue\n );\n } else {\n option.selected = looseIndexOf(value, optionValue) > -1;\n }\n } else {\n option.selected = value.has(optionValue);\n }\n } else {\n if (looseEqual(getValue(option), value)) {\n if (el.selectedIndex !== i)\n el.selectedIndex = i;\n return;\n }\n }\n }\n if (!isMultiple && el.selectedIndex !== -1) {\n el.selectedIndex = -1;\n }\n}\nfunction getValue(el) {\n return \"_value\" in el ? el._value : el.value;\n}\nfunction getCheckboxValue(el, checked) {\n const key = checked ? \"_trueValue\" : \"_falseValue\";\n return key in el ? el[key] : checked;\n}\nconst vModelDynamic = {\n created(el, binding, vnode) {\n callModelHook(el, binding, vnode, null, \"created\");\n },\n mounted(el, binding, vnode) {\n callModelHook(el, binding, vnode, null, \"mounted\");\n },\n beforeUpdate(el, binding, vnode, prevVNode) {\n callModelHook(el, binding, vnode, prevVNode, \"beforeUpdate\");\n },\n updated(el, binding, vnode, prevVNode) {\n callModelHook(el, binding, vnode, prevVNode, \"updated\");\n }\n};\nfunction resolveDynamicModel(tagName, type) {\n switch (tagName) {\n case \"SELECT\":\n return vModelSelect;\n case \"TEXTAREA\":\n return vModelText;\n default:\n switch (type) {\n case \"checkbox\":\n return vModelCheckbox;\n case \"radio\":\n return vModelRadio;\n default:\n return vModelText;\n }\n }\n}\nfunction callModelHook(el, binding, vnode, prevVNode, hook) {\n const modelToUse = resolveDynamicModel(\n el.tagName,\n vnode.props && vnode.props.type\n );\n const fn = modelToUse[hook];\n fn && fn(el, binding, vnode, prevVNode);\n}\nfunction initVModelForSSR() {\n vModelText.getSSRProps = ({ value }) => ({ value });\n vModelRadio.getSSRProps = ({ value }, vnode) => {\n if (vnode.props && looseEqual(vnode.props.value, value)) {\n return { checked: true };\n }\n };\n vModelCheckbox.getSSRProps = ({ value }, vnode) => {\n if (isArray(value)) {\n if (vnode.props && looseIndexOf(value, vnode.props.value) > -1) {\n return { checked: true };\n }\n } else if (isSet(value)) {\n if (vnode.props && value.has(vnode.props.value)) {\n return { checked: true };\n }\n } else if (value) {\n return { checked: true };\n }\n };\n vModelDynamic.getSSRProps = (binding, vnode) => {\n if (typeof vnode.type !== \"string\") {\n return;\n }\n const modelToUse = resolveDynamicModel(\n // resolveDynamicModel expects an uppercase tag name, but vnode.type is lowercase\n vnode.type.toUpperCase(),\n vnode.props && vnode.props.type\n );\n if (modelToUse.getSSRProps) {\n return modelToUse.getSSRProps(binding, vnode);\n }\n };\n}\n\nconst systemModifiers = [\"ctrl\", \"shift\", \"alt\", \"meta\"];\nconst modifierGuards = {\n stop: (e) => e.stopPropagation(),\n prevent: (e) => e.preventDefault(),\n self: (e) => e.target !== e.currentTarget,\n ctrl: (e) => !e.ctrlKey,\n shift: (e) => !e.shiftKey,\n alt: (e) => !e.altKey,\n meta: (e) => !e.metaKey,\n left: (e) => \"button\" in e && e.button !== 0,\n middle: (e) => \"button\" in e && e.button !== 1,\n right: (e) => \"button\" in e && e.button !== 2,\n exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m))\n};\nconst withModifiers = (fn, modifiers) => {\n const cache = fn._withMods || (fn._withMods = {});\n const cacheKey = modifiers.join(\".\");\n return cache[cacheKey] || (cache[cacheKey] = (event, ...args) => {\n for (let i = 0; i < modifiers.length; i++) {\n const guard = modifierGuards[modifiers[i]];\n if (guard && guard(event, modifiers))\n return;\n }\n return fn(event, ...args);\n });\n};\nconst keyNames = {\n esc: \"escape\",\n space: \" \",\n up: \"arrow-up\",\n left: \"arrow-left\",\n right: \"arrow-right\",\n down: \"arrow-down\",\n delete: \"backspace\"\n};\nconst withKeys = (fn, modifiers) => {\n let globalKeyCodes;\n let instance = null;\n {\n instance = getCurrentInstance();\n if (compatUtils.isCompatEnabled(\"CONFIG_KEY_CODES\", instance)) {\n if (instance) {\n globalKeyCodes = instance.appContext.config.keyCodes;\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && modifiers.some((m) => /^\\d+$/.test(m))) {\n compatUtils.warnDeprecation(\n \"V_ON_KEYCODE_MODIFIER\",\n instance\n );\n }\n }\n const cache = fn._withKeys || (fn._withKeys = {});\n const cacheKey = modifiers.join(\".\");\n return cache[cacheKey] || (cache[cacheKey] = (event) => {\n if (!(\"key\" in event)) {\n return;\n }\n const eventKey = hyphenate(event.key);\n if (modifiers.some((k) => k === eventKey || keyNames[k] === eventKey)) {\n return fn(event);\n }\n {\n const keyCode = String(event.keyCode);\n if (compatUtils.isCompatEnabled(\n \"V_ON_KEYCODE_MODIFIER\",\n instance\n ) && modifiers.some((mod) => mod == keyCode)) {\n return fn(event);\n }\n if (globalKeyCodes) {\n for (const mod of modifiers) {\n const codes = globalKeyCodes[mod];\n if (codes) {\n const matches = isArray(codes) ? codes.some((code) => String(code) === keyCode) : String(codes) === keyCode;\n if (matches) {\n return fn(event);\n }\n }\n }\n }\n }\n });\n};\n\nconst rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);\nlet renderer;\nlet enabledHydration = false;\nfunction ensureRenderer() {\n return renderer || (renderer = createRenderer(rendererOptions));\n}\nfunction ensureHydrationRenderer() {\n renderer = enabledHydration ? renderer : createHydrationRenderer(rendererOptions);\n enabledHydration = true;\n return renderer;\n}\nconst render = (...args) => {\n ensureRenderer().render(...args);\n};\nconst hydrate = (...args) => {\n ensureHydrationRenderer().hydrate(...args);\n};\nconst createApp = (...args) => {\n const app = ensureRenderer().createApp(...args);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n injectNativeTagCheck(app);\n injectCompilerOptionsCheck(app);\n }\n const { mount } = app;\n app.mount = (containerOrSelector) => {\n const container = normalizeContainer(containerOrSelector);\n if (!container)\n return;\n const component = app._component;\n if (!isFunction(component) && !component.render && !component.template) {\n component.template = container.innerHTML;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (let i = 0; i < container.attributes.length; i++) {\n const attr = container.attributes[i];\n if (attr.name !== \"v-cloak\" && /^(v-|:|@)/.test(attr.name)) {\n compatUtils.warnDeprecation(\n \"GLOBAL_MOUNT_CONTAINER\",\n null\n );\n break;\n }\n }\n }\n }\n container.innerHTML = \"\";\n const proxy = mount(container, false, resolveRootNamespace(container));\n if (container instanceof Element) {\n container.removeAttribute(\"v-cloak\");\n container.setAttribute(\"data-v-app\", \"\");\n }\n return proxy;\n };\n return app;\n};\nconst createSSRApp = (...args) => {\n const app = ensureHydrationRenderer().createApp(...args);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n injectNativeTagCheck(app);\n injectCompilerOptionsCheck(app);\n }\n const { mount } = app;\n app.mount = (containerOrSelector) => {\n const container = normalizeContainer(containerOrSelector);\n if (container) {\n return mount(container, true, resolveRootNamespace(container));\n }\n };\n return app;\n};\nfunction resolveRootNamespace(container) {\n if (container instanceof SVGElement) {\n return \"svg\";\n }\n if (typeof MathMLElement === \"function\" && container instanceof MathMLElement) {\n return \"mathml\";\n }\n}\nfunction injectNativeTagCheck(app) {\n Object.defineProperty(app.config, \"isNativeTag\", {\n value: (tag) => isHTMLTag(tag) || isSVGTag(tag) || isMathMLTag(tag),\n writable: false\n });\n}\nfunction injectCompilerOptionsCheck(app) {\n if (isRuntimeOnly()) {\n const isCustomElement = app.config.isCustomElement;\n Object.defineProperty(app.config, \"isCustomElement\", {\n get() {\n return isCustomElement;\n },\n set() {\n warn(\n `The \\`isCustomElement\\` config option is deprecated. Use \\`compilerOptions.isCustomElement\\` instead.`\n );\n }\n });\n const compilerOptions = app.config.compilerOptions;\n const msg = `The \\`compilerOptions\\` config option is only respected when using a build of Vue.js that includes the runtime compiler (aka \"full build\"). Since you are using the runtime-only build, \\`compilerOptions\\` must be passed to \\`@vue/compiler-dom\\` in the build setup instead.\n- For vue-loader: pass it via vue-loader's \\`compilerOptions\\` loader option.\n- For vue-cli: see https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader\n- For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-sfc`;\n Object.defineProperty(app.config, \"compilerOptions\", {\n get() {\n warn(msg);\n return compilerOptions;\n },\n set() {\n warn(msg);\n }\n });\n }\n}\nfunction normalizeContainer(container) {\n if (isString(container)) {\n const res = document.querySelector(container);\n if (!!(process.env.NODE_ENV !== \"production\") && !res) {\n warn(\n `Failed to mount app: mount target selector \"${container}\" returned null.`\n );\n }\n return res;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && window.ShadowRoot && container instanceof window.ShadowRoot && container.mode === \"closed\") {\n warn(\n `mounting on a ShadowRoot with \\`{mode: \"closed\"}\\` may lead to unpredictable bugs`\n );\n }\n return container;\n}\nlet ssrDirectiveInitialized = false;\nconst initDirectivesForSSR = () => {\n if (!ssrDirectiveInitialized) {\n ssrDirectiveInitialized = true;\n initVModelForSSR();\n initVShowForSSR();\n }\n} ;\n\nvar runtimeDom = /*#__PURE__*/Object.freeze({\n __proto__: null,\n BaseTransition: BaseTransition,\n BaseTransitionPropsValidators: BaseTransitionPropsValidators,\n Comment: Comment,\n DeprecationTypes: DeprecationTypes,\n EffectScope: EffectScope,\n ErrorCodes: ErrorCodes,\n ErrorTypeStrings: ErrorTypeStrings,\n Fragment: Fragment,\n KeepAlive: KeepAlive,\n ReactiveEffect: ReactiveEffect,\n Static: Static,\n Suspense: Suspense,\n Teleport: Teleport,\n Text: Text,\n TrackOpTypes: TrackOpTypes,\n Transition: Transition,\n TransitionGroup: TransitionGroup,\n TriggerOpTypes: TriggerOpTypes,\n VueElement: VueElement,\n assertNumber: assertNumber,\n callWithAsyncErrorHandling: callWithAsyncErrorHandling,\n callWithErrorHandling: callWithErrorHandling,\n camelize: camelize,\n capitalize: capitalize,\n cloneVNode: cloneVNode,\n compatUtils: compatUtils,\n computed: computed,\n createApp: createApp,\n createBlock: createBlock,\n createCommentVNode: createCommentVNode,\n createElementBlock: createElementBlock,\n createElementVNode: createBaseVNode,\n createHydrationRenderer: createHydrationRenderer,\n createPropsRestProxy: createPropsRestProxy,\n createRenderer: createRenderer,\n createSSRApp: createSSRApp,\n createSlots: createSlots,\n createStaticVNode: createStaticVNode,\n createTextVNode: createTextVNode,\n createVNode: createVNode,\n customRef: customRef,\n defineAsyncComponent: defineAsyncComponent,\n defineComponent: defineComponent,\n defineCustomElement: defineCustomElement,\n defineEmits: defineEmits,\n defineExpose: defineExpose,\n defineModel: defineModel,\n defineOptions: defineOptions,\n defineProps: defineProps,\n defineSSRCustomElement: defineSSRCustomElement,\n defineSlots: defineSlots,\n devtools: devtools,\n effect: effect,\n effectScope: effectScope,\n getCurrentInstance: getCurrentInstance,\n getCurrentScope: getCurrentScope,\n getTransitionRawChildren: getTransitionRawChildren,\n guardReactiveProps: guardReactiveProps,\n h: h,\n handleError: handleError,\n hasInjectionContext: hasInjectionContext,\n hydrate: hydrate,\n initCustomFormatter: initCustomFormatter,\n initDirectivesForSSR: initDirectivesForSSR,\n inject: inject,\n isMemoSame: isMemoSame,\n isProxy: isProxy,\n isReactive: isReactive,\n isReadonly: isReadonly,\n isRef: isRef,\n isRuntimeOnly: isRuntimeOnly,\n isShallow: isShallow,\n isVNode: isVNode,\n markRaw: markRaw,\n mergeDefaults: mergeDefaults,\n mergeModels: mergeModels,\n mergeProps: mergeProps,\n nextTick: nextTick,\n normalizeClass: normalizeClass,\n normalizeProps: normalizeProps,\n normalizeStyle: normalizeStyle,\n onActivated: onActivated,\n onBeforeMount: onBeforeMount,\n onBeforeUnmount: onBeforeUnmount,\n onBeforeUpdate: onBeforeUpdate,\n onDeactivated: onDeactivated,\n onErrorCaptured: onErrorCaptured,\n onMounted: onMounted,\n onRenderTracked: onRenderTracked,\n onRenderTriggered: onRenderTriggered,\n onScopeDispose: onScopeDispose,\n onServerPrefetch: onServerPrefetch,\n onUnmounted: onUnmounted,\n onUpdated: onUpdated,\n openBlock: openBlock,\n popScopeId: popScopeId,\n provide: provide,\n proxyRefs: proxyRefs,\n pushScopeId: pushScopeId,\n queuePostFlushCb: queuePostFlushCb,\n reactive: reactive,\n readonly: readonly,\n ref: ref,\n registerRuntimeCompiler: registerRuntimeCompiler,\n render: render,\n renderList: renderList,\n renderSlot: renderSlot,\n resolveComponent: resolveComponent,\n resolveDirective: resolveDirective,\n resolveDynamicComponent: resolveDynamicComponent,\n resolveFilter: resolveFilter,\n resolveTransitionHooks: resolveTransitionHooks,\n setBlockTracking: setBlockTracking,\n setDevtoolsHook: setDevtoolsHook,\n setTransitionHooks: setTransitionHooks,\n shallowReactive: shallowReactive,\n shallowReadonly: shallowReadonly,\n shallowRef: shallowRef,\n ssrContextKey: ssrContextKey,\n ssrUtils: ssrUtils,\n stop: stop,\n toDisplayString: toDisplayString,\n toHandlerKey: toHandlerKey,\n toHandlers: toHandlers,\n toRaw: toRaw,\n toRef: toRef,\n toRefs: toRefs,\n toValue: toValue,\n transformVNodeArgs: transformVNodeArgs,\n triggerRef: triggerRef,\n unref: unref,\n useAttrs: useAttrs,\n useCssModule: useCssModule,\n useCssVars: useCssVars,\n useModel: useModel,\n useSSRContext: useSSRContext,\n useSlots: useSlots,\n useTransitionState: useTransitionState,\n vModelCheckbox: vModelCheckbox,\n vModelDynamic: vModelDynamic,\n vModelRadio: vModelRadio,\n vModelSelect: vModelSelect,\n vModelText: vModelText,\n vShow: vShow,\n version: version,\n warn: warn,\n watch: watch,\n watchEffect: watchEffect,\n watchPostEffect: watchPostEffect,\n watchSyncEffect: watchSyncEffect,\n withAsyncContext: withAsyncContext,\n withCtx: withCtx,\n withDefaults: withDefaults,\n withDirectives: withDirectives,\n withKeys: withKeys,\n withMemo: withMemo,\n withModifiers: withModifiers,\n withScopeId: withScopeId\n});\n\nfunction initDev() {\n {\n initCustomFormatter();\n }\n}\n\nif (!!(process.env.NODE_ENV !== \"production\")) {\n initDev();\n}\nfunction wrappedCreateApp(...args) {\n const app = createApp(...args);\n if (compatUtils.isCompatEnabled(\"RENDER_FUNCTION\", null)) {\n app.component(\"__compat__transition\", Transition);\n app.component(\"__compat__transition-group\", TransitionGroup);\n app.component(\"__compat__keep-alive\", KeepAlive);\n app._context.directives.show = vShow;\n app._context.directives.model = vModelDynamic;\n }\n return app;\n}\nfunction createCompatVue() {\n const Vue = compatUtils.createCompatVue(createApp, wrappedCreateApp);\n extend(Vue, runtimeDom);\n return Vue;\n}\n\nconst Vue = createCompatVue();\nVue.compile = () => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Runtime compilation is not supported in this build of Vue.` + (` Configure your bundler to alias \"vue\" to \"@vue/compat/dist/vue.esm-bundler.js\".` )\n );\n }\n};\nvar Vue$1 = Vue;\n\nconst { configureCompat } = Vue$1;\n\nexport { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, EffectScope, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, ReactiveEffect, Static, Suspense, Teleport, Text, TrackOpTypes, Transition, TransitionGroup, TriggerOpTypes, VueElement, assertNumber, callWithAsyncErrorHandling, callWithErrorHandling, camelize, capitalize, cloneVNode, compatUtils, computed, configureCompat, createApp, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSSRApp, createSlots, createStaticVNode, createTextVNode, createVNode, customRef, Vue$1 as default, defineAsyncComponent, defineComponent, defineCustomElement, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSSRCustomElement, defineSlots, devtools, effect, effectScope, getCurrentInstance, getCurrentScope, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, hydrate, initCustomFormatter, initDirectivesForSSR, inject, isMemoSame, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isShallow, isVNode, markRaw, mergeDefaults, mergeModels, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, proxyRefs, pushScopeId, queuePostFlushCb, reactive, readonly, ref, registerRuntimeCompiler, render, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, shallowReactive, shallowReadonly, shallowRef, ssrContextKey, ssrUtils, stop, toDisplayString, toHandlerKey, toHandlers, toRaw, toRef, toRefs, toValue, transformVNodeArgs, triggerRef, unref, useAttrs, useCssModule, useCssVars, useModel, useSSRContext, useSlots, useTransitionState, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, vShow, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withKeys, withMemo, withModifiers, withScopeId };\n","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_vue_advanced_chat = _resolveComponent(\"vue-advanced-chat\")!\n\n return (_openBlock(), _createBlock(_component_vue_advanced_chat, {\n \"current-user-id\": _ctx.currentUserId,\n \"rooms-loaded\": _ctx.rooms.length > 0,\n \"messages-loaded\": _ctx.messagesLoaded || null,\n \"single-room\": \"true\",\n rooms: JSON.stringify(_ctx.rooms),\n \"room-id\": _ctx.rooms[0].roomId,\n \"show-files\": \"false\",\n \"show-emojis\": \"true\",\n \"show-reaction-emojis\": \"false\",\n \"show-audio\": \"false\",\n messages: JSON.stringify(_ctx.messages),\n \"message-actions\": \n JSON.stringify([\n {\n name: 'replyMessage',\n title: 'Répondre'\n }\n ])\n ,\n \"link-options\": JSON.stringify({ disabled: false, target: '_self' }),\n \"text-messages\": \n JSON.stringify({\n ROOMS_EMPTY: 'Aucune conversation',\n ROOM_EMPTY: 'Aucune conversation sélectionnée',\n NEW_MESSAGES: 'Nouveaux messages',\n MESSAGE_DELETED: 'Ce message a été supprimé',\n MESSAGES_EMPTY: 'Aucun message',\n CONVERSATION_STARTED: 'La conversation a commencée le :',\n TYPE_MESSAGE: 'Tapez votre message',\n SEARCH: 'Rechercher',\n IS_ONLINE: 'est en ligne',\n LAST_SEEN: 'dernière connexion ',\n IS_TYPING: 'est en train de taper...'\n })\n ,\n onSendMessage: _cache[0] || (_cache[0] = ($event: any) => (_ctx.sendMessage($event.detail[0])))\n }, null, 8, [\"current-user-id\", \"rooms-loaded\", \"messages-loaded\", \"rooms\", \"room-id\", \"messages\", \"message-actions\", \"link-options\", \"text-messages\"]))\n}","<template>\n <vue-advanced-chat\n :current-user-id=\"currentUserId\"\n :rooms-loaded=\"rooms.length > 0\"\n :messages-loaded=\"messagesLoaded || null\"\n single-room=\"true\"\n :rooms=\"JSON.stringify(rooms)\"\n :room-id=\"rooms[0].roomId\"\n show-files=\"false\"\n show-emojis=\"true\"\n show-reaction-emojis=\"false\"\n show-audio=\"false\"\n :messages=\"JSON.stringify(messages)\"\n :message-actions=\"\n JSON.stringify([\n {\n name: 'replyMessage',\n title: 'Répondre'\n }\n ])\n \"\n :link-options=\"JSON.stringify({ disabled: false, target: '_self' })\"\n :text-messages=\"\n JSON.stringify({\n ROOMS_EMPTY: 'Aucune conversation',\n ROOM_EMPTY: 'Aucune conversation sélectionnée',\n NEW_MESSAGES: 'Nouveaux messages',\n MESSAGE_DELETED: 'Ce message a été supprimé',\n MESSAGES_EMPTY: 'Aucun message',\n CONVERSATION_STARTED: 'La conversation a commencée le :',\n TYPE_MESSAGE: 'Tapez votre message',\n SEARCH: 'Rechercher',\n IS_ONLINE: 'est en ligne',\n LAST_SEEN: 'dernière connexion ',\n IS_TYPING: 'est en train de taper...'\n })\n \"\n @send-message=\"sendMessage($event.detail[0])\"\n />\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from \"vue\"\nimport { Message, Room, register } from \"vue-advanced-chat\"\nregister()\n\ninterface BaseComponentData {\n socket: WebSocket | null\n rooms: Room[]\n messagesLoaded: boolean\n messages: Message[]\n currentUserId: string | null\n}\n\nexport default defineComponent({\n data(): BaseComponentData {\n return {\n socket: null,\n rooms: [\n {\n roomId: \"global\",\n roomName: \"\",\n avatar: \"\",\n users: []\n }\n ],\n messagesLoaded: false,\n messages: [],\n currentUserId: null\n }\n },\n\n mounted() {\n // get room info\n let roomInfoStr: string | null = \"\"\n const roomInfoElm = document.getElementById(\"room-info\")\n if (roomInfoElm) roomInfoStr = roomInfoElm.textContent\n let roomInfo: any = null\n if (roomInfoStr) roomInfo = JSON.parse(roomInfoStr)\n else throw \"No room info provided\"\n this.rooms = [\n {\n roomId: roomInfo.room_name,\n roomName: roomInfo.room_title,\n avatar: \"\",\n // add fake users to make sure username are displayed in the chat (if less than two, name are not displayed)\n users: [\n {\n _id: \"1\",\n username: \"Fake user 1\",\n avatar: \"assets/imgs/doe.png\",\n status: {\n state: \"online\",\n lastChanged: \"today, 14:30\"\n }\n },\n {\n _id: \"2\",\n username: \"Fake user 2\",\n avatar: \"assets/imgs/snow.png\",\n status: {\n state: \"online\",\n lastChanged: \"14 July, 20:00\"\n }\n },\n {\n _id: \"3\",\n username: \"Fake user 3\",\n avatar: \"assets/imgs/snow.png\",\n status: {\n state: \"online\",\n lastChanged: \"14 July, 20:00\"\n }\n }\n ]\n }\n ]\n this.connect(roomInfo.room_name)\n this.currentUserId = roomInfo.user_id\n },\n\n methods: {\n connect(roomName: string) {\n // connect to socket\n let protocol = \"wss\"\n if (window.location.protocol != \"https:\") protocol = \"ws\"\n this.socket = new WebSocket(protocol + \"://\" + window.location.host + \"/ws/chat/\" + roomName + \"/\")\n this.fetchMessages()\n\n this.socket.onclose = () => {\n console.log(\"Chat socket closed\")\n // try to reconnect\n // setTimeout(() => {\n // this.connect(roomName)\n // }, 10000)\n }\n },\n\n async fetchMessages() {\n this.socket!.onmessage = (e) => {\n const data = JSON.parse(e.data)\n const type = data.type\n // do not load messages in case of socket reconnect\n if (type == \"initial\" && this.messagesLoaded) return\n const newMessages = data.messages as Message[]\n this.messages = [...this.messages, ...newMessages]\n if (type == \"initial\") {\n this.messagesLoaded = true\n }\n }\n },\n\n sendMessage({ content, replyMessage }: Message) {\n /** send message to socket */\n this.socket!.send(\n JSON.stringify({\n message: content,\n replyTo: replyMessage ? replyMessage._id : null\n })\n )\n }\n },\n\n computed: {\n showAudio() {\n return undefined\n }\n }\n})\n</script>\n\n<style>\n.vac-message-wrapper .vac-offset-current {\n margin-left: 15%;\n}\n.vac-message-wrapper .vac-message-box {\n max-width: 80%;\n}\n</style>\n","function makeMap$2(str, expectsLowerCase) {\n const map = /* @__PURE__ */ Object.create(null);\n const list2 = str.split(\",\");\n for (let i = 0; i < list2.length; i++) {\n map[list2[i]] = true;\n }\n return expectsLowerCase ? (val) => !!map[val.toLowerCase()] : (val) => !!map[val];\n}\nconst NOOP$1 = () => {\n};\nconst extend$2 = Object.assign;\nconst hasOwnProperty$3 = Object.prototype.hasOwnProperty;\nconst hasOwn$1 = (val, key) => hasOwnProperty$3.call(val, key);\nconst isArray$2 = Array.isArray;\nconst isMap$1 = (val) => toTypeString$1(val) === \"[object Map]\";\nconst isFunction$2 = (val) => typeof val === \"function\";\nconst isString$2 = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject$2 = (val) => val !== null && typeof val === \"object\";\nconst objectToString$1 = Object.prototype.toString;\nconst toTypeString$1 = (value) => objectToString$1.call(value);\nconst toRawType = (value) => {\n return toTypeString$1(value).slice(8, -1);\n};\nconst isIntegerKey = (key) => isString$2(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst hasChanged$1 = (value, oldValue) => !Object.is(value, oldValue);\nconst def$1 = (obj, key, value) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n value\n });\n};\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.active = true;\n this.effects = [];\n this.cleanups = [];\n if (!detached && activeEffectScope) {\n this.parent = activeEffectScope;\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;\n }\n }\n run(fn) {\n if (this.active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n }\n }\n on() {\n activeEffectScope = this;\n }\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this.active) {\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n if (this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.active = false;\n }\n }\n}\nfunction recordEffectScope(effect, scope = activeEffectScope) {\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nconst createDep = (effects) => {\n const dep = new Set(effects);\n dep.w = 0;\n dep.n = 0;\n return dep;\n};\nconst wasTracked = (dep) => (dep.w & trackOpBit) > 0;\nconst newTracked = (dep) => (dep.n & trackOpBit) > 0;\nconst initDepMarkers = ({ deps }) => {\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].w |= trackOpBit;\n }\n }\n};\nconst finalizeDepMarkers = (effect) => {\n const { deps } = effect;\n if (deps.length) {\n let ptr = 0;\n for (let i = 0; i < deps.length; i++) {\n const dep = deps[i];\n if (wasTracked(dep) && !newTracked(dep)) {\n dep.delete(effect);\n } else {\n deps[ptr++] = dep;\n }\n dep.w &= ~trackOpBit;\n dep.n &= ~trackOpBit;\n }\n deps.length = ptr;\n }\n};\nconst targetMap = /* @__PURE__ */ new WeakMap();\nlet effectTrackDepth = 0;\nlet trackOpBit = 1;\nconst maxMarkerBits = 30;\nlet activeEffect;\nconst ITERATE_KEY = Symbol(\"\");\nconst MAP_KEY_ITERATE_KEY = Symbol(\"\");\nclass ReactiveEffect {\n constructor(fn, scheduler = null, scope) {\n this.fn = fn;\n this.scheduler = scheduler;\n this.active = true;\n this.deps = [];\n this.parent = void 0;\n recordEffectScope(this, scope);\n }\n run() {\n if (!this.active) {\n return this.fn();\n }\n let parent = activeEffect;\n let lastShouldTrack = shouldTrack;\n while (parent) {\n if (parent === this) {\n return;\n }\n parent = parent.parent;\n }\n try {\n this.parent = activeEffect;\n activeEffect = this;\n shouldTrack = true;\n trackOpBit = 1 << ++effectTrackDepth;\n if (effectTrackDepth <= maxMarkerBits) {\n initDepMarkers(this);\n } else {\n cleanupEffect(this);\n }\n return this.fn();\n } finally {\n if (effectTrackDepth <= maxMarkerBits) {\n finalizeDepMarkers(this);\n }\n trackOpBit = 1 << --effectTrackDepth;\n activeEffect = this.parent;\n shouldTrack = lastShouldTrack;\n this.parent = void 0;\n if (this.deferStop) {\n this.stop();\n }\n }\n }\n stop() {\n if (activeEffect === this) {\n this.deferStop = true;\n } else if (this.active) {\n cleanupEffect(this);\n if (this.onStop) {\n this.onStop();\n }\n this.active = false;\n }\n }\n}\nfunction cleanupEffect(effect) {\n const { deps } = effect;\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].delete(effect);\n }\n deps.length = 0;\n }\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction track(target, type, key) {\n if (shouldTrack && activeEffect) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = createDep());\n }\n trackEffects(dep);\n }\n}\nfunction trackEffects(dep, debuggerEventExtraInfo) {\n let shouldTrack2 = false;\n if (effectTrackDepth <= maxMarkerBits) {\n if (!newTracked(dep)) {\n dep.n |= trackOpBit;\n shouldTrack2 = !wasTracked(dep);\n }\n } else {\n shouldTrack2 = !dep.has(activeEffect);\n }\n if (shouldTrack2) {\n dep.add(activeEffect);\n activeEffect.deps.push(dep);\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n return;\n }\n let deps = [];\n if (type === \"clear\") {\n deps = [...depsMap.values()];\n } else if (key === \"length\" && isArray$2(target)) {\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 >= newValue) {\n deps.push(dep);\n }\n });\n } else {\n if (key !== void 0) {\n deps.push(depsMap.get(key));\n }\n switch (type) {\n case \"add\":\n if (!isArray$2(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap$1(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isIntegerKey(key)) {\n deps.push(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!isArray$2(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap$1(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap$1(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n if (deps.length === 1) {\n if (deps[0]) {\n {\n triggerEffects(deps[0]);\n }\n }\n } else {\n const effects = [];\n for (const dep of deps) {\n if (dep) {\n effects.push(...dep);\n }\n }\n {\n triggerEffects(createDep(effects));\n }\n }\n}\nfunction triggerEffects(dep, debuggerEventExtraInfo) {\n const effects = isArray$2(dep) ? dep : [...dep];\n for (const effect of effects) {\n if (effect.computed) {\n triggerEffect(effect);\n }\n }\n for (const effect of effects) {\n if (!effect.computed) {\n triggerEffect(effect);\n }\n }\n}\nfunction triggerEffect(effect, debuggerEventExtraInfo) {\n if (effect !== activeEffect || effect.allowRecurse) {\n if (effect.scheduler) {\n effect.scheduler();\n } else {\n effect.run();\n }\n }\n}\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap$2(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nconst get$1 = /* @__PURE__ */ createGetter();\nconst shallowGet = /* @__PURE__ */ createGetter(false, true);\nconst readonlyGet = /* @__PURE__ */ createGetter(true);\nconst arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations = {};\n [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\", i + \"\");\n }\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n return arr[key](...args.map(toRaw));\n } else {\n return res;\n }\n };\n });\n [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n pauseTracking();\n const res = toRaw(this)[key].apply(this, args);\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n}\nfunction createGetter(isReadonly2 = false, shallow = false) {\n return function get2(target, key, receiver) {\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return shallow;\n } else if (key === \"__v_raw\" && receiver === (isReadonly2 ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target)) {\n return target;\n }\n const targetIsArray = isArray$2(target);\n if (!isReadonly2 && targetIsArray && hasOwn$1(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (shallow) {\n return res;\n }\n if (isRef(res)) {\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject$2(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n };\n}\nconst set$1 = /* @__PURE__ */ createSetter();\nconst shallowSet = /* @__PURE__ */ createSetter(true);\nfunction createSetter(shallow = false) {\n return function set2(target, key, value, receiver) {\n let oldValue = target[key];\n if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) {\n return false;\n }\n if (!shallow && !isReadonly(value)) {\n if (!isShallow(value)) {\n value = toRaw(value);\n oldValue = toRaw(oldValue);\n }\n if (!isArray$2(target) && isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n }\n }\n const hadKey = isArray$2(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn$1(target, key);\n const result = Reflect.set(target, key, value, receiver);\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged$1(value, oldValue)) {\n trigger(target, \"set\", key, value);\n }\n }\n return result;\n };\n}\nfunction deleteProperty(target, key) {\n const hadKey = hasOwn$1(target, key);\n target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0);\n }\n return result;\n}\nfunction has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n}\nfunction ownKeys(target) {\n track(target, \"iterate\", isArray$2(target) ? \"length\" : ITERATE_KEY);\n return Reflect.ownKeys(target);\n}\nconst mutableHandlers = {\n get: get$1,\n set: set$1,\n deleteProperty,\n has,\n ownKeys\n};\nconst readonlyHandlers = {\n get: readonlyGet,\n set(target, key) {\n return true;\n },\n deleteProperty(target, key) {\n return true;\n }\n};\nconst shallowReactiveHandlers = /* @__PURE__ */ extend$2({}, mutableHandlers, {\n get: shallowGet,\n set: shallowSet\n});\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get$1$1(target, key, isReadonly2 = false, isShallow2 = false) {\n target = target[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly2) {\n if (key !== rawKey) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has: has2 } = getProto(rawTarget);\n const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n if (has2.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has2.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n}\nfunction has$1(key, isReadonly2 = false) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly2) {\n if (key !== rawKey) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly2 = false) {\n target = target[\"__v_raw\"];\n !isReadonly2 && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n}\nfunction add(value) {\n value = toRaw(value);\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n}\nfunction set$1$1(key, value) {\n value = toRaw(value);\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n }\n const oldValue = get2.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged$1(value, oldValue)) {\n trigger(target, \"set\", key, value);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n }\n get2 ? get2.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\", void 0, void 0);\n }\n return result;\n}\nfunction createForEach(isReadonly2, isShallow2) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly2, isShallow2) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap$1(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && track(rawTarget, \"iterate\", isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);\n return {\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n return type === \"delete\" ? false : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations2 = {\n get(key) {\n return get$1$1(this, key);\n },\n get size() {\n return size(this);\n },\n has: has$1,\n add,\n set: set$1$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations2 = {\n get(key) {\n return get$1$1(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has: has$1,\n add,\n set: set$1$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations2 = {\n get(key) {\n return get$1$1(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations2 = {\n get(key) {\n return get$1$1(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = [\"keys\", \"values\", \"entries\", Symbol.iterator];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod(method, false, false);\n readonlyInstrumentations2[method] = createIterableMethod(method, true, false);\n shallowInstrumentations2[method] = createIterableMethod(method, false, true);\n shallowReadonlyInstrumentations2[method] = createIterableMethod(method, true, true);\n });\n return [\n mutableInstrumentations2,\n readonlyInstrumentations2,\n shallowInstrumentations2,\n shallowReadonlyInstrumentations2\n ];\n}\nconst [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* @__PURE__ */ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly2, shallow) {\n const instrumentations = shallow ? isReadonly2 ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly2 ? readonlyInstrumentations : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(hasOwn$1(instrumentations, key) && key in target ? instrumentations : target, key, receiver);\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2;\n default:\n return 0;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);\n}\nfunction shallowReactive(target) {\n return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);\n}\nfunction readonly(target) {\n return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject$2(target)) {\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0) {\n return target;\n }\n const proxy = new Proxy(target, targetType === 2 ? collectionHandlers : baseHandlers);\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n def$1(value, \"__v_skip\", true);\n return value;\n}\nconst toReactive = (value) => isObject$2(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject$2(value) ? readonly(value) : value;\nfunction trackRefValue(ref) {\n if (shouldTrack && activeEffect) {\n ref = toRaw(ref);\n {\n trackEffects(ref.dep || (ref.dep = createDep()));\n }\n }\n}\nfunction triggerRefValue(ref, newVal) {\n ref = toRaw(ref);\n if (ref.dep) {\n {\n triggerEffects(ref.dep);\n }\n }\n}\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction unref(ref) {\n return isRef(ref) ? ref.value : ref;\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass ComputedRefImpl {\n constructor(getter, _setter, isReadonly2, isSSR) {\n this._setter = _setter;\n this.dep = void 0;\n this.__v_isRef = true;\n this._dirty = true;\n this.effect = new ReactiveEffect(getter, () => {\n if (!this._dirty) {\n this._dirty = true;\n triggerRefValue(this);\n }\n });\n this.effect.computed = this;\n this.effect.active = this._cacheable = !isSSR;\n this[\"__v_isReadonly\"] = isReadonly2;\n }\n get value() {\n const self2 = toRaw(this);\n trackRefValue(self2);\n if (self2._dirty || !self2._cacheable) {\n self2._dirty = false;\n self2._value = self2.effect.run();\n }\n return self2._value;\n }\n set value(newValue) {\n this._setter(newValue);\n }\n}\nfunction computed$1(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n const onlyGetter = isFunction$2(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = NOOP$1;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\n return cRef;\n}\nfunction makeMap$1(str, expectsLowerCase) {\n const map = /* @__PURE__ */ Object.create(null);\n const list2 = str.split(\",\");\n for (let i = 0; i < list2.length; i++) {\n map[list2[i]] = true;\n }\n return expectsLowerCase ? (val) => !!map[val.toLowerCase()] : (val) => !!map[val];\n}\nfunction normalizeStyle(value) {\n if (isArray$1(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString$1(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString$1(value)) {\n return value;\n } else if (isObject$1(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:(.+)/;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString$1(value)) {\n res = value;\n } else if (isArray$1(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject$1(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props)\n return null;\n let { class: klass, style } = props;\n if (klass && !isString$1(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\nconst toDisplayString = (val) => {\n return isString$1(val) ? val : val == null ? \"\" : isArray$1(val) || isObject$1(val) && (val.toString === objectToString || !isFunction$1(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (val && val.__v_isRef) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce((entries, [key, val2]) => {\n entries[`${key} =>`] = val2;\n return entries;\n }, {})\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()]\n };\n } else if (isObject$1(val) && !isArray$1(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst EMPTY_OBJ = {};\nconst EMPTY_ARR = [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst onRE$1 = /^on[^a-z]/;\nconst isOn$1 = (key) => onRE$1.test(key);\nconst isModelListener$1 = (key) => key.startsWith(\"onUpdate:\");\nconst extend$1 = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty$2 = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty$2.call(val, key);\nconst isArray$1 = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isFunction$1 = (val) => typeof val === \"function\";\nconst isString$1 = (val) => typeof val === \"string\";\nconst isObject$1 = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return isObject$1(val) && isFunction$1(val.then) && isFunction$1(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isReservedProp = /* @__PURE__ */ makeMap$1(\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst cacheStringFunction$1 = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE$1 = /-(\\w)/g;\nconst camelize$1 = cacheStringFunction$1((str) => {\n return str.replace(camelizeRE$1, (_, c) => c ? c.toUpperCase() : \"\");\n});\nconst hyphenateRE$1 = /\\B([A-Z])/g;\nconst hyphenate$1 = cacheStringFunction$1((str) => str.replace(hyphenateRE$1, \"-$1\").toLowerCase());\nconst capitalize$1 = cacheStringFunction$1((str) => str.charAt(0).toUpperCase() + str.slice(1));\nconst toHandlerKey = cacheStringFunction$1((str) => str ? `on${capitalize$1(str)}` : ``);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](arg);\n }\n};\nconst def = (obj, key, value) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n value\n });\n};\nconst toNumber$1 = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nfunction callWithErrorHandling(fn, instance2, type, args) {\n let res;\n try {\n res = args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance2, type);\n }\n return res;\n}\nfunction callWithAsyncErrorHandling(fn, instance2, type, args) {\n if (isFunction$1(fn)) {\n const res = callWithErrorHandling(fn, instance2, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance2, type);\n });\n }\n return res;\n }\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance2, type, args));\n }\n return values;\n}\nfunction handleError(err, instance2, type, throwInDev = true) {\n const contextVNode = instance2 ? instance2.vnode : null;\n if (instance2) {\n let cur = instance2.parent;\n const exposedInstance = instance2.proxy;\n const errorInfo = type;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n const appErrorHandler = instance2.appContext.config.errorHandler;\n if (appErrorHandler) {\n callWithErrorHandling(appErrorHandler, null, 10, [err, exposedInstance, errorInfo]);\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\n {\n console.error(err);\n }\n}\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\nconst pendingPreFlushCbs = [];\nlet activePreFlushCbs = null;\nlet preFlushIndex = 0;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nlet currentPreFlushParentJob = null;\nfunction nextTick(fn) {\n const p2 = currentFlushPromise || resolvedPromise;\n return fn ? p2.then(this ? fn.bind(this) : fn) : p2;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJobId = getId(queue[middle]);\n middleJobId < id ? start = middle + 1 : end = middle;\n }\n return start;\n}\nfunction queueJob(job) {\n if ((!queue.length || !queue.includes(job, isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex)) && job !== currentPreFlushParentJob) {\n if (job.id == null) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(job.id), 0, job);\n }\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true;\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction invalidateJob(job) {\n const i = queue.indexOf(job);\n if (i > flushIndex) {\n queue.splice(i, 1);\n }\n}\nfunction queueCb(cb, activeQueue, pendingQueue, index) {\n if (!isArray$1(cb)) {\n if (!activeQueue || !activeQueue.includes(cb, cb.allowRecurse ? index + 1 : index)) {\n pendingQueue.push(cb);\n }\n } else {\n pendingQueue.push(...cb);\n }\n queueFlush();\n}\nfunction queuePreFlushCb(cb) {\n queueCb(cb, activePreFlushCbs, pendingPreFlushCbs, preFlushIndex);\n}\nfunction queuePostFlushCb(cb) {\n queueCb(cb, activePostFlushCbs, pendingPostFlushCbs, postFlushIndex);\n}\nfunction flushPreFlushCbs(seen, parentJob = null) {\n if (pendingPreFlushCbs.length) {\n currentPreFlushParentJob = parentJob;\n activePreFlushCbs = [...new Set(pendingPreFlushCbs)];\n pendingPreFlushCbs.length = 0;\n for (preFlushIndex = 0; preFlushIndex < activePreFlushCbs.length; preFlushIndex++) {\n activePreFlushCbs[preFlushIndex]();\n }\n activePreFlushCbs = null;\n preFlushIndex = 0;\n currentPreFlushParentJob = null;\n flushPreFlushCbs(seen, parentJob);\n }\n}\nfunction flushPostFlushCbs(seen) {\n flushPreFlushCbs();\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)];\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n activePostFlushCbs.sort((a, b) => getId(a) - getId(b));\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n activePostFlushCbs[postFlushIndex]();\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nfunction flushJobs(seen) {\n isFlushPending = false;\n isFlushing = true;\n flushPreFlushCbs(seen);\n queue.sort((a, b) => getId(a) - getId(b));\n const check = NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && job.active !== false) {\n if (false)\n ;\n callWithErrorHandling(job, null, 14);\n }\n }\n } finally {\n flushIndex = 0;\n queue.length = 0;\n flushPostFlushCbs();\n isFlushing = false;\n currentFlushPromise = null;\n if (queue.length || pendingPreFlushCbs.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction emit$1(instance2, event, ...rawArgs) {\n if (instance2.isUnmounted)\n return;\n const props = instance2.vnode.props || EMPTY_OBJ;\n let args = rawArgs;\n const isModelListener2 = event.startsWith(\"update:\");\n const modelArg = isModelListener2 && event.slice(7);\n if (modelArg && modelArg in props) {\n const modifiersKey = `${modelArg === \"modelValue\" ? \"model\" : modelArg}Modifiers`;\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\n if (trim) {\n args = rawArgs.map((a) => a.trim());\n }\n if (number) {\n args = rawArgs.map(toNumber$1);\n }\n }\n let handlerName;\n let handler = props[handlerName = toHandlerKey(event)] || props[handlerName = toHandlerKey(camelize$1(event))];\n if (!handler && isModelListener2) {\n handler = props[handlerName = toHandlerKey(hyphenate$1(event))];\n }\n if (handler) {\n callWithAsyncErrorHandling(handler, instance2, 6, args);\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance2.emitted) {\n instance2.emitted = {};\n } else if (instance2.emitted[handlerName]) {\n return;\n }\n instance2.emitted[handlerName] = true;\n callWithAsyncErrorHandling(onceHandler, instance2, 6, args);\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== void 0) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n let hasExtends = false;\n if (!isFunction$1(comp)) {\n const extendEmits = (raw2) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend$1(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n cache.set(comp, null);\n return null;\n }\n if (isArray$1(raw)) {\n raw.forEach((key) => normalized[key] = null);\n } else {\n extend$1(normalized, raw);\n }\n cache.set(comp, normalized);\n return normalized;\n}\nfunction isEmitListener(options, key) {\n if (!options || !isOn$1(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, \"\");\n return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate$1(key)) || hasOwn(options, key);\n}\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance2) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance2;\n currentScopeId = instance2 && instance2.type.__scopeId || null;\n return prev;\n}\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx)\n return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n const res = fn(...args);\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\nfunction markAttrsAccessed() {\n}\nfunction renderComponentRoot(instance2) {\n const { type: Component, vnode, proxy, withProxy, props, propsOptions: [propsOptions], slots, attrs, emit, render: render2, renderCache, data, setupState, ctx, inheritAttrs } = instance2;\n let result;\n let fallthroughAttrs;\n const prev = setCurrentRenderingInstance(instance2);\n try {\n if (vnode.shapeFlag & 4) {\n const proxyToUse = withProxy || proxy;\n result = normalizeVNode(render2.call(proxyToUse, proxyToUse, renderCache, props, setupState, data, ctx));\n fallthroughAttrs = attrs;\n } else {\n const render3 = Component;\n if (false)\n ;\n result = normalizeVNode(render3.length > 1 ? render3(props, false ? {\n get attrs() {\n markAttrsAccessed();\n return attrs;\n },\n slots,\n emit\n } : { attrs, slots, emit }) : render3(props, null));\n fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);\n }\n } catch (err) {\n blockStack.length = 0;\n handleError(err, instance2, 1);\n result = createVNode(Comment);\n }\n let root = result;\n if (fallthroughAttrs && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs);\n const { shapeFlag } = root;\n if (keys.length) {\n if (shapeFlag & (1 | 6)) {\n if (propsOptions && keys.some(isModelListener$1)) {\n fallthroughAttrs = filterModelListeners(fallthroughAttrs, propsOptions);\n }\n root = cloneVNode(root, fallthroughAttrs);\n }\n }\n }\n if (vnode.dirs) {\n root = cloneVNode(root);\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n }\n if (vnode.transition) {\n root.transition = vnode.transition;\n }\n {\n result = root;\n }\n setCurrentRenderingInstance(prev);\n return result;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === \"class\" || key === \"style\" || isOn$1(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nconst filterModelListeners = (attrs, props) => {\n const res = {};\n for (const key in attrs) {\n if (!isModelListener$1(key) || !(key.slice(9) in props)) {\n res[key] = attrs[key];\n }\n }\n return res;\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n const { props: prevProps, children: prevChildren, component } = prevVNode;\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n const emits = component.emitsOptions;\n if (nextVNode.dirs || nextVNode.transition) {\n return true;\n }\n if (optimized && patchFlag >= 0) {\n if (patchFlag & 1024) {\n return true;\n }\n if (patchFlag & 16) {\n if (!prevProps) {\n return !!nextProps;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n } else if (patchFlag & 8) {\n const dynamicProps = nextVNode.dynamicProps;\n for (let i = 0; i < dynamicProps.length; i++) {\n const key = dynamicProps[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {\n return true;\n }\n }\n }\n } else {\n if (prevChildren || nextChildren) {\n if (!nextChildren || !nextChildren.$stable) {\n return true;\n }\n }\n if (prevProps === nextProps) {\n return false;\n }\n if (!prevProps) {\n return !!nextProps;\n }\n if (!nextProps) {\n return true;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n const nextKeys = Object.keys(nextProps);\n if (nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {\n return true;\n }\n }\n return false;\n}\nfunction updateHOCHostEl({ vnode, parent }, el) {\n while (parent && parent.subTree === vnode) {\n (vnode = parent.vnode).el = el;\n parent = parent.parent;\n }\n}\nconst isSuspense = (type) => type.__isSuspense;\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (isArray$1(fn)) {\n suspense.effects.push(...fn);\n } else {\n suspense.effects.push(fn);\n }\n } else {\n queuePostFlushCb(fn);\n }\n}\nfunction provide(key, value) {\n if (!currentInstance)\n ;\n else {\n let provides = currentInstance.provides;\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n provides[key] = value;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n const instance2 = currentInstance || currentRenderingInstance;\n if (instance2) {\n const provides = instance2.parent == null ? instance2.vnode.appContext && instance2.vnode.appContext.provides : instance2.parent.provides;\n if (provides && key in provides) {\n return provides[key];\n } else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction$1(defaultValue) ? defaultValue.call(instance2.proxy) : defaultValue;\n } else\n ;\n }\n}\nconst INITIAL_WATCHER_VALUE = {};\nfunction watch(source, cb, options) {\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, { immediate, deep, flush: flush2, onTrack, onTrigger } = EMPTY_OBJ) {\n const instance2 = currentInstance;\n let getter;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => source;\n deep = true;\n } else if (isArray$1(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return traverse(s);\n } else if (isFunction$1(s)) {\n return callWithErrorHandling(s, instance2, 2);\n } else\n ;\n });\n } else if (isFunction$1(source)) {\n if (cb) {\n getter = () => callWithErrorHandling(source, instance2, 2);\n } else {\n getter = () => {\n if (instance2 && instance2.isUnmounted) {\n return;\n }\n if (cleanup) {\n cleanup();\n }\n return callWithAsyncErrorHandling(source, instance2, 3, [onCleanup]);\n };\n }\n } else {\n getter = NOOP;\n }\n if (cb && deep) {\n const baseGetter = getter;\n getter = () => traverse(baseGetter());\n }\n let cleanup;\n let onCleanup = (fn) => {\n cleanup = effect.onStop = () => {\n callWithErrorHandling(fn, instance2, 4);\n };\n };\n if (isInSSRComponentSetup) {\n onCleanup = NOOP;\n if (!cb) {\n getter();\n } else if (immediate) {\n callWithAsyncErrorHandling(cb, instance2, 3, [\n getter(),\n isMultiSource ? [] : void 0,\n onCleanup\n ]);\n }\n return NOOP;\n }\n let oldValue = isMultiSource ? [] : INITIAL_WATCHER_VALUE;\n const job = () => {\n if (!effect.active) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || false) {\n if (cleanup) {\n cleanup();\n }\n callWithAsyncErrorHandling(cb, instance2, 3, [\n newValue,\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n } else {\n effect.run();\n }\n };\n job.allowRecurse = !!cb;\n let scheduler;\n if (flush2 === \"sync\") {\n scheduler = job;\n } else if (flush2 === \"post\") {\n scheduler = () => queuePostRenderEffect(job, instance2 && instance2.suspense);\n } else {\n scheduler = () => queuePreFlushCb(job);\n }\n const effect = new ReactiveEffect(getter, scheduler);\n if (cb) {\n if (immediate) {\n job();\n } else {\n oldValue = effect.run();\n }\n } else if (flush2 === \"post\") {\n queuePostRenderEffect(effect.run.bind(effect), instance2 && instance2.suspense);\n } else {\n effect.run();\n }\n return () => {\n effect.stop();\n if (instance2 && instance2.scope) {\n remove(instance2.scope.effects, effect);\n }\n };\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString$1(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction$1(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const cur = currentInstance;\n setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n if (cur) {\n setCurrentInstance(cur);\n } else {\n unsetCurrentInstance();\n }\n return res;\n}\nfunction createPathGetter(ctx, path2) {\n const segments = path2.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\nfunction traverse(value, seen) {\n if (!isObject$1(value) || value[\"__v_skip\"]) {\n return value;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n if (isRef(value)) {\n traverse(value.value, seen);\n } else if (isArray$1(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], seen);\n }\n }\n return value;\n}\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n },\n setup(props, { slots }) {\n const instance2 = getCurrentInstance();\n const state = useTransitionState();\n let prevTransitionKey;\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n let child = children[0];\n if (children.length > 1) {\n for (const c of children) {\n if (c.type !== Comment) {\n child = c;\n break;\n }\n }\n }\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getKeepAliveChild(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n const enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance2);\n setTransitionHooks(innerChild, enterHooks);\n const oldChild = instance2.subTree;\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\n let transitionKeyChanged = false;\n const { getTransitionKey } = innerChild.type;\n if (getTransitionKey) {\n const key = getTransitionKey();\n if (prevTransitionKey === void 0) {\n prevTransitionKey = key;\n } else if (key !== prevTransitionKey) {\n prevTransitionKey = key;\n transitionKeyChanged = true;\n }\n }\n if (oldInnerChild && oldInnerChild.type !== Comment && (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\n const leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance2);\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\") {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n instance2.update();\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el._leaveCb = () => {\n earlyRemove();\n el._leaveCb = void 0;\n delete enterHooks.delayedLeave;\n };\n enterHooks.delayedLeave = delayedLeave;\n };\n }\n }\n return child;\n };\n }\n};\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance2) {\n const { appear, mode, persisted = false, onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, onBeforeLeave, onLeave, onAfterLeave, onLeaveCancelled, onBeforeAppear, onAppear, onAfterAppear, onAppearCancelled } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook2 = (hook, args) => {\n hook && callWithAsyncErrorHandling(hook, instance2, 9, args);\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook2(hook, args);\n if (isArray$1(hook)) {\n if (hook.every((hook2) => hook2.length <= 1))\n done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el._leaveCb) {\n el._leaveCb(true);\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el._leaveCb) {\n leavingVNode.el._leaveCb();\n }\n callHook2(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n const done = el._enterCb = (cancelled) => {\n if (called)\n return;\n called = true;\n if (cancelled) {\n callHook2(cancelHook, [el]);\n } else {\n callHook2(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el._enterCb = void 0;\n };\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove2) {\n const key2 = String(vnode.key);\n if (el._enterCb) {\n el._enterCb(true);\n }\n if (state.isUnmounting) {\n return remove2();\n }\n callHook2(onBeforeLeave, [el]);\n let called = false;\n const done = el._leaveCb = (cancelled) => {\n if (called)\n return;\n called = true;\n remove2();\n if (cancelled) {\n callHook2(onLeaveCancelled, [el]);\n } else {\n callHook2(onAfterLeave, [el]);\n }\n el._leaveCb = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n return resolveTransitionHooks(vnode2, props, state, instance2);\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getKeepAliveChild(vnode) {\n return isKeepAlive(vnode) ? vnode.children ? vnode.children[0] : void 0 : vnode;\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128)\n keyedFragmentCount++;\n ret = ret.concat(getTransitionRawChildren(child.children, keepComment, key));\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\nfunction defineComponent(options) {\n return isFunction$1(options) ? { setup: options, name: options.name } : options;\n}\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(type, hook, keepAliveRoot, true);\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n if (target.isUnmounted) {\n return;\n }\n pauseTracking();\n setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n unsetCurrentInstance();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => (!isInSSRComponentSetup || lifecycle === \"sp\") && injectHook(lifecycle, hook, target);\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\"bu\");\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\"bum\");\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\"sp\");\nconst onRenderTriggered = createHook(\"rtg\");\nconst onRenderTracked = createHook(\"rtc\");\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\nfunction withDirectives(vnode, directives) {\n const internalInstance = currentRenderingInstance;\n if (internalInstance === null) {\n return vnode;\n }\n const instance2 = getExposeProxy(internalInstance) || internalInstance.proxy;\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (isFunction$1(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance: instance2,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance2, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance2, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol();\nfunction resolveDynamicComponent(component) {\n if (isString$1(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance2 = currentRenderingInstance || currentInstance;\n if (instance2) {\n const Component = instance2.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(Component, false);\n if (selfName && (selfName === name || selfName === camelize$1(name) || selfName === capitalize$1(camelize$1(name)))) {\n return Component;\n }\n }\n const res = resolve(instance2[type] || Component[type], name) || resolve(instance2.appContext[type], name);\n if (!res && maybeSelfReference) {\n return Component;\n }\n return res;\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize$1(name)] || registry[capitalize$1(camelize$1(name))]);\n}\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n if (isArray$1(source) || isString$1(source)) {\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(source[i], i, void 0, cached && cached[i]);\n }\n } else if (typeof source === \"number\") {\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n } else if (isObject$1(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray$1(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.fn;\n }\n }\n return slots;\n}\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) {\n return createVNode(\"slot\", name === \"default\" ? null : { name }, fallback && fallback());\n }\n let slot = slots[name];\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const rendered = createBlock(Fragment, { key: props.key || `_${name}` }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 ? 64 : -2);\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child))\n return true;\n if (child.type === Comment)\n return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\nconst getPublicInstance = (i) => {\n if (!i)\n return null;\n if (isStatefulComponent(i))\n return getExposeProxy(i) || i.proxy;\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = /* @__PURE__ */ extend$1(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => i.props,\n $attrs: (i) => i.attrs,\n $slots: (i) => i.slots,\n $refs: (i) => i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $emit: (i) => i.emit,\n $options: (i) => resolveMergedOptions(i),\n $forceUpdate: (i) => i.f || (i.f = () => queueJob(i.update)),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => instanceWatch.bind(i)\n});\nconst PublicInstanceProxyHandlers = {\n get({ _: instance2 }, key) {\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance2;\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1:\n return setupState[key];\n case 2:\n return data[key];\n case 4:\n return ctx[key];\n case 3:\n return props[key];\n }\n } else if (setupState !== EMPTY_OBJ && hasOwn(setupState, key)) {\n accessCache[key] = 1;\n return setupState[key];\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2;\n return data[key];\n } else if ((normalizedProps = instance2.propsOptions[0]) && hasOwn(normalizedProps, key)) {\n accessCache[key] = 3;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4;\n return ctx[key];\n } else if (shouldCacheAccess) {\n accessCache[key] = 0;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance2, \"get\", key);\n }\n return publicGetter(instance2);\n } else if ((cssModule = type.__cssModules) && (cssModule = cssModule[key])) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4;\n return ctx[key];\n } else if (globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)) {\n {\n return globalProperties[key];\n }\n } else\n ;\n },\n set({ _: instance2 }, key, value) {\n const { data, setupState, ctx } = instance2;\n if (setupState !== EMPTY_OBJ && hasOwn(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n data[key] = value;\n return true;\n } else if (hasOwn(instance2.props, key)) {\n return false;\n }\n if (key[0] === \"$\" && key.slice(1) in instance2) {\n return false;\n } else {\n {\n ctx[key] = value;\n }\n }\n return true;\n },\n has({ _: { data, setupState, accessCache, ctx, appContext, propsOptions } }, key) {\n let normalizedProps;\n return !!accessCache[key] || data !== EMPTY_OBJ && hasOwn(data, key) || setupState !== EMPTY_OBJ && hasOwn(setupState, key) || (normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key);\n },\n defineProperty(target, key, descriptor) {\n if (descriptor.get != null) {\n target._.accessCache[key] = 0;\n } else if (hasOwn(descriptor, \"value\")) {\n this.set(target, key, descriptor.value, null);\n }\n return Reflect.defineProperty(target, key, descriptor);\n }\n};\nlet shouldCacheAccess = true;\nfunction applyOptions(instance2) {\n const options = resolveMergedOptions(instance2);\n const publicThis = instance2.proxy;\n const ctx = instance2.ctx;\n shouldCacheAccess = false;\n if (options.beforeCreate) {\n callHook$1(options.beforeCreate, instance2, \"bc\");\n }\n const {\n data: dataOptions,\n computed: computedOptions,\n methods,\n watch: watchOptions,\n provide: provideOptions,\n inject: injectOptions,\n created,\n beforeMount: beforeMount2,\n mounted,\n beforeUpdate,\n updated: updated2,\n activated,\n deactivated,\n beforeDestroy,\n beforeUnmount,\n destroyed,\n unmounted: unmounted2,\n render: render2,\n renderTracked,\n renderTriggered,\n errorCaptured,\n serverPrefetch,\n expose,\n inheritAttrs,\n components,\n directives,\n filters\n } = options;\n const checkDuplicateProperties = null;\n if (injectOptions) {\n resolveInjections(injectOptions, ctx, checkDuplicateProperties, instance2.appContext.config.unwrapInjectedRef);\n }\n if (methods) {\n for (const key in methods) {\n const methodHandler = methods[key];\n if (isFunction$1(methodHandler)) {\n {\n ctx[key] = methodHandler.bind(publicThis);\n }\n }\n }\n }\n if (dataOptions) {\n const data = dataOptions.call(publicThis, publicThis);\n if (!isObject$1(data))\n ;\n else {\n instance2.data = reactive(data);\n }\n }\n shouldCacheAccess = true;\n if (computedOptions) {\n for (const key in computedOptions) {\n const opt = computedOptions[key];\n const get2 = isFunction$1(opt) ? opt.bind(publicThis, publicThis) : isFunction$1(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;\n const set2 = !isFunction$1(opt) && isFunction$1(opt.set) ? opt.set.bind(publicThis) : NOOP;\n const c = computed({\n get: get2,\n set: set2\n });\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => c.value,\n set: (v) => c.value = v\n });\n }\n }\n if (watchOptions) {\n for (const key in watchOptions) {\n createWatcher(watchOptions[key], ctx, publicThis, key);\n }\n }\n if (provideOptions) {\n const provides = isFunction$1(provideOptions) ? provideOptions.call(publicThis) : provideOptions;\n Reflect.ownKeys(provides).forEach((key) => {\n provide(key, provides[key]);\n });\n }\n if (created) {\n callHook$1(created, instance2, \"c\");\n }\n function registerLifecycleHook(register2, hook) {\n if (isArray$1(hook)) {\n hook.forEach((_hook) => register2(_hook.bind(publicThis)));\n } else if (hook) {\n register2(hook.bind(publicThis));\n }\n }\n registerLifecycleHook(onBeforeMount, beforeMount2);\n registerLifecycleHook(onMounted, mounted);\n registerLifecycleHook(onBeforeUpdate, beforeUpdate);\n registerLifecycleHook(onUpdated, updated2);\n registerLifecycleHook(onActivated, activated);\n registerLifecycleHook(onDeactivated, deactivated);\n registerLifecycleHook(onErrorCaptured, errorCaptured);\n registerLifecycleHook(onRenderTracked, renderTracked);\n registerLifecycleHook(onRenderTriggered, renderTriggered);\n registerLifecycleHook(onBeforeUnmount, beforeUnmount);\n registerLifecycleHook(onUnmounted, unmounted2);\n registerLifecycleHook(onServerPrefetch, serverPrefetch);\n if (isArray$1(expose)) {\n if (expose.length) {\n const exposed = instance2.exposed || (instance2.exposed = {});\n expose.forEach((key) => {\n Object.defineProperty(exposed, key, {\n get: () => publicThis[key],\n set: (val) => publicThis[key] = val\n });\n });\n } else if (!instance2.exposed) {\n instance2.exposed = {};\n }\n }\n if (render2 && instance2.render === NOOP) {\n instance2.render = render2;\n }\n if (inheritAttrs != null) {\n instance2.inheritAttrs = inheritAttrs;\n }\n if (components)\n instance2.components = components;\n if (directives)\n instance2.directives = directives;\n}\nfunction resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP, unwrapRef = false) {\n if (isArray$1(injectOptions)) {\n injectOptions = normalizeInject(injectOptions);\n }\n for (const key in injectOptions) {\n const opt = injectOptions[key];\n let injected;\n if (isObject$1(opt)) {\n if (\"default\" in opt) {\n injected = inject(opt.from || key, opt.default, true);\n } else {\n injected = inject(opt.from || key);\n }\n } else {\n injected = inject(opt);\n }\n if (isRef(injected)) {\n if (unwrapRef) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => injected.value,\n set: (v) => injected.value = v\n });\n } else {\n ctx[key] = injected;\n }\n } else {\n ctx[key] = injected;\n }\n }\n}\nfunction callHook$1(hook, instance2, type) {\n callWithAsyncErrorHandling(isArray$1(hook) ? hook.map((h2) => h2.bind(instance2.proxy)) : hook.bind(instance2.proxy), instance2, type);\n}\nfunction createWatcher(raw, ctx, publicThis, key) {\n const getter = key.includes(\".\") ? createPathGetter(publicThis, key) : () => publicThis[key];\n if (isString$1(raw)) {\n const handler = ctx[raw];\n if (isFunction$1(handler)) {\n watch(getter, handler);\n }\n } else if (isFunction$1(raw)) {\n watch(getter, raw.bind(publicThis));\n } else if (isObject$1(raw)) {\n if (isArray$1(raw)) {\n raw.forEach((r) => createWatcher(r, ctx, publicThis, key));\n } else {\n const handler = isFunction$1(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];\n if (isFunction$1(handler)) {\n watch(getter, handler, raw);\n }\n }\n } else\n ;\n}\nfunction resolveMergedOptions(instance2) {\n const base = instance2.type;\n const { mixins, extends: extendsOptions } = base;\n const { mixins: globalMixins, optionsCache: cache, config: { optionMergeStrategies } } = instance2.appContext;\n const cached = cache.get(base);\n let resolved;\n if (cached) {\n resolved = cached;\n } else if (!globalMixins.length && !mixins && !extendsOptions) {\n {\n resolved = base;\n }\n } else {\n resolved = {};\n if (globalMixins.length) {\n globalMixins.forEach((m) => mergeOptions(resolved, m, optionMergeStrategies, true));\n }\n mergeOptions(resolved, base, optionMergeStrategies);\n }\n cache.set(base, resolved);\n return resolved;\n}\nfunction mergeOptions(to, from, strats, asMixin = false) {\n const { mixins, extends: extendsOptions } = from;\n if (extendsOptions) {\n mergeOptions(to, extendsOptions, strats, true);\n }\n if (mixins) {\n mixins.forEach((m) => mergeOptions(to, m, strats, true));\n }\n for (const key in from) {\n if (asMixin && key === \"expose\")\n ;\n else {\n const strat = internalOptionMergeStrats[key] || strats && strats[key];\n to[key] = strat ? strat(to[key], from[key]) : from[key];\n }\n }\n return to;\n}\nconst internalOptionMergeStrats = {\n data: mergeDataFn,\n props: mergeObjectOptions,\n emits: mergeObjectOptions,\n methods: mergeObjectOptions,\n computed: mergeObjectOptions,\n beforeCreate: mergeAsArray,\n created: mergeAsArray,\n beforeMount: mergeAsArray,\n mounted: mergeAsArray,\n beforeUpdate: mergeAsArray,\n updated: mergeAsArray,\n beforeDestroy: mergeAsArray,\n beforeUnmount: mergeAsArray,\n destroyed: mergeAsArray,\n unmounted: mergeAsArray,\n activated: mergeAsArray,\n deactivated: mergeAsArray,\n errorCaptured: mergeAsArray,\n serverPrefetch: mergeAsArray,\n components: mergeObjectOptions,\n directives: mergeObjectOptions,\n watch: mergeWatchOptions,\n provide: mergeDataFn,\n inject: mergeInject\n};\nfunction mergeDataFn(to, from) {\n if (!from) {\n return to;\n }\n if (!to) {\n return from;\n }\n return function mergedDataFn() {\n return extend$1(isFunction$1(to) ? to.call(this, this) : to, isFunction$1(from) ? from.call(this, this) : from);\n };\n}\nfunction mergeInject(to, from) {\n return mergeObjectOptions(normalizeInject(to), normalizeInject(from));\n}\nfunction normalizeInject(raw) {\n if (isArray$1(raw)) {\n const res = {};\n for (let i = 0; i < raw.length; i++) {\n res[raw[i]] = raw[i];\n }\n return res;\n }\n return raw;\n}\nfunction mergeAsArray(to, from) {\n return to ? [...new Set([].concat(to, from))] : from;\n}\nfunction mergeObjectOptions(to, from) {\n return to ? extend$1(extend$1(/* @__PURE__ */ Object.create(null), to), from) : from;\n}\nfunction mergeWatchOptions(to, from) {\n if (!to)\n return from;\n if (!from)\n return to;\n const merged = extend$1(/* @__PURE__ */ Object.create(null), to);\n for (const key in from) {\n merged[key] = mergeAsArray(to[key], from[key]);\n }\n return merged;\n}\nfunction initProps(instance2, rawProps, isStateful, isSSR = false) {\n const props = {};\n const attrs = {};\n def(attrs, InternalObjectKey, 1);\n instance2.propsDefaults = /* @__PURE__ */ Object.create(null);\n setFullProps(instance2, rawProps, props, attrs);\n for (const key in instance2.propsOptions[0]) {\n if (!(key in props)) {\n props[key] = void 0;\n }\n }\n if (isStateful) {\n instance2.props = isSSR ? props : shallowReactive(props);\n } else {\n if (!instance2.type.props) {\n instance2.props = attrs;\n } else {\n instance2.props = props;\n }\n }\n instance2.attrs = attrs;\n}\nfunction updateProps(instance2, rawProps, rawPrevProps, optimized) {\n const { props, attrs, vnode: { patchFlag } } = instance2;\n const rawCurrentProps = toRaw(props);\n const [options] = instance2.propsOptions;\n let hasAttrsChanged = false;\n if ((optimized || patchFlag > 0) && !(patchFlag & 16)) {\n if (patchFlag & 8) {\n const propsToUpdate = instance2.vnode.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n let key = propsToUpdate[i];\n if (isEmitListener(instance2.emitsOptions, key)) {\n continue;\n }\n const value = rawProps[key];\n if (options) {\n if (hasOwn(attrs, key)) {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n } else {\n const camelizedKey = camelize$1(key);\n props[camelizedKey] = resolvePropValue(options, rawCurrentProps, camelizedKey, value, instance2, false);\n }\n } else {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n } else {\n if (setFullProps(instance2, rawProps, props, attrs)) {\n hasAttrsChanged = true;\n }\n let kebabKey;\n for (const key in rawCurrentProps) {\n if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate$1(key)) === key || !hasOwn(rawProps, kebabKey))) {\n if (options) {\n if (rawPrevProps && (rawPrevProps[key] !== void 0 || rawPrevProps[kebabKey] !== void 0)) {\n props[key] = resolvePropValue(options, rawCurrentProps, key, void 0, instance2, true);\n }\n } else {\n delete props[key];\n }\n }\n }\n if (attrs !== rawCurrentProps) {\n for (const key in attrs) {\n if (!rawProps || !hasOwn(rawProps, key) && true) {\n delete attrs[key];\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (hasAttrsChanged) {\n trigger(instance2, \"set\", \"$attrs\");\n }\n}\nfunction setFullProps(instance2, rawProps, props, attrs) {\n const [options, needCastKeys] = instance2.propsOptions;\n let hasAttrsChanged = false;\n let rawCastValues;\n if (rawProps) {\n for (let key in rawProps) {\n if (isReservedProp(key)) {\n continue;\n }\n const value = rawProps[key];\n let camelKey;\n if (options && hasOwn(options, camelKey = camelize$1(key))) {\n if (!needCastKeys || !needCastKeys.includes(camelKey)) {\n props[camelKey] = value;\n } else {\n (rawCastValues || (rawCastValues = {}))[camelKey] = value;\n }\n } else if (!isEmitListener(instance2.emitsOptions, key)) {\n if (!(key in attrs) || value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (needCastKeys) {\n const rawCurrentProps = toRaw(props);\n const castValues = rawCastValues || EMPTY_OBJ;\n for (let i = 0; i < needCastKeys.length; i++) {\n const key = needCastKeys[i];\n props[key] = resolvePropValue(options, rawCurrentProps, key, castValues[key], instance2, !hasOwn(castValues, key));\n }\n }\n return hasAttrsChanged;\n}\nfunction resolvePropValue(options, props, key, value, instance2, isAbsent) {\n const opt = options[key];\n if (opt != null) {\n const hasDefault = hasOwn(opt, \"default\");\n if (hasDefault && value === void 0) {\n const defaultValue = opt.default;\n if (opt.type !== Function && isFunction$1(defaultValue)) {\n const { propsDefaults } = instance2;\n if (key in propsDefaults) {\n value = propsDefaults[key];\n } else {\n setCurrentInstance(instance2);\n value = propsDefaults[key] = defaultValue.call(null, props);\n unsetCurrentInstance();\n }\n } else {\n value = defaultValue;\n }\n }\n if (opt[0]) {\n if (isAbsent && !hasDefault) {\n value = false;\n } else if (opt[1] && (value === \"\" || value === hyphenate$1(key))) {\n value = true;\n }\n }\n }\n return value;\n}\nfunction normalizePropsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.propsCache;\n const cached = cache.get(comp);\n if (cached) {\n return cached;\n }\n const raw = comp.props;\n const normalized = {};\n const needCastKeys = [];\n let hasExtends = false;\n if (!isFunction$1(comp)) {\n const extendProps = (raw2) => {\n hasExtends = true;\n const [props, keys] = normalizePropsOptions(raw2, appContext, true);\n extend$1(normalized, props);\n if (keys)\n needCastKeys.push(...keys);\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendProps);\n }\n if (comp.extends) {\n extendProps(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendProps);\n }\n }\n if (!raw && !hasExtends) {\n cache.set(comp, EMPTY_ARR);\n return EMPTY_ARR;\n }\n if (isArray$1(raw)) {\n for (let i = 0; i < raw.length; i++) {\n const normalizedKey = camelize$1(raw[i]);\n if (validatePropName(normalizedKey)) {\n normalized[normalizedKey] = EMPTY_OBJ;\n }\n }\n } else if (raw) {\n for (const key in raw) {\n const normalizedKey = camelize$1(key);\n if (validatePropName(normalizedKey)) {\n const opt = raw[key];\n const prop = normalized[normalizedKey] = isArray$1(opt) || isFunction$1(opt) ? { type: opt } : opt;\n if (prop) {\n const booleanIndex = getTypeIndex(Boolean, prop.type);\n const stringIndex = getTypeIndex(String, prop.type);\n prop[0] = booleanIndex > -1;\n prop[1] = stringIndex < 0 || booleanIndex < stringIndex;\n if (booleanIndex > -1 || hasOwn(prop, \"default\")) {\n needCastKeys.push(normalizedKey);\n }\n }\n }\n }\n }\n const res = [normalized, needCastKeys];\n cache.set(comp, res);\n return res;\n}\nfunction validatePropName(key) {\n if (key[0] !== \"$\") {\n return true;\n }\n return false;\n}\nfunction getType(ctor) {\n const match = ctor && ctor.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ctor === null ? \"null\" : \"\";\n}\nfunction isSameType(a, b) {\n return getType(a) === getType(b);\n}\nfunction getTypeIndex(type, expectedTypes) {\n if (isArray$1(expectedTypes)) {\n return expectedTypes.findIndex((t) => isSameType(t, type));\n } else if (isFunction$1(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1;\n }\n return -1;\n}\nconst isInternalKey = (key) => key[0] === \"_\" || key === \"$stable\";\nconst normalizeSlotValue = (value) => isArray$1(value) ? value.map(normalizeVNode) : [normalizeVNode(value)];\nconst normalizeSlot = (key, rawSlot, ctx) => {\n if (rawSlot._n) {\n return rawSlot;\n }\n const normalized = withCtx((...args) => {\n return normalizeSlotValue(rawSlot(...args));\n }, ctx);\n normalized._c = false;\n return normalized;\n};\nconst normalizeObjectSlots = (rawSlots, slots, instance2) => {\n const ctx = rawSlots._ctx;\n for (const key in rawSlots) {\n if (isInternalKey(key))\n continue;\n const value = rawSlots[key];\n if (isFunction$1(value)) {\n slots[key] = normalizeSlot(key, value, ctx);\n } else if (value != null) {\n const normalized = normalizeSlotValue(value);\n slots[key] = () => normalized;\n }\n }\n};\nconst normalizeVNodeSlots = (instance2, children) => {\n const normalized = normalizeSlotValue(children);\n instance2.slots.default = () => normalized;\n};\nconst initSlots = (instance2, children) => {\n if (instance2.vnode.shapeFlag & 32) {\n const type = children._;\n if (type) {\n instance2.slots = toRaw(children);\n def(children, \"_\", type);\n } else {\n normalizeObjectSlots(children, instance2.slots = {});\n }\n } else {\n instance2.slots = {};\n if (children) {\n normalizeVNodeSlots(instance2, children);\n }\n }\n def(instance2.slots, InternalObjectKey, 1);\n};\nconst updateSlots = (instance2, children, optimized) => {\n const { vnode, slots } = instance2;\n let needDeletionCheck = true;\n let deletionComparisonTarget = EMPTY_OBJ;\n if (vnode.shapeFlag & 32) {\n const type = children._;\n if (type) {\n if (optimized && type === 1) {\n needDeletionCheck = false;\n } else {\n extend$1(slots, children);\n if (!optimized && type === 1) {\n delete slots._;\n }\n }\n } else {\n needDeletionCheck = !children.$stable;\n normalizeObjectSlots(children, slots);\n }\n deletionComparisonTarget = children;\n } else if (children) {\n normalizeVNodeSlots(instance2, children);\n deletionComparisonTarget = { default: 1 };\n }\n if (needDeletionCheck) {\n for (const key in slots) {\n if (!isInternalKey(key) && !(key in deletionComparisonTarget)) {\n delete slots[key];\n }\n }\n }\n};\nfunction createAppContext() {\n return {\n app: null,\n config: {\n isNativeTag: NO,\n performance: false,\n globalProperties: {},\n optionMergeStrategies: {},\n errorHandler: void 0,\n warnHandler: void 0,\n compilerOptions: {}\n },\n mixins: [],\n components: {},\n directives: {},\n provides: /* @__PURE__ */ Object.create(null),\n optionsCache: /* @__PURE__ */ new WeakMap(),\n propsCache: /* @__PURE__ */ new WeakMap(),\n emitsCache: /* @__PURE__ */ new WeakMap()\n };\n}\nlet uid = 0;\nfunction createAppAPI(render2, hydrate) {\n return function createApp(rootComponent, rootProps = null) {\n if (!isFunction$1(rootComponent)) {\n rootComponent = Object.assign({}, rootComponent);\n }\n if (rootProps != null && !isObject$1(rootProps)) {\n rootProps = null;\n }\n const context = createAppContext();\n const installedPlugins = /* @__PURE__ */ new Set();\n let isMounted = false;\n const app = context.app = {\n _uid: uid++,\n _component: rootComponent,\n _props: rootProps,\n _container: null,\n _context: context,\n _instance: null,\n version,\n get config() {\n return context.config;\n },\n set config(v) {\n },\n use(plugin, ...options) {\n if (installedPlugins.has(plugin))\n ;\n else if (plugin && isFunction$1(plugin.install)) {\n installedPlugins.add(plugin);\n plugin.install(app, ...options);\n } else if (isFunction$1(plugin)) {\n installedPlugins.add(plugin);\n plugin(app, ...options);\n } else\n ;\n return app;\n },\n mixin(mixin) {\n {\n if (!context.mixins.includes(mixin)) {\n context.mixins.push(mixin);\n }\n }\n return app;\n },\n component(name, component) {\n if (!component) {\n return context.components[name];\n }\n context.components[name] = component;\n return app;\n },\n directive(name, directive2) {\n if (!directive2) {\n return context.directives[name];\n }\n context.directives[name] = directive2;\n return app;\n },\n mount(rootContainer, isHydrate, isSVG) {\n if (!isMounted) {\n const vnode = createVNode(rootComponent, rootProps);\n vnode.appContext = context;\n if (isHydrate && hydrate) {\n hydrate(vnode, rootContainer);\n } else {\n render2(vnode, rootContainer, isSVG);\n }\n isMounted = true;\n app._container = rootContainer;\n rootContainer.__vue_app__ = app;\n return getExposeProxy(vnode.component) || vnode.component.proxy;\n }\n },\n unmount() {\n if (isMounted) {\n render2(null, app._container);\n delete app._container.__vue_app__;\n }\n },\n provide(key, value) {\n context.provides[key] = value;\n return app;\n }\n };\n return app;\n };\n}\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n if (isArray$1(rawRef)) {\n rawRef.forEach((r, i) => setRef(r, oldRawRef && (isArray$1(oldRawRef) ? oldRawRef[i] : oldRawRef), parentSuspense, vnode, isUnmount));\n return;\n }\n if (isAsyncWrapper(vnode) && !isUnmount) {\n return;\n }\n const refValue = vnode.shapeFlag & 4 ? getExposeProxy(vnode.component) || vnode.component.proxy : vnode.el;\n const value = isUnmount ? null : refValue;\n const { i: owner, r: ref } = rawRef;\n const oldRef = oldRawRef && oldRawRef.r;\n const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;\n const setupState = owner.setupState;\n if (oldRef != null && oldRef !== ref) {\n if (isString$1(oldRef)) {\n refs[oldRef] = null;\n if (hasOwn(setupState, oldRef)) {\n setupState[oldRef] = null;\n }\n } else if (isRef(oldRef)) {\n oldRef.value = null;\n }\n }\n if (isFunction$1(ref)) {\n callWithErrorHandling(ref, owner, 12, [value, refs]);\n } else {\n const _isString = isString$1(ref);\n const _isRef = isRef(ref);\n if (_isString || _isRef) {\n const doSet = () => {\n if (rawRef.f) {\n const existing = _isString ? refs[ref] : ref.value;\n if (isUnmount) {\n isArray$1(existing) && remove(existing, refValue);\n } else {\n if (!isArray$1(existing)) {\n if (_isString) {\n refs[ref] = [refValue];\n if (hasOwn(setupState, ref)) {\n setupState[ref] = refs[ref];\n }\n } else {\n ref.value = [refValue];\n if (rawRef.k)\n refs[rawRef.k] = ref.value;\n }\n } else if (!existing.includes(refValue)) {\n existing.push(refValue);\n }\n }\n } else if (_isString) {\n refs[ref] = value;\n if (hasOwn(setupState, ref)) {\n setupState[ref] = value;\n }\n } else if (_isRef) {\n ref.value = value;\n if (rawRef.k)\n refs[rawRef.k] = value;\n } else\n ;\n };\n if (value) {\n doSet.id = -1;\n queuePostRenderEffect(doSet, parentSuspense);\n } else {\n doSet();\n }\n }\n }\n}\nconst queuePostRenderEffect = queueEffectWithSuspense;\nfunction createRenderer(options) {\n return baseCreateRenderer(options);\n}\nfunction baseCreateRenderer(options, createHydrationFns) {\n const target = getGlobalThis();\n target.__VUE__ = true;\n const { insert: hostInsert, remove: hostRemove, patchProp: hostPatchProp, createElement: hostCreateElement, createText: hostCreateText, createComment: hostCreateComment, setText: hostSetText, setElementText: hostSetElementText, parentNode: hostParentNode, nextSibling: hostNextSibling, setScopeId: hostSetScopeId = NOOP, cloneNode: hostCloneNode, insertStaticContent: hostInsertStaticContent } = options;\n const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, isSVG = false, slotScopeIds = null, optimized = !!n2.dynamicChildren) => {\n if (n1 === n2) {\n return;\n }\n if (n1 && !isSameVNodeType(n1, n2)) {\n anchor = getNextHostNode(n1);\n unmount(n1, parentComponent, parentSuspense, true);\n n1 = null;\n }\n if (n2.patchFlag === -2) {\n optimized = false;\n n2.dynamicChildren = null;\n }\n const { type, ref, shapeFlag } = n2;\n switch (type) {\n case Text:\n processText(n1, n2, container, anchor);\n break;\n case Comment:\n processCommentNode(n1, n2, container, anchor);\n break;\n case Static:\n if (n1 == null) {\n mountStaticNode(n2, container, anchor, isSVG);\n }\n break;\n case Fragment:\n processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n break;\n default:\n if (shapeFlag & 1) {\n processElement(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n } else if (shapeFlag & 6) {\n processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n } else if (shapeFlag & 64) {\n type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals);\n } else if (shapeFlag & 128) {\n type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals);\n } else\n ;\n }\n if (ref != null && parentComponent) {\n setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2);\n }\n };\n const processText = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert(n2.el = hostCreateText(n2.children), container, anchor);\n } else {\n const el = n2.el = n1.el;\n if (n2.children !== n1.children) {\n hostSetText(el, n2.children);\n }\n }\n };\n const processCommentNode = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert(n2.el = hostCreateComment(n2.children || \"\"), container, anchor);\n } else {\n n2.el = n1.el;\n }\n };\n const mountStaticNode = (n2, container, anchor, isSVG) => {\n [n2.el, n2.anchor] = hostInsertStaticContent(n2.children, container, anchor, isSVG, n2.el, n2.anchor);\n };\n const moveStaticNode = ({ el, anchor }, container, nextSibling) => {\n let next;\n while (el && el !== anchor) {\n next = hostNextSibling(el);\n hostInsert(el, container, nextSibling);\n el = next;\n }\n hostInsert(anchor, container, nextSibling);\n };\n const removeStaticNode = ({ el, anchor }) => {\n let next;\n while (el && el !== anchor) {\n next = hostNextSibling(el);\n hostRemove(el);\n el = next;\n }\n hostRemove(anchor);\n };\n const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n isSVG = isSVG || n2.type === \"svg\";\n if (n1 == null) {\n mountElement(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n } else {\n patchElement(n1, n2, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n };\n const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n let el;\n let vnodeHook;\n const { type, props, shapeFlag, transition, patchFlag, dirs } = vnode;\n if (vnode.el && hostCloneNode !== void 0 && patchFlag === -1) {\n el = vnode.el = hostCloneNode(vnode.el);\n } else {\n el = vnode.el = hostCreateElement(vnode.type, isSVG, props && props.is, props);\n if (shapeFlag & 8) {\n hostSetElementText(el, vnode.children);\n } else if (shapeFlag & 16) {\n mountChildren(vnode.children, el, null, parentComponent, parentSuspense, isSVG && type !== \"foreignObject\", slotScopeIds, optimized);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n }\n if (props) {\n for (const key in props) {\n if (key !== \"value\" && !isReservedProp(key)) {\n hostPatchProp(el, key, null, props[key], isSVG, vnode.children, parentComponent, parentSuspense, unmountChildren);\n }\n }\n if (\"value\" in props) {\n hostPatchProp(el, \"value\", null, props.value);\n }\n if (vnodeHook = props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n }\n setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n const needCallTransitionHooks = (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted;\n if (needCallTransitionHooks) {\n transition.beforeEnter(el);\n }\n hostInsert(el, container, anchor);\n if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n };\n const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => {\n if (scopeId) {\n hostSetScopeId(el, scopeId);\n }\n if (slotScopeIds) {\n for (let i = 0; i < slotScopeIds.length; i++) {\n hostSetScopeId(el, slotScopeIds[i]);\n }\n }\n if (parentComponent) {\n let subTree = parentComponent.subTree;\n if (vnode === subTree) {\n const parentVNode = parentComponent.vnode;\n setScopeId(el, parentVNode, parentVNode.scopeId, parentVNode.slotScopeIds, parentComponent.parent);\n }\n }\n };\n const mountChildren = (children, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, start = 0) => {\n for (let i = start; i < children.length; i++) {\n const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);\n patch(null, child, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n };\n const patchElement = (n1, n2, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n const el = n2.el = n1.el;\n let { patchFlag, dynamicChildren, dirs } = n2;\n patchFlag |= n1.patchFlag & 16;\n const oldProps = n1.props || EMPTY_OBJ;\n const newProps = n2.props || EMPTY_OBJ;\n let vnodeHook;\n parentComponent && toggleRecurse(parentComponent, false);\n if (vnodeHook = newProps.onVnodeBeforeUpdate) {\n invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n }\n if (dirs) {\n invokeDirectiveHook(n2, n1, parentComponent, \"beforeUpdate\");\n }\n parentComponent && toggleRecurse(parentComponent, true);\n const areChildrenSVG = isSVG && n2.type !== \"foreignObject\";\n if (dynamicChildren) {\n patchBlockChildren(n1.dynamicChildren, dynamicChildren, el, parentComponent, parentSuspense, areChildrenSVG, slotScopeIds);\n } else if (!optimized) {\n patchChildren(n1, n2, el, null, parentComponent, parentSuspense, areChildrenSVG, slotScopeIds, false);\n }\n if (patchFlag > 0) {\n if (patchFlag & 16) {\n patchProps(el, n2, oldProps, newProps, parentComponent, parentSuspense, isSVG);\n } else {\n if (patchFlag & 2) {\n if (oldProps.class !== newProps.class) {\n hostPatchProp(el, \"class\", null, newProps.class, isSVG);\n }\n }\n if (patchFlag & 4) {\n hostPatchProp(el, \"style\", oldProps.style, newProps.style, isSVG);\n }\n if (patchFlag & 8) {\n const propsToUpdate = n2.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n const key = propsToUpdate[i];\n const prev = oldProps[key];\n const next = newProps[key];\n if (next !== prev || key === \"value\") {\n hostPatchProp(el, key, prev, next, isSVG, n1.children, parentComponent, parentSuspense, unmountChildren);\n }\n }\n }\n }\n if (patchFlag & 1) {\n if (n1.children !== n2.children) {\n hostSetElementText(el, n2.children);\n }\n }\n } else if (!optimized && dynamicChildren == null) {\n patchProps(el, n2, oldProps, newProps, parentComponent, parentSuspense, isSVG);\n }\n if ((vnodeHook = newProps.onVnodeUpdated) || dirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n dirs && invokeDirectiveHook(n2, n1, parentComponent, \"updated\");\n }, parentSuspense);\n }\n };\n const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, isSVG, slotScopeIds) => {\n for (let i = 0; i < newChildren.length; i++) {\n const oldVNode = oldChildren[i];\n const newVNode = newChildren[i];\n const container = oldVNode.el && (oldVNode.type === Fragment || !isSameVNodeType(oldVNode, newVNode) || oldVNode.shapeFlag & (6 | 64)) ? hostParentNode(oldVNode.el) : fallbackContainer;\n patch(oldVNode, newVNode, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, true);\n }\n };\n const patchProps = (el, vnode, oldProps, newProps, parentComponent, parentSuspense, isSVG) => {\n if (oldProps !== newProps) {\n for (const key in newProps) {\n if (isReservedProp(key))\n continue;\n const next = newProps[key];\n const prev = oldProps[key];\n if (next !== prev && key !== \"value\") {\n hostPatchProp(el, key, prev, next, isSVG, vnode.children, parentComponent, parentSuspense, unmountChildren);\n }\n }\n if (oldProps !== EMPTY_OBJ) {\n for (const key in oldProps) {\n if (!isReservedProp(key) && !(key in newProps)) {\n hostPatchProp(el, key, oldProps[key], null, isSVG, vnode.children, parentComponent, parentSuspense, unmountChildren);\n }\n }\n }\n if (\"value\" in newProps) {\n hostPatchProp(el, \"value\", oldProps.value, newProps.value);\n }\n }\n };\n const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText(\"\");\n const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText(\"\");\n let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2;\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n if (n1 == null) {\n hostInsert(fragmentStartAnchor, container, anchor);\n hostInsert(fragmentEndAnchor, container, anchor);\n mountChildren(n2.children, container, fragmentEndAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n } else {\n if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && n1.dynamicChildren) {\n patchBlockChildren(n1.dynamicChildren, dynamicChildren, container, parentComponent, parentSuspense, isSVG, slotScopeIds);\n if (n2.key != null || parentComponent && n2 === parentComponent.subTree) {\n traverseStaticChildren(n1, n2, true);\n }\n } else {\n patchChildren(n1, n2, container, fragmentEndAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n }\n };\n const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n n2.slotScopeIds = slotScopeIds;\n if (n1 == null) {\n if (n2.shapeFlag & 512) {\n parentComponent.ctx.activate(n2, container, anchor, isSVG, optimized);\n } else {\n mountComponent(n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized);\n }\n } else {\n updateComponent(n1, n2, optimized);\n }\n };\n const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, isSVG, optimized) => {\n const instance2 = initialVNode.component = createComponentInstance(initialVNode, parentComponent, parentSuspense);\n if (isKeepAlive(initialVNode)) {\n instance2.ctx.renderer = internals;\n }\n {\n setupComponent(instance2);\n }\n if (instance2.asyncDep) {\n parentSuspense && parentSuspense.registerDep(instance2, setupRenderEffect);\n if (!initialVNode.el) {\n const placeholder = instance2.subTree = createVNode(Comment);\n processCommentNode(null, placeholder, container, anchor);\n }\n return;\n }\n setupRenderEffect(instance2, initialVNode, container, anchor, parentSuspense, isSVG, optimized);\n };\n const updateComponent = (n1, n2, optimized) => {\n const instance2 = n2.component = n1.component;\n if (shouldUpdateComponent(n1, n2, optimized)) {\n if (instance2.asyncDep && !instance2.asyncResolved) {\n updateComponentPreRender(instance2, n2, optimized);\n return;\n } else {\n instance2.next = n2;\n invalidateJob(instance2.update);\n instance2.update();\n }\n } else {\n n2.el = n1.el;\n instance2.vnode = n2;\n }\n };\n const setupRenderEffect = (instance2, initialVNode, container, anchor, parentSuspense, isSVG, optimized) => {\n const componentUpdateFn = () => {\n if (!instance2.isMounted) {\n let vnodeHook;\n const { el, props } = initialVNode;\n const { bm, m, parent } = instance2;\n const isAsyncWrapperVNode = isAsyncWrapper(initialVNode);\n toggleRecurse(instance2, false);\n if (bm) {\n invokeArrayFns(bm);\n }\n if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) {\n invokeVNodeHook(vnodeHook, parent, initialVNode);\n }\n toggleRecurse(instance2, true);\n if (el && hydrateNode) {\n const hydrateSubTree = () => {\n instance2.subTree = renderComponentRoot(instance2);\n hydrateNode(el, instance2.subTree, instance2, parentSuspense, null);\n };\n if (isAsyncWrapperVNode) {\n initialVNode.type.__asyncLoader().then(\n () => !instance2.isUnmounted && hydrateSubTree()\n );\n } else {\n hydrateSubTree();\n }\n } else {\n const subTree = instance2.subTree = renderComponentRoot(instance2);\n patch(null, subTree, container, anchor, instance2, parentSuspense, isSVG);\n initialVNode.el = subTree.el;\n }\n if (m) {\n queuePostRenderEffect(m, parentSuspense);\n }\n if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) {\n const scopedInitialVNode = initialVNode;\n queuePostRenderEffect(() => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode), parentSuspense);\n }\n if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) {\n instance2.a && queuePostRenderEffect(instance2.a, parentSuspense);\n }\n instance2.isMounted = true;\n initialVNode = container = anchor = null;\n } else {\n let { next, bu, u, parent, vnode } = instance2;\n let originNext = next;\n let vnodeHook;\n toggleRecurse(instance2, false);\n if (next) {\n next.el = vnode.el;\n updateComponentPreRender(instance2, next, optimized);\n } else {\n next = vnode;\n }\n if (bu) {\n invokeArrayFns(bu);\n }\n if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) {\n invokeVNodeHook(vnodeHook, parent, next, vnode);\n }\n toggleRecurse(instance2, true);\n const nextTree = renderComponentRoot(instance2);\n const prevTree = instance2.subTree;\n instance2.subTree = nextTree;\n patch(\n prevTree,\n nextTree,\n hostParentNode(prevTree.el),\n getNextHostNode(prevTree),\n instance2,\n parentSuspense,\n isSVG\n );\n next.el = nextTree.el;\n if (originNext === null) {\n updateHOCHostEl(instance2, nextTree.el);\n }\n if (u) {\n queuePostRenderEffect(u, parentSuspense);\n }\n if (vnodeHook = next.props && next.props.onVnodeUpdated) {\n queuePostRenderEffect(() => invokeVNodeHook(vnodeHook, parent, next, vnode), parentSuspense);\n }\n }\n };\n const effect = instance2.effect = new ReactiveEffect(\n componentUpdateFn,\n () => queueJob(update2),\n instance2.scope\n );\n const update2 = instance2.update = () => effect.run();\n update2.id = instance2.uid;\n toggleRecurse(instance2, true);\n update2();\n };\n const updateComponentPreRender = (instance2, nextVNode, optimized) => {\n nextVNode.component = instance2;\n const prevProps = instance2.vnode.props;\n instance2.vnode = nextVNode;\n instance2.next = null;\n updateProps(instance2, nextVNode.props, prevProps, optimized);\n updateSlots(instance2, nextVNode.children, optimized);\n pauseTracking();\n flushPreFlushCbs(void 0, instance2.update);\n resetTracking();\n };\n const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized = false) => {\n const c1 = n1 && n1.children;\n const prevShapeFlag = n1 ? n1.shapeFlag : 0;\n const c2 = n2.children;\n const { patchFlag, shapeFlag } = n2;\n if (patchFlag > 0) {\n if (patchFlag & 128) {\n patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n return;\n } else if (patchFlag & 256) {\n patchUnkeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n return;\n }\n }\n if (shapeFlag & 8) {\n if (prevShapeFlag & 16) {\n unmountChildren(c1, parentComponent, parentSuspense);\n }\n if (c2 !== c1) {\n hostSetElementText(container, c2);\n }\n } else {\n if (prevShapeFlag & 16) {\n if (shapeFlag & 16) {\n patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n } else {\n unmountChildren(c1, parentComponent, parentSuspense, true);\n }\n } else {\n if (prevShapeFlag & 8) {\n hostSetElementText(container, \"\");\n }\n if (shapeFlag & 16) {\n mountChildren(c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n }\n }\n };\n const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n c1 = c1 || EMPTY_ARR;\n c2 = c2 || EMPTY_ARR;\n const oldLength = c1.length;\n const newLength = c2.length;\n const commonLength = Math.min(oldLength, newLength);\n let i;\n for (i = 0; i < commonLength; i++) {\n const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n patch(c1[i], nextChild, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n if (oldLength > newLength) {\n unmountChildren(c1, parentComponent, parentSuspense, true, false, commonLength);\n } else {\n mountChildren(c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, commonLength);\n }\n };\n const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n let i = 0;\n const l2 = c2.length;\n let e1 = c1.length - 1;\n let e2 = l2 - 1;\n while (i <= e1 && i <= e2) {\n const n1 = c1[i];\n const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n if (isSameVNodeType(n1, n2)) {\n patch(n1, n2, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n } else {\n break;\n }\n i++;\n }\n while (i <= e1 && i <= e2) {\n const n1 = c1[e1];\n const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]);\n if (isSameVNodeType(n1, n2)) {\n patch(n1, n2, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n } else {\n break;\n }\n e1--;\n e2--;\n }\n if (i > e1) {\n if (i <= e2) {\n const nextPos = e2 + 1;\n const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor;\n while (i <= e2) {\n patch(null, c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]), container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n i++;\n }\n }\n } else if (i > e2) {\n while (i <= e1) {\n unmount(c1[i], parentComponent, parentSuspense, true);\n i++;\n }\n } else {\n const s1 = i;\n const s2 = i;\n const keyToNewIndexMap = /* @__PURE__ */ new Map();\n for (i = s2; i <= e2; i++) {\n const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n if (nextChild.key != null) {\n keyToNewIndexMap.set(nextChild.key, i);\n }\n }\n let j;\n let patched = 0;\n const toBePatched = e2 - s2 + 1;\n let moved = false;\n let maxNewIndexSoFar = 0;\n const newIndexToOldIndexMap = new Array(toBePatched);\n for (i = 0; i < toBePatched; i++)\n newIndexToOldIndexMap[i] = 0;\n for (i = s1; i <= e1; i++) {\n const prevChild = c1[i];\n if (patched >= toBePatched) {\n unmount(prevChild, parentComponent, parentSuspense, true);\n continue;\n }\n let newIndex;\n if (prevChild.key != null) {\n newIndex = keyToNewIndexMap.get(prevChild.key);\n } else {\n for (j = s2; j <= e2; j++) {\n if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) {\n newIndex = j;\n break;\n }\n }\n }\n if (newIndex === void 0) {\n unmount(prevChild, parentComponent, parentSuspense, true);\n } else {\n newIndexToOldIndexMap[newIndex - s2] = i + 1;\n if (newIndex >= maxNewIndexSoFar) {\n maxNewIndexSoFar = newIndex;\n } else {\n moved = true;\n }\n patch(prevChild, c2[newIndex], container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n patched++;\n }\n }\n const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : EMPTY_ARR;\n j = increasingNewIndexSequence.length - 1;\n for (i = toBePatched - 1; i >= 0; i--) {\n const nextIndex = s2 + i;\n const nextChild = c2[nextIndex];\n const anchor = nextIndex + 1 < l2 ? c2[nextIndex + 1].el : parentAnchor;\n if (newIndexToOldIndexMap[i] === 0) {\n patch(null, nextChild, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n } else if (moved) {\n if (j < 0 || i !== increasingNewIndexSequence[j]) {\n move(nextChild, container, anchor, 2);\n } else {\n j--;\n }\n }\n }\n }\n };\n const move = (vnode, container, anchor, moveType, parentSuspense = null) => {\n const { el, type, transition, children, shapeFlag } = vnode;\n if (shapeFlag & 6) {\n move(vnode.component.subTree, container, anchor, moveType);\n return;\n }\n if (shapeFlag & 128) {\n vnode.suspense.move(container, anchor, moveType);\n return;\n }\n if (shapeFlag & 64) {\n type.move(vnode, container, anchor, internals);\n return;\n }\n if (type === Fragment) {\n hostInsert(el, container, anchor);\n for (let i = 0; i < children.length; i++) {\n move(children[i], container, anchor, moveType);\n }\n hostInsert(vnode.anchor, container, anchor);\n return;\n }\n if (type === Static) {\n moveStaticNode(vnode, container, anchor);\n return;\n }\n const needTransition = moveType !== 2 && shapeFlag & 1 && transition;\n if (needTransition) {\n if (moveType === 0) {\n transition.beforeEnter(el);\n hostInsert(el, container, anchor);\n queuePostRenderEffect(() => transition.enter(el), parentSuspense);\n } else {\n const { leave, delayLeave, afterLeave } = transition;\n const remove3 = () => hostInsert(el, container, anchor);\n const performLeave = () => {\n leave(el, () => {\n remove3();\n afterLeave && afterLeave();\n });\n };\n if (delayLeave) {\n delayLeave(el, remove3, performLeave);\n } else {\n performLeave();\n }\n }\n } else {\n hostInsert(el, container, anchor);\n }\n };\n const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {\n const { type, props, ref, children, dynamicChildren, shapeFlag, patchFlag, dirs } = vnode;\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode, true);\n }\n if (shapeFlag & 256) {\n parentComponent.ctx.deactivate(vnode);\n return;\n }\n const shouldInvokeDirs = shapeFlag & 1 && dirs;\n const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);\n let vnodeHook;\n if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n if (shapeFlag & 6) {\n unmountComponent(vnode.component, parentSuspense, doRemove);\n } else {\n if (shapeFlag & 128) {\n vnode.suspense.unmount(parentSuspense, doRemove);\n return;\n }\n if (shouldInvokeDirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeUnmount\");\n }\n if (shapeFlag & 64) {\n vnode.type.remove(vnode, parentComponent, parentSuspense, optimized, internals, doRemove);\n } else if (dynamicChildren && (type !== Fragment || patchFlag > 0 && patchFlag & 64)) {\n unmountChildren(dynamicChildren, parentComponent, parentSuspense, false, true);\n } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) {\n unmountChildren(children, parentComponent, parentSuspense);\n }\n if (doRemove) {\n remove2(vnode);\n }\n }\n if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, \"unmounted\");\n }, parentSuspense);\n }\n };\n const remove2 = (vnode) => {\n const { type, el, anchor, transition } = vnode;\n if (type === Fragment) {\n {\n removeFragment(el, anchor);\n }\n return;\n }\n if (type === Static) {\n removeStaticNode(vnode);\n return;\n }\n const performRemove = () => {\n hostRemove(el);\n if (transition && !transition.persisted && transition.afterLeave) {\n transition.afterLeave();\n }\n };\n if (vnode.shapeFlag & 1 && transition && !transition.persisted) {\n const { leave, delayLeave } = transition;\n const performLeave = () => leave(el, performRemove);\n if (delayLeave) {\n delayLeave(vnode.el, performRemove, performLeave);\n } else {\n performLeave();\n }\n } else {\n performRemove();\n }\n };\n const removeFragment = (cur, end) => {\n let next;\n while (cur !== end) {\n next = hostNextSibling(cur);\n hostRemove(cur);\n cur = next;\n }\n hostRemove(end);\n };\n const unmountComponent = (instance2, parentSuspense, doRemove) => {\n const { bum, scope, update: update2, subTree, um } = instance2;\n if (bum) {\n invokeArrayFns(bum);\n }\n scope.stop();\n if (update2) {\n update2.active = false;\n unmount(subTree, instance2, parentSuspense, doRemove);\n }\n if (um) {\n queuePostRenderEffect(um, parentSuspense);\n }\n queuePostRenderEffect(() => {\n instance2.isUnmounted = true;\n }, parentSuspense);\n if (parentSuspense && parentSuspense.pendingBranch && !parentSuspense.isUnmounted && instance2.asyncDep && !instance2.asyncResolved && instance2.suspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0) {\n parentSuspense.resolve();\n }\n }\n };\n const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => {\n for (let i = start; i < children.length; i++) {\n unmount(children[i], parentComponent, parentSuspense, doRemove, optimized);\n }\n };\n const getNextHostNode = (vnode) => {\n if (vnode.shapeFlag & 6) {\n return getNextHostNode(vnode.component.subTree);\n }\n if (vnode.shapeFlag & 128) {\n return vnode.suspense.next();\n }\n return hostNextSibling(vnode.anchor || vnode.el);\n };\n const render2 = (vnode, container, isSVG) => {\n if (vnode == null) {\n if (container._vnode) {\n unmount(container._vnode, null, null, true);\n }\n } else {\n patch(container._vnode || null, vnode, container, null, null, null, isSVG);\n }\n flushPostFlushCbs();\n container._vnode = vnode;\n };\n const internals = {\n p: patch,\n um: unmount,\n m: move,\n r: remove2,\n mt: mountComponent,\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n n: getNextHostNode,\n o: options\n };\n let hydrate;\n let hydrateNode;\n if (createHydrationFns) {\n [hydrate, hydrateNode] = createHydrationFns(internals);\n }\n return {\n render: render2,\n hydrate,\n createApp: createAppAPI(render2, hydrate)\n };\n}\nfunction toggleRecurse({ effect, update: update2 }, allowed) {\n effect.allowRecurse = update2.allowRecurse = allowed;\n}\nfunction traverseStaticChildren(n1, n2, shallow = false) {\n const ch1 = n1.children;\n const ch2 = n2.children;\n if (isArray$1(ch1) && isArray$1(ch2)) {\n for (let i = 0; i < ch1.length; i++) {\n const c1 = ch1[i];\n let c2 = ch2[i];\n if (c2.shapeFlag & 1 && !c2.dynamicChildren) {\n if (c2.patchFlag <= 0 || c2.patchFlag === 32) {\n c2 = ch2[i] = cloneIfMounted(ch2[i]);\n c2.el = c1.el;\n }\n if (!shallow)\n traverseStaticChildren(c1, c2);\n }\n }\n }\n}\nfunction getSequence(arr) {\n const p2 = arr.slice();\n const result = [0];\n let i, j, u, v, c;\n const len = arr.length;\n for (i = 0; i < len; i++) {\n const arrI = arr[i];\n if (arrI !== 0) {\n j = result[result.length - 1];\n if (arr[j] < arrI) {\n p2[i] = j;\n result.push(i);\n continue;\n }\n u = 0;\n v = result.length - 1;\n while (u < v) {\n c = u + v >> 1;\n if (arr[result[c]] < arrI) {\n u = c + 1;\n } else {\n v = c;\n }\n }\n if (arrI < arr[result[u]]) {\n if (u > 0) {\n p2[i] = result[u - 1];\n }\n result[u] = i;\n }\n }\n }\n u = result.length;\n v = result[u - 1];\n while (u-- > 0) {\n result[u] = v;\n v = p2[v];\n }\n return result;\n}\nconst isTeleport = (type) => type.__isTeleport;\nconst Fragment = Symbol(void 0);\nconst Text = Symbol(void 0);\nconst Comment = Symbol(void 0);\nconst Static = Symbol(void 0);\nconst blockStack = [];\nlet currentBlock = null;\nfunction openBlock(disableTracking = false) {\n blockStack.push(currentBlock = disableTracking ? null : []);\n}\nfunction closeBlock() {\n blockStack.pop();\n currentBlock = blockStack[blockStack.length - 1] || null;\n}\nlet isBlockTreeEnabled = 1;\nfunction setBlockTracking(value) {\n isBlockTreeEnabled += value;\n}\nfunction setupBlock(vnode) {\n vnode.dynamicChildren = isBlockTreeEnabled > 0 ? currentBlock || EMPTY_ARR : null;\n closeBlock();\n if (isBlockTreeEnabled > 0 && currentBlock) {\n currentBlock.push(vnode);\n }\n return vnode;\n}\nfunction createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) {\n return setupBlock(createBaseVNode(type, props, children, patchFlag, dynamicProps, shapeFlag, true));\n}\nfunction createBlock(type, props, children, patchFlag, dynamicProps) {\n return setupBlock(createVNode(type, props, children, patchFlag, dynamicProps, true));\n}\nfunction isVNode(value) {\n return value ? value.__v_isVNode === true : false;\n}\nfunction isSameVNodeType(n1, n2) {\n return n1.type === n2.type && n1.key === n2.key;\n}\nconst InternalObjectKey = `__vInternal`;\nconst normalizeKey = ({ key }) => key != null ? key : null;\nconst normalizeRef = ({ ref, ref_key, ref_for }) => {\n return ref != null ? isString$1(ref) || isRef(ref) || isFunction$1(ref) ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for } : ref : null;\n};\nfunction createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) {\n const vnode = {\n __v_isVNode: true,\n __v_skip: true,\n type,\n props,\n key: props && normalizeKey(props),\n ref: props && normalizeRef(props),\n scopeId: currentScopeId,\n slotScopeIds: null,\n children,\n component: null,\n suspense: null,\n ssContent: null,\n ssFallback: null,\n dirs: null,\n transition: null,\n el: null,\n anchor: null,\n target: null,\n targetAnchor: null,\n staticCount: 0,\n shapeFlag,\n patchFlag,\n dynamicProps,\n dynamicChildren: null,\n appContext: null\n };\n if (needFullChildrenNormalization) {\n normalizeChildren(vnode, children);\n if (shapeFlag & 128) {\n type.normalize(vnode);\n }\n } else if (children) {\n vnode.shapeFlag |= isString$1(children) ? 8 : 16;\n }\n if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock && (vnode.patchFlag > 0 || shapeFlag & 6) && vnode.patchFlag !== 32) {\n currentBlock.push(vnode);\n }\n return vnode;\n}\nconst createVNode = _createVNode;\nfunction _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {\n if (!type || type === NULL_DYNAMIC_COMPONENT) {\n type = Comment;\n }\n if (isVNode(type)) {\n const cloned = cloneVNode(type, props, true);\n if (children) {\n normalizeChildren(cloned, children);\n }\n if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {\n if (cloned.shapeFlag & 6) {\n currentBlock[currentBlock.indexOf(type)] = cloned;\n } else {\n currentBlock.push(cloned);\n }\n }\n cloned.patchFlag |= -2;\n return cloned;\n }\n if (isClassComponent(type)) {\n type = type.__vccOpts;\n }\n if (props) {\n props = guardReactiveProps(props);\n let { class: klass, style } = props;\n if (klass && !isString$1(klass)) {\n props.class = normalizeClass(klass);\n }\n if (isObject$1(style)) {\n if (isProxy(style) && !isArray$1(style)) {\n style = extend$1({}, style);\n }\n props.style = normalizeStyle(style);\n }\n }\n const shapeFlag = isString$1(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject$1(type) ? 4 : isFunction$1(type) ? 2 : 0;\n return createBaseVNode(type, props, children, patchFlag, dynamicProps, shapeFlag, isBlockNode, true);\n}\nfunction guardReactiveProps(props) {\n if (!props)\n return null;\n return isProxy(props) || InternalObjectKey in props ? extend$1({}, props) : props;\n}\nfunction cloneVNode(vnode, extraProps, mergeRef = false) {\n const { props, ref, patchFlag, children } = vnode;\n const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;\n const cloned = {\n __v_isVNode: true,\n __v_skip: true,\n type: vnode.type,\n props: mergedProps,\n key: mergedProps && normalizeKey(mergedProps),\n ref: extraProps && extraProps.ref ? mergeRef && ref ? isArray$1(ref) ? ref.concat(normalizeRef(extraProps)) : [ref, normalizeRef(extraProps)] : normalizeRef(extraProps) : ref,\n scopeId: vnode.scopeId,\n slotScopeIds: vnode.slotScopeIds,\n children,\n target: vnode.target,\n targetAnchor: vnode.targetAnchor,\n staticCount: vnode.staticCount,\n shapeFlag: vnode.shapeFlag,\n patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag,\n dynamicProps: vnode.dynamicProps,\n dynamicChildren: vnode.dynamicChildren,\n appContext: vnode.appContext,\n dirs: vnode.dirs,\n transition: vnode.transition,\n component: vnode.component,\n suspense: vnode.suspense,\n ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),\n ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),\n el: vnode.el,\n anchor: vnode.anchor\n };\n return cloned;\n}\nfunction createTextVNode(text2 = \" \", flag = 0) {\n return createVNode(Text, null, text2, flag);\n}\nfunction createCommentVNode(text2 = \"\", asBlock = false) {\n return asBlock ? (openBlock(), createBlock(Comment, null, text2)) : createVNode(Comment, null, text2);\n}\nfunction normalizeVNode(child) {\n if (child == null || typeof child === \"boolean\") {\n return createVNode(Comment);\n } else if (isArray$1(child)) {\n return createVNode(\n Fragment,\n null,\n child.slice()\n );\n } else if (typeof child === \"object\") {\n return cloneIfMounted(child);\n } else {\n return createVNode(Text, null, String(child));\n }\n}\nfunction cloneIfMounted(child) {\n return child.el === null || child.memo ? child : cloneVNode(child);\n}\nfunction normalizeChildren(vnode, children) {\n let type = 0;\n const { shapeFlag } = vnode;\n if (children == null) {\n children = null;\n } else if (isArray$1(children)) {\n type = 16;\n } else if (typeof children === \"object\") {\n if (shapeFlag & (1 | 64)) {\n const slot = children.default;\n if (slot) {\n slot._c && (slot._d = false);\n normalizeChildren(vnode, slot());\n slot._c && (slot._d = true);\n }\n return;\n } else {\n type = 32;\n const slotFlag = children._;\n if (!slotFlag && !(InternalObjectKey in children)) {\n children._ctx = currentRenderingInstance;\n } else if (slotFlag === 3 && currentRenderingInstance) {\n if (currentRenderingInstance.slots._ === 1) {\n children._ = 1;\n } else {\n children._ = 2;\n vnode.patchFlag |= 1024;\n }\n }\n }\n } else if (isFunction$1(children)) {\n children = { default: children, _ctx: currentRenderingInstance };\n type = 32;\n } else {\n children = String(children);\n if (shapeFlag & 64) {\n type = 16;\n children = [createTextVNode(children)];\n } else {\n type = 8;\n }\n }\n vnode.children = children;\n vnode.shapeFlag |= type;\n}\nfunction mergeProps(...args) {\n const ret = {};\n for (let i = 0; i < args.length; i++) {\n const toMerge = args[i];\n for (const key in toMerge) {\n if (key === \"class\") {\n if (ret.class !== toMerge.class) {\n ret.class = normalizeClass([ret.class, toMerge.class]);\n }\n } else if (key === \"style\") {\n ret.style = normalizeStyle([ret.style, toMerge.style]);\n } else if (isOn$1(key)) {\n const existing = ret[key];\n const incoming = toMerge[key];\n if (incoming && existing !== incoming && !(isArray$1(existing) && existing.includes(incoming))) {\n ret[key] = existing ? [].concat(existing, incoming) : incoming;\n }\n } else if (key !== \"\") {\n ret[key] = toMerge[key];\n }\n }\n }\n return ret;\n}\nfunction invokeVNodeHook(hook, instance2, vnode, prevVNode = null) {\n callWithAsyncErrorHandling(hook, instance2, 7, [\n vnode,\n prevVNode\n ]);\n}\nconst emptyAppContext = createAppContext();\nlet uid$1 = 0;\nfunction createComponentInstance(vnode, parent, suspense) {\n const type = vnode.type;\n const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;\n const instance2 = {\n uid: uid$1++,\n vnode,\n type,\n parent,\n appContext,\n root: null,\n next: null,\n subTree: null,\n effect: null,\n update: null,\n scope: new EffectScope(true),\n render: null,\n proxy: null,\n exposed: null,\n exposeProxy: null,\n withProxy: null,\n provides: parent ? parent.provides : Object.create(appContext.provides),\n accessCache: null,\n renderCache: [],\n components: null,\n directives: null,\n propsOptions: normalizePropsOptions(type, appContext),\n emitsOptions: normalizeEmitsOptions(type, appContext),\n emit: null,\n emitted: null,\n propsDefaults: EMPTY_OBJ,\n inheritAttrs: type.inheritAttrs,\n ctx: EMPTY_OBJ,\n data: EMPTY_OBJ,\n props: EMPTY_OBJ,\n attrs: EMPTY_OBJ,\n slots: EMPTY_OBJ,\n refs: EMPTY_OBJ,\n setupState: EMPTY_OBJ,\n setupContext: null,\n suspense,\n suspenseId: suspense ? suspense.pendingId : 0,\n asyncDep: null,\n asyncResolved: false,\n isMounted: false,\n isUnmounted: false,\n isDeactivated: false,\n bc: null,\n c: null,\n bm: null,\n m: null,\n bu: null,\n u: null,\n um: null,\n bum: null,\n da: null,\n a: null,\n rtg: null,\n rtc: null,\n ec: null,\n sp: null\n };\n {\n instance2.ctx = { _: instance2 };\n }\n instance2.root = parent ? parent.root : instance2;\n instance2.emit = emit$1.bind(null, instance2);\n if (vnode.ce) {\n vnode.ce(instance2);\n }\n return instance2;\n}\nlet currentInstance = null;\nconst getCurrentInstance = () => currentInstance || currentRenderingInstance;\nconst setCurrentInstance = (instance2) => {\n currentInstance = instance2;\n instance2.scope.on();\n};\nconst unsetCurrentInstance = () => {\n currentInstance && currentInstance.scope.off();\n currentInstance = null;\n};\nfunction isStatefulComponent(instance2) {\n return instance2.vnode.shapeFlag & 4;\n}\nlet isInSSRComponentSetup = false;\nfunction setupComponent(instance2, isSSR = false) {\n isInSSRComponentSetup = isSSR;\n const { props, children } = instance2.vnode;\n const isStateful = isStatefulComponent(instance2);\n initProps(instance2, props, isStateful, isSSR);\n initSlots(instance2, children);\n const setupResult = isStateful ? setupStatefulComponent(instance2, isSSR) : void 0;\n isInSSRComponentSetup = false;\n return setupResult;\n}\nfunction setupStatefulComponent(instance2, isSSR) {\n const Component = instance2.type;\n instance2.accessCache = /* @__PURE__ */ Object.create(null);\n instance2.proxy = markRaw(new Proxy(instance2.ctx, PublicInstanceProxyHandlers));\n const { setup } = Component;\n if (setup) {\n const setupContext = instance2.setupContext = setup.length > 1 ? createSetupContext(instance2) : null;\n setCurrentInstance(instance2);\n pauseTracking();\n const setupResult = callWithErrorHandling(setup, instance2, 0, [instance2.props, setupContext]);\n resetTracking();\n unsetCurrentInstance();\n if (isPromise(setupResult)) {\n setupResult.then(unsetCurrentInstance, unsetCurrentInstance);\n if (isSSR) {\n return setupResult.then((resolvedResult) => {\n handleSetupResult(instance2, resolvedResult, isSSR);\n }).catch((e) => {\n handleError(e, instance2, 0);\n });\n } else {\n instance2.asyncDep = setupResult;\n }\n } else {\n handleSetupResult(instance2, setupResult, isSSR);\n }\n } else {\n finishComponentSetup(instance2, isSSR);\n }\n}\nfunction handleSetupResult(instance2, setupResult, isSSR) {\n if (isFunction$1(setupResult)) {\n if (instance2.type.__ssrInlineRender) {\n instance2.ssrRender = setupResult;\n } else {\n instance2.render = setupResult;\n }\n } else if (isObject$1(setupResult)) {\n instance2.setupState = proxyRefs(setupResult);\n } else\n ;\n finishComponentSetup(instance2, isSSR);\n}\nlet compile$1;\nfunction finishComponentSetup(instance2, isSSR, skipOptions) {\n const Component = instance2.type;\n if (!instance2.render) {\n if (!isSSR && compile$1 && !Component.render) {\n const template = Component.template;\n if (template) {\n const { isCustomElement, compilerOptions } = instance2.appContext.config;\n const { delimiters, compilerOptions: componentCompilerOptions } = Component;\n const finalCompilerOptions = extend$1(extend$1({\n isCustomElement,\n delimiters\n }, compilerOptions), componentCompilerOptions);\n Component.render = compile$1(template, finalCompilerOptions);\n }\n }\n instance2.render = Component.render || NOOP;\n }\n {\n setCurrentInstance(instance2);\n pauseTracking();\n applyOptions(instance2);\n resetTracking();\n unsetCurrentInstance();\n }\n}\nfunction createAttrsProxy(instance2) {\n return new Proxy(instance2.attrs, {\n get(target, key) {\n track(instance2, \"get\", \"$attrs\");\n return target[key];\n }\n });\n}\nfunction createSetupContext(instance2) {\n const expose = (exposed) => {\n instance2.exposed = exposed || {};\n };\n let attrs;\n {\n return {\n get attrs() {\n return attrs || (attrs = createAttrsProxy(instance2));\n },\n slots: instance2.slots,\n emit: instance2.emit,\n expose\n };\n }\n}\nfunction getExposeProxy(instance2) {\n if (instance2.exposed) {\n return instance2.exposeProxy || (instance2.exposeProxy = new Proxy(proxyRefs(markRaw(instance2.exposed)), {\n get(target, key) {\n if (key in target) {\n return target[key];\n } else if (key in publicPropertiesMap) {\n return publicPropertiesMap[key](instance2);\n }\n }\n }));\n }\n}\nfunction getComponentName(Component, includeInferred = true) {\n return isFunction$1(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;\n}\nfunction isClassComponent(value) {\n return isFunction$1(value) && \"__vccOpts\" in value;\n}\nconst computed = (getterOrOptions, debugOptions) => {\n return computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);\n};\nfunction h(type, propsOrChildren, children) {\n const l = arguments.length;\n if (l === 2) {\n if (isObject$1(propsOrChildren) && !isArray$1(propsOrChildren)) {\n if (isVNode(propsOrChildren)) {\n return createVNode(type, null, [propsOrChildren]);\n }\n return createVNode(type, propsOrChildren);\n } else {\n return createVNode(type, null, propsOrChildren);\n }\n } else {\n if (l > 3) {\n children = Array.prototype.slice.call(arguments, 2);\n } else if (l === 3 && isVNode(children)) {\n children = [children];\n }\n return createVNode(type, propsOrChildren, children);\n }\n}\nconst version = \"3.2.37\";\nfunction makeMap(str, expectsLowerCase) {\n const map = /* @__PURE__ */ Object.create(null);\n const list2 = str.split(\",\");\n for (let i = 0; i < list2.length; i++) {\n map[list2[i]] = true;\n }\n return expectsLowerCase ? (val) => !!map[val.toLowerCase()] : (val) => !!map[val];\n}\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst onRE = /^on[^a-z]/;\nconst isOn = (key) => onRE.test(key);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst isArray = Array.isArray;\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, \"-$1\").toLowerCase());\nconst capitalize = cacheStringFunction((str) => str.charAt(0).toUpperCase() + str.slice(1));\nconst toNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst svgNS = \"http://www.w3.org/2000/svg\";\nconst doc = typeof document !== \"undefined\" ? document : null;\nconst templateContainer = doc && /* @__PURE__ */ doc.createElement(\"template\");\nconst nodeOps = {\n insert: (child, parent, anchor) => {\n parent.insertBefore(child, anchor || null);\n },\n remove: (child) => {\n const parent = child.parentNode;\n if (parent) {\n parent.removeChild(child);\n }\n },\n createElement: (tag, isSVG, is, props) => {\n const el = isSVG ? doc.createElementNS(svgNS, tag) : doc.createElement(tag, is ? { is } : void 0);\n if (tag === \"select\" && props && props.multiple != null) {\n el.setAttribute(\"multiple\", props.multiple);\n }\n return el;\n },\n createText: (text2) => doc.createTextNode(text2),\n createComment: (text2) => doc.createComment(text2),\n setText: (node, text2) => {\n node.nodeValue = text2;\n },\n setElementText: (el, text2) => {\n el.textContent = text2;\n },\n parentNode: (node) => node.parentNode,\n nextSibling: (node) => node.nextSibling,\n querySelector: (selector) => doc.querySelector(selector),\n setScopeId(el, id) {\n el.setAttribute(id, \"\");\n },\n cloneNode(el) {\n const cloned = el.cloneNode(true);\n if (`_value` in el) {\n cloned._value = el._value;\n }\n return cloned;\n },\n insertStaticContent(content2, parent, anchor, isSVG, start, end) {\n const before = anchor ? anchor.previousSibling : parent.lastChild;\n if (start && (start === end || start.nextSibling)) {\n while (true) {\n parent.insertBefore(start.cloneNode(true), anchor);\n if (start === end || !(start = start.nextSibling))\n break;\n }\n } else {\n templateContainer.innerHTML = isSVG ? `<svg>${content2}</svg>` : content2;\n const template = templateContainer.content;\n if (isSVG) {\n const wrapper = template.firstChild;\n while (wrapper.firstChild) {\n template.appendChild(wrapper.firstChild);\n }\n template.removeChild(wrapper);\n }\n parent.insertBefore(template, anchor);\n }\n return [\n before ? before.nextSibling : parent.firstChild,\n anchor ? anchor.previousSibling : parent.lastChild\n ];\n }\n};\nfunction patchClass(el, value, isSVG) {\n const transitionClasses = el._vtc;\n if (transitionClasses) {\n value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(\" \");\n }\n if (value == null) {\n el.removeAttribute(\"class\");\n } else if (isSVG) {\n el.setAttribute(\"class\", value);\n } else {\n el.className = value;\n }\n}\nfunction patchStyle(el, prev, next) {\n const style = el.style;\n const isCssString = isString(next);\n if (next && !isCssString) {\n for (const key in next) {\n setStyle(style, key, next[key]);\n }\n if (prev && !isString(prev)) {\n for (const key in prev) {\n if (next[key] == null) {\n setStyle(style, key, \"\");\n }\n }\n }\n } else {\n const currentDisplay = style.display;\n if (isCssString) {\n if (prev !== next) {\n style.cssText = next;\n }\n } else if (prev) {\n el.removeAttribute(\"style\");\n }\n if (\"_vod\" in el) {\n style.display = currentDisplay;\n }\n }\n}\nconst importantRE = /\\s*!important$/;\nfunction setStyle(style, name, val) {\n if (isArray(val)) {\n val.forEach((v) => setStyle(style, name, v));\n } else {\n if (val == null)\n val = \"\";\n if (name.startsWith(\"--\")) {\n style.setProperty(name, val);\n } else {\n const prefixed = autoPrefix(style, name);\n if (importantRE.test(val)) {\n style.setProperty(hyphenate(prefixed), val.replace(importantRE, \"\"), \"important\");\n } else {\n style[prefixed] = val;\n }\n }\n }\n}\nconst prefixes = [\"Webkit\", \"Moz\", \"ms\"];\nconst prefixCache = {};\nfunction autoPrefix(style, rawName) {\n const cached = prefixCache[rawName];\n if (cached) {\n return cached;\n }\n let name = camelize$1(rawName);\n if (name !== \"filter\" && name in style) {\n return prefixCache[rawName] = name;\n }\n name = capitalize(name);\n for (let i = 0; i < prefixes.length; i++) {\n const prefixed = prefixes[i] + name;\n if (prefixed in style) {\n return prefixCache[rawName] = prefixed;\n }\n }\n return rawName;\n}\nconst xlinkNS = \"http://www.w3.org/1999/xlink\";\nfunction patchAttr(el, key, value, isSVG, instance2) {\n if (isSVG && key.startsWith(\"xlink:\")) {\n if (value == null) {\n el.removeAttributeNS(xlinkNS, key.slice(6, key.length));\n } else {\n el.setAttributeNS(xlinkNS, key, value);\n }\n } else {\n const isBoolean = isSpecialBooleanAttr(key);\n if (value == null || isBoolean && !includeBooleanAttr(value)) {\n el.removeAttribute(key);\n } else {\n el.setAttribute(key, isBoolean ? \"\" : value);\n }\n }\n}\nfunction patchDOMProp(el, key, value, prevChildren, parentComponent, parentSuspense, unmountChildren) {\n if (key === \"innerHTML\" || key === \"textContent\") {\n if (prevChildren) {\n unmountChildren(prevChildren, parentComponent, parentSuspense);\n }\n el[key] = value == null ? \"\" : value;\n return;\n }\n if (key === \"value\" && el.tagName !== \"PROGRESS\" && !el.tagName.includes(\"-\")) {\n el._value = value;\n const newValue = value == null ? \"\" : value;\n if (el.value !== newValue || el.tagName === \"OPTION\") {\n el.value = newValue;\n }\n if (value == null) {\n el.removeAttribute(key);\n }\n return;\n }\n let needRemove = false;\n if (value === \"\" || value == null) {\n const type = typeof el[key];\n if (type === \"boolean\") {\n value = includeBooleanAttr(value);\n } else if (value == null && type === \"string\") {\n value = \"\";\n needRemove = true;\n } else if (type === \"number\") {\n value = 0;\n needRemove = true;\n }\n }\n try {\n el[key] = value;\n } catch (e) {\n }\n needRemove && el.removeAttribute(key);\n}\nconst [_getNow, skipTimestampCheck] = /* @__PURE__ */ (() => {\n let _getNow2 = Date.now;\n let skipTimestampCheck2 = false;\n if (typeof window !== \"undefined\") {\n if (Date.now() > document.createEvent(\"Event\").timeStamp) {\n _getNow2 = performance.now.bind(performance);\n }\n const ffMatch = navigator.userAgent.match(/firefox\\/(\\d+)/i);\n skipTimestampCheck2 = !!(ffMatch && Number(ffMatch[1]) <= 53);\n }\n return [_getNow2, skipTimestampCheck2];\n})();\nlet cachedNow = 0;\nconst p = /* @__PURE__ */ Promise.resolve();\nconst reset = () => {\n cachedNow = 0;\n};\nconst getNow = () => cachedNow || (p.then(reset), cachedNow = _getNow());\nfunction addEventListener$1(el, event, handler, options) {\n el.addEventListener(event, handler, options);\n}\nfunction removeEventListener(el, event, handler, options) {\n el.removeEventListener(event, handler, options);\n}\nfunction patchEvent(el, rawName, prevValue, nextValue, instance2 = null) {\n const invokers = el._vei || (el._vei = {});\n const existingInvoker = invokers[rawName];\n if (nextValue && existingInvoker) {\n existingInvoker.value = nextValue;\n } else {\n const [name, options] = parseName(rawName);\n if (nextValue) {\n const invoker = invokers[rawName] = createInvoker(nextValue, instance2);\n addEventListener$1(el, name, invoker, options);\n } else if (existingInvoker) {\n removeEventListener(el, name, existingInvoker, options);\n invokers[rawName] = void 0;\n }\n }\n}\nconst optionsModifierRE = /(?:Once|Passive|Capture)$/;\nfunction parseName(name) {\n let options;\n if (optionsModifierRE.test(name)) {\n options = {};\n let m;\n while (m = name.match(optionsModifierRE)) {\n name = name.slice(0, name.length - m[0].length);\n options[m[0].toLowerCase()] = true;\n }\n }\n return [hyphenate(name.slice(2)), options];\n}\nfunction createInvoker(initialValue, instance2) {\n const invoker = (e) => {\n const timeStamp = e.timeStamp || _getNow();\n if (skipTimestampCheck || timeStamp >= invoker.attached - 1) {\n callWithAsyncErrorHandling(patchStopImmediatePropagation(e, invoker.value), instance2, 5, [e]);\n }\n };\n invoker.value = initialValue;\n invoker.attached = getNow();\n return invoker;\n}\nfunction patchStopImmediatePropagation(e, value) {\n if (isArray(value)) {\n const originalStop = e.stopImmediatePropagation;\n e.stopImmediatePropagation = () => {\n originalStop.call(e);\n e._stopped = true;\n };\n return value.map((fn) => (e2) => !e2._stopped && fn && fn(e2));\n } else {\n return value;\n }\n}\nconst nativeOnRE = /^on[a-z]/;\nconst patchProp = (el, key, prevValue, nextValue, isSVG = false, prevChildren, parentComponent, parentSuspense, unmountChildren) => {\n if (key === \"class\") {\n patchClass(el, nextValue, isSVG);\n } else if (key === \"style\") {\n patchStyle(el, prevValue, nextValue);\n } else if (isOn(key)) {\n if (!isModelListener(key)) {\n patchEvent(el, key, prevValue, nextValue, parentComponent);\n }\n } else if (key[0] === \".\" ? (key = key.slice(1), true) : key[0] === \"^\" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) {\n patchDOMProp(el, key, nextValue, prevChildren, parentComponent, parentSuspense, unmountChildren);\n } else {\n if (key === \"true-value\") {\n el._trueValue = nextValue;\n } else if (key === \"false-value\") {\n el._falseValue = nextValue;\n }\n patchAttr(el, key, nextValue, isSVG);\n }\n};\nfunction shouldSetAsProp(el, key, value, isSVG) {\n if (isSVG) {\n if (key === \"innerHTML\" || key === \"textContent\") {\n return true;\n }\n if (key in el && nativeOnRE.test(key) && isFunction(value)) {\n return true;\n }\n return false;\n }\n if (key === \"spellcheck\" || key === \"draggable\" || key === \"translate\") {\n return false;\n }\n if (key === \"form\") {\n return false;\n }\n if (key === \"list\" && el.tagName === \"INPUT\") {\n return false;\n }\n if (key === \"type\" && el.tagName === \"TEXTAREA\") {\n return false;\n }\n if (nativeOnRE.test(key) && isString(value)) {\n return false;\n }\n return key in el;\n}\nfunction defineCustomElement(options, hydrate) {\n const Comp = defineComponent(options);\n class VueCustomElement extends VueElement {\n constructor(initialProps) {\n super(Comp, initialProps, hydrate);\n }\n }\n VueCustomElement.def = Comp;\n return VueCustomElement;\n}\nconst BaseClass = typeof HTMLElement !== \"undefined\" ? HTMLElement : class {\n};\nclass VueElement extends BaseClass {\n constructor(_def, _props = {}, hydrate) {\n super();\n this._def = _def;\n this._props = _props;\n this._instance = null;\n this._connected = false;\n this._resolved = false;\n this._numberProps = null;\n if (this.shadowRoot && hydrate) {\n hydrate(this._createVNode(), this.shadowRoot);\n } else {\n this.attachShadow({ mode: \"open\" });\n }\n }\n connectedCallback() {\n this._connected = true;\n if (!this._instance) {\n this._resolveDef();\n }\n }\n disconnectedCallback() {\n this._connected = false;\n nextTick(() => {\n if (!this._connected) {\n render(null, this.shadowRoot);\n this._instance = null;\n }\n });\n }\n _resolveDef() {\n if (this._resolved) {\n return;\n }\n this._resolved = true;\n for (let i = 0; i < this.attributes.length; i++) {\n this._setAttr(this.attributes[i].name);\n }\n new MutationObserver((mutations) => {\n for (const m of mutations) {\n this._setAttr(m.attributeName);\n }\n }).observe(this, { attributes: true });\n const resolve2 = (def2) => {\n const { props, styles } = def2;\n const hasOptions = !isArray(props);\n const rawKeys = props ? hasOptions ? Object.keys(props) : props : [];\n let numberProps;\n if (hasOptions) {\n for (const key in this._props) {\n const opt = props[key];\n if (opt === Number || opt && opt.type === Number) {\n this._props[key] = toNumber(this._props[key]);\n (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[key] = true;\n }\n }\n }\n this._numberProps = numberProps;\n for (const key of Object.keys(this)) {\n if (key[0] !== \"_\") {\n this._setProp(key, this[key], true, false);\n }\n }\n for (const key of rawKeys.map(camelize)) {\n Object.defineProperty(this, key, {\n get() {\n return this._getProp(key);\n },\n set(val) {\n this._setProp(key, val);\n }\n });\n }\n this._applyStyles(styles);\n this._update();\n };\n const asyncDef = this._def.__asyncLoader;\n if (asyncDef) {\n asyncDef().then(resolve2);\n } else {\n resolve2(this._def);\n }\n }\n _setAttr(key) {\n let value = this.getAttribute(key);\n if (this._numberProps && this._numberProps[key]) {\n value = toNumber(value);\n }\n this._setProp(camelize(key), value, false);\n }\n _getProp(key) {\n return this._props[key];\n }\n _setProp(key, val, shouldReflect = true, shouldUpdate = true) {\n if (val !== this._props[key]) {\n this._props[key] = val;\n if (shouldUpdate && this._instance) {\n this._update();\n }\n if (shouldReflect) {\n if (val === true) {\n this.setAttribute(hyphenate(key), \"\");\n } else if (typeof val === \"string\" || typeof val === \"number\") {\n this.setAttribute(hyphenate(key), val + \"\");\n } else if (!val) {\n this.removeAttribute(hyphenate(key));\n }\n }\n }\n }\n _update() {\n render(this._createVNode(), this.shadowRoot);\n }\n _createVNode() {\n const vnode = createVNode(this._def, extend({}, this._props));\n if (!this._instance) {\n vnode.ce = (instance2) => {\n this._instance = instance2;\n instance2.isCE = true;\n instance2.emit = (event, ...args) => {\n this.dispatchEvent(new CustomEvent(event, {\n detail: args\n }));\n };\n let parent = this;\n while (parent = parent && (parent.parentNode || parent.host)) {\n if (parent instanceof VueElement) {\n instance2.parent = parent._instance;\n break;\n }\n }\n };\n }\n return vnode;\n }\n _applyStyles(styles) {\n if (styles) {\n styles.forEach((css) => {\n const s = document.createElement(\"style\");\n s.textContent = css;\n this.shadowRoot.appendChild(s);\n });\n }\n }\n}\nconst TRANSITION = \"transition\";\nconst ANIMATION = \"animation\";\nconst Transition = (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots);\nTransition.displayName = \"Transition\";\nconst DOMTransitionPropsValidators = {\n name: String,\n type: String,\n css: {\n type: Boolean,\n default: true\n },\n duration: [String, Number, Object],\n enterFromClass: String,\n enterActiveClass: String,\n enterToClass: String,\n appearFromClass: String,\n appearActiveClass: String,\n appearToClass: String,\n leaveFromClass: String,\n leaveActiveClass: String,\n leaveToClass: String\n};\nconst TransitionPropsValidators = Transition.props = /* @__PURE__ */ extend({}, BaseTransition.props, DOMTransitionPropsValidators);\nconst callHook = (hook, args = []) => {\n if (isArray(hook)) {\n hook.forEach((h2) => h2(...args));\n } else if (hook) {\n hook(...args);\n }\n};\nconst hasExplicitCallback = (hook) => {\n return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false;\n};\nfunction resolveTransitionProps(rawProps) {\n const baseProps = {};\n for (const key in rawProps) {\n if (!(key in DOMTransitionPropsValidators)) {\n baseProps[key] = rawProps[key];\n }\n }\n if (rawProps.css === false) {\n return baseProps;\n }\n const { name = \"v\", type, duration, enterFromClass = `${name}-enter-from`, enterActiveClass = `${name}-enter-active`, enterToClass = `${name}-enter-to`, appearFromClass = enterFromClass, appearActiveClass = enterActiveClass, appearToClass = enterToClass, leaveFromClass = `${name}-leave-from`, leaveActiveClass = `${name}-leave-active`, leaveToClass = `${name}-leave-to` } = rawProps;\n const durations = normalizeDuration(duration);\n const enterDuration = durations && durations[0];\n const leaveDuration = durations && durations[1];\n const { onBeforeEnter, onEnter, onEnterCancelled, onLeave, onLeaveCancelled, onBeforeAppear = onBeforeEnter, onAppear = onEnter, onAppearCancelled = onEnterCancelled } = baseProps;\n const finishEnter = (el, isAppear, done) => {\n removeTransitionClass(el, isAppear ? appearToClass : enterToClass);\n removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);\n done && done();\n };\n const finishLeave = (el, done) => {\n el._isLeaving = false;\n removeTransitionClass(el, leaveFromClass);\n removeTransitionClass(el, leaveToClass);\n removeTransitionClass(el, leaveActiveClass);\n done && done();\n };\n const makeEnterHook = (isAppear) => {\n return (el, done) => {\n const hook = isAppear ? onAppear : onEnter;\n const resolve2 = () => finishEnter(el, isAppear, done);\n callHook(hook, [el, resolve2]);\n nextFrame(() => {\n removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);\n addTransitionClass(el, isAppear ? appearToClass : enterToClass);\n if (!hasExplicitCallback(hook)) {\n whenTransitionEnds(el, type, enterDuration, resolve2);\n }\n });\n };\n };\n return extend(baseProps, {\n onBeforeEnter(el) {\n callHook(onBeforeEnter, [el]);\n addTransitionClass(el, enterFromClass);\n addTransitionClass(el, enterActiveClass);\n },\n onBeforeAppear(el) {\n callHook(onBeforeAppear, [el]);\n addTransitionClass(el, appearFromClass);\n addTransitionClass(el, appearActiveClass);\n },\n onEnter: makeEnterHook(false),\n onAppear: makeEnterHook(true),\n onLeave(el, done) {\n el._isLeaving = true;\n const resolve2 = () => finishLeave(el, done);\n addTransitionClass(el, leaveFromClass);\n forceReflow();\n addTransitionClass(el, leaveActiveClass);\n nextFrame(() => {\n if (!el._isLeaving) {\n return;\n }\n removeTransitionClass(el, leaveFromClass);\n addTransitionClass(el, leaveToClass);\n if (!hasExplicitCallback(onLeave)) {\n whenTransitionEnds(el, type, leaveDuration, resolve2);\n }\n });\n callHook(onLeave, [el, resolve2]);\n },\n onEnterCancelled(el) {\n finishEnter(el, false);\n callHook(onEnterCancelled, [el]);\n },\n onAppearCancelled(el) {\n finishEnter(el, true);\n callHook(onAppearCancelled, [el]);\n },\n onLeaveCancelled(el) {\n finishLeave(el);\n callHook(onLeaveCancelled, [el]);\n }\n });\n}\nfunction normalizeDuration(duration) {\n if (duration == null) {\n return null;\n } else if (isObject(duration)) {\n return [NumberOf(duration.enter), NumberOf(duration.leave)];\n } else {\n const n = NumberOf(duration);\n return [n, n];\n }\n}\nfunction NumberOf(val) {\n const res = toNumber(val);\n return res;\n}\nfunction addTransitionClass(el, cls) {\n cls.split(/\\s+/).forEach((c) => c && el.classList.add(c));\n (el._vtc || (el._vtc = /* @__PURE__ */ new Set())).add(cls);\n}\nfunction removeTransitionClass(el, cls) {\n cls.split(/\\s+/).forEach((c) => c && el.classList.remove(c));\n const { _vtc } = el;\n if (_vtc) {\n _vtc.delete(cls);\n if (!_vtc.size) {\n el._vtc = void 0;\n }\n }\n}\nfunction nextFrame(cb) {\n requestAnimationFrame(() => {\n requestAnimationFrame(cb);\n });\n}\nlet endId = 0;\nfunction whenTransitionEnds(el, expectedType, explicitTimeout, resolve2) {\n const id = el._endId = ++endId;\n const resolveIfNotStale = () => {\n if (id === el._endId) {\n resolve2();\n }\n };\n if (explicitTimeout) {\n return setTimeout(resolveIfNotStale, explicitTimeout);\n }\n const { type, timeout, propCount } = getTransitionInfo(el, expectedType);\n if (!type) {\n return resolve2();\n }\n const endEvent = type + \"end\";\n let ended = 0;\n const end = () => {\n el.removeEventListener(endEvent, onEnd);\n resolveIfNotStale();\n };\n const onEnd = (e) => {\n if (e.target === el && ++ended >= propCount) {\n end();\n }\n };\n setTimeout(() => {\n if (ended < propCount) {\n end();\n }\n }, timeout + 1);\n el.addEventListener(endEvent, onEnd);\n}\nfunction getTransitionInfo(el, expectedType) {\n const styles = window.getComputedStyle(el);\n const getStyleProperties = (key) => (styles[key] || \"\").split(\", \");\n const transitionDelays = getStyleProperties(TRANSITION + \"Delay\");\n const transitionDurations = getStyleProperties(TRANSITION + \"Duration\");\n const transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n const animationDelays = getStyleProperties(ANIMATION + \"Delay\");\n const animationDurations = getStyleProperties(ANIMATION + \"Duration\");\n const animationTimeout = getTimeout(animationDelays, animationDurations);\n let type = null;\n let timeout = 0;\n let propCount = 0;\n if (expectedType === TRANSITION) {\n if (transitionTimeout > 0) {\n type = TRANSITION;\n timeout = transitionTimeout;\n propCount = transitionDurations.length;\n }\n } else if (expectedType === ANIMATION) {\n if (animationTimeout > 0) {\n type = ANIMATION;\n timeout = animationTimeout;\n propCount = animationDurations.length;\n }\n } else {\n timeout = Math.max(transitionTimeout, animationTimeout);\n type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null;\n propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0;\n }\n const hasTransform = type === TRANSITION && /\\b(transform|all)(,|$)/.test(styles[TRANSITION + \"Property\"]);\n return {\n type,\n timeout,\n propCount,\n hasTransform\n };\n}\nfunction getTimeout(delays, durations) {\n while (delays.length < durations.length) {\n delays = delays.concat(delays);\n }\n return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));\n}\nfunction toMs(s) {\n return Number(s.slice(0, -1).replace(\",\", \".\")) * 1e3;\n}\nfunction forceReflow() {\n return document.body.offsetHeight;\n}\nconst positionMap = /* @__PURE__ */ new WeakMap();\nconst newPositionMap = /* @__PURE__ */ new WeakMap();\nconst TransitionGroupImpl = {\n name: \"TransitionGroup\",\n props: /* @__PURE__ */ extend({}, TransitionPropsValidators, {\n tag: String,\n moveClass: String\n }),\n setup(props, { slots }) {\n const instance2 = getCurrentInstance();\n const state = useTransitionState();\n let prevChildren;\n let children;\n onUpdated(() => {\n if (!prevChildren.length) {\n return;\n }\n const moveClass = props.moveClass || `${props.name || \"v\"}-move`;\n if (!hasCSSTransform(prevChildren[0].el, instance2.vnode.el, moveClass)) {\n return;\n }\n prevChildren.forEach(callPendingCbs);\n prevChildren.forEach(recordPosition);\n const movedChildren = prevChildren.filter(applyTranslation);\n forceReflow();\n movedChildren.forEach((c) => {\n const el = c.el;\n const style = el.style;\n addTransitionClass(el, moveClass);\n style.transform = style.webkitTransform = style.transitionDuration = \"\";\n const cb = el._moveCb = (e) => {\n if (e && e.target !== el) {\n return;\n }\n if (!e || /transform$/.test(e.propertyName)) {\n el.removeEventListener(\"transitionend\", cb);\n el._moveCb = null;\n removeTransitionClass(el, moveClass);\n }\n };\n el.addEventListener(\"transitionend\", cb);\n });\n });\n return () => {\n const rawProps = toRaw(props);\n const cssTransitionProps = resolveTransitionProps(rawProps);\n let tag = rawProps.tag || Fragment;\n prevChildren = children;\n children = slots.default ? getTransitionRawChildren(slots.default()) : [];\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (child.key != null) {\n setTransitionHooks(child, resolveTransitionHooks(child, cssTransitionProps, state, instance2));\n }\n }\n if (prevChildren) {\n for (let i = 0; i < prevChildren.length; i++) {\n const child = prevChildren[i];\n setTransitionHooks(child, resolveTransitionHooks(child, cssTransitionProps, state, instance2));\n positionMap.set(child, child.el.getBoundingClientRect());\n }\n }\n return createVNode(tag, null, children);\n };\n }\n};\nconst TransitionGroup = TransitionGroupImpl;\nfunction callPendingCbs(c) {\n const el = c.el;\n if (el._moveCb) {\n el._moveCb();\n }\n if (el._enterCb) {\n el._enterCb();\n }\n}\nfunction recordPosition(c) {\n newPositionMap.set(c, c.el.getBoundingClientRect());\n}\nfunction applyTranslation(c) {\n const oldPos = positionMap.get(c);\n const newPos = newPositionMap.get(c);\n const dx = oldPos.left - newPos.left;\n const dy = oldPos.top - newPos.top;\n if (dx || dy) {\n const s = c.el.style;\n s.transform = s.webkitTransform = `translate(${dx}px,${dy}px)`;\n s.transitionDuration = \"0s\";\n return c;\n }\n}\nfunction hasCSSTransform(el, root, moveClass) {\n const clone = el.cloneNode();\n if (el._vtc) {\n el._vtc.forEach((cls) => {\n cls.split(/\\s+/).forEach((c) => c && clone.classList.remove(c));\n });\n }\n moveClass.split(/\\s+/).forEach((c) => c && clone.classList.add(c));\n clone.style.display = \"none\";\n const container = root.nodeType === 1 ? root : root.parentNode;\n container.appendChild(clone);\n const { hasTransform } = getTransitionInfo(clone);\n container.removeChild(clone);\n return hasTransform;\n}\nconst systemModifiers = [\"ctrl\", \"shift\", \"alt\", \"meta\"];\nconst modifierGuards = {\n stop: (e) => e.stopPropagation(),\n prevent: (e) => e.preventDefault(),\n self: (e) => e.target !== e.currentTarget,\n ctrl: (e) => !e.ctrlKey,\n shift: (e) => !e.shiftKey,\n alt: (e) => !e.altKey,\n meta: (e) => !e.metaKey,\n left: (e) => \"button\" in e && e.button !== 0,\n middle: (e) => \"button\" in e && e.button !== 1,\n right: (e) => \"button\" in e && e.button !== 2,\n exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m))\n};\nconst withModifiers = (fn, modifiers) => {\n return (event, ...args) => {\n for (let i = 0; i < modifiers.length; i++) {\n const guard = modifierGuards[modifiers[i]];\n if (guard && guard(event, modifiers))\n return;\n }\n return fn(event, ...args);\n };\n};\nconst keyNames = {\n esc: \"escape\",\n space: \" \",\n up: \"arrow-up\",\n left: \"arrow-left\",\n right: \"arrow-right\",\n down: \"arrow-down\",\n delete: \"backspace\"\n};\nconst withKeys = (fn, modifiers) => {\n return (event) => {\n if (!(\"key\" in event)) {\n return;\n }\n const eventKey = hyphenate(event.key);\n if (modifiers.some((k) => k === eventKey || keyNames[k] === eventKey)) {\n return fn(event);\n }\n };\n};\nconst vShow = {\n beforeMount(el, { value }, { transition }) {\n el._vod = el.style.display === \"none\" ? \"\" : el.style.display;\n if (transition && value) {\n transition.beforeEnter(el);\n } else {\n setDisplay(el, value);\n }\n },\n mounted(el, { value }, { transition }) {\n if (transition && value) {\n transition.enter(el);\n }\n },\n updated(el, { value, oldValue }, { transition }) {\n if (!value === !oldValue)\n return;\n if (transition) {\n if (value) {\n transition.beforeEnter(el);\n setDisplay(el, true);\n transition.enter(el);\n } else {\n transition.leave(el, () => {\n setDisplay(el, false);\n });\n }\n } else {\n setDisplay(el, value);\n }\n },\n beforeUnmount(el, { value }) {\n setDisplay(el, value);\n }\n};\nfunction setDisplay(el, value) {\n el.style.display = value ? el._vod : \"none\";\n}\nconst rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);\nlet renderer;\nfunction ensureRenderer() {\n return renderer || (renderer = createRenderer(rendererOptions));\n}\nconst render = (...args) => {\n ensureRenderer().render(...args);\n};\nvar _export_sfc = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\nconst _sfc_main$q = {\n name: \"AppLoader\",\n props: {\n show: { type: Boolean, default: false },\n infinite: { type: Boolean, default: false },\n type: { type: String, required: true },\n messageId: { type: String, default: \"\" }\n }\n};\nconst _hoisted_1$q = /* @__PURE__ */ createBaseVNode(\"div\", { id: \"vac-circle\" }, null, -1);\nconst _hoisted_2$n = /* @__PURE__ */ createBaseVNode(\"div\", { id: \"vac-circle\" }, null, -1);\nconst _hoisted_3$j = /* @__PURE__ */ createBaseVNode(\"div\", { id: \"vac-circle\" }, null, -1);\nconst _hoisted_4$g = /* @__PURE__ */ createBaseVNode(\"div\", { id: \"vac-circle\" }, null, -1);\nconst _hoisted_5$b = /* @__PURE__ */ createBaseVNode(\"div\", { id: \"vac-circle\" }, null, -1);\nconst _hoisted_6$7 = /* @__PURE__ */ createBaseVNode(\"div\", { id: \"vac-circle\" }, null, -1);\nfunction _sfc_render$q(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createBlock(Transition, {\n name: \"vac-fade-spinner\",\n appear: \"\"\n }, {\n default: withCtx(() => [\n $props.show ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"vac-loader-wrapper\", {\n \"vac-container-center\": !$props.infinite,\n \"vac-container-top\": $props.infinite\n }])\n }, [\n $props.type === \"rooms\" ? renderSlot(_ctx.$slots, \"spinner-icon-rooms\", { key: 0 }, () => [\n _hoisted_1$q\n ]) : createCommentVNode(\"\", true),\n $props.type === \"infinite-rooms\" ? renderSlot(_ctx.$slots, \"spinner-icon-infinite-rooms\", { key: 1 }, () => [\n _hoisted_2$n\n ]) : createCommentVNode(\"\", true),\n $props.type === \"message-file\" ? renderSlot(_ctx.$slots, \"spinner-icon-message-file_\" + $props.messageId, { key: 2 }, () => [\n _hoisted_3$j\n ]) : createCommentVNode(\"\", true),\n $props.type === \"room-file\" ? renderSlot(_ctx.$slots, \"spinner-icon-room-file\", { key: 3 }, () => [\n _hoisted_4$g\n ]) : createCommentVNode(\"\", true),\n $props.type === \"messages\" ? renderSlot(_ctx.$slots, \"spinner-icon-messages\", { key: 4 }, () => [\n _hoisted_5$b\n ]) : createCommentVNode(\"\", true),\n $props.type === \"infinite-messages\" ? renderSlot(_ctx.$slots, \"spinner-icon-infinite-messages\", { key: 5 }, () => [\n _hoisted_6$7\n ]) : createCommentVNode(\"\", true)\n ], 2)) : createCommentVNode(\"\", true)\n ]),\n _: 3\n });\n}\nvar Loader = /* @__PURE__ */ _export_sfc(_sfc_main$q, [[\"render\", _sfc_render$q]]);\nconst _sfc_main$p = {\n name: \"SvgIcon\",\n props: {\n name: { type: String, default: null },\n param: { type: String, default: null }\n },\n data() {\n return {\n svgItem: {\n search: {\n path: \"M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z\"\n },\n add: {\n path: \"M17,13H13V17H11V13H7V11H11V7H13V11H17M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\"\n },\n toggle: {\n path: \"M5,13L9,17L7.6,18.42L1.18,12L7.6,5.58L9,7L5,11H21V13H5M21,6V8H11V6H21M21,16V18H11V16H21Z\"\n },\n menu: {\n path: \"M12,16A2,2 0 0,1 14,18A2,2 0 0,1 12,20A2,2 0 0,1 10,18A2,2 0 0,1 12,16M12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10M12,4A2,2 0 0,1 14,6A2,2 0 0,1 12,8A2,2 0 0,1 10,6A2,2 0 0,1 12,4Z\"\n },\n close: {\n path: \"M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z\"\n },\n file: {\n path: \"M14,17H7V15H14M17,13H7V11H17M17,9H7V7H17M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\"\n },\n paperclip: {\n path: \"M16.5,6V17.5A4,4 0 0,1 12.5,21.5A4,4 0 0,1 8.5,17.5V5A2.5,2.5 0 0,1 11,2.5A2.5,2.5 0 0,1 13.5,5V15.5A1,1 0 0,1 12.5,16.5A1,1 0 0,1 11.5,15.5V6H10V15.5A2.5,2.5 0 0,0 12.5,18A2.5,2.5 0 0,0 15,15.5V5A4,4 0 0,0 11,1A4,4 0 0,0 7,5V17.5A5.5,5.5 0 0,0 12.5,23A5.5,5.5 0 0,0 18,17.5V6H16.5Z\"\n },\n \"close-outline\": {\n path: \"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z\"\n },\n send: {\n path: \"M2,21L23,12L2,3V10L17,12L2,14V21Z\"\n },\n emoji: {\n path: \"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z\"\n },\n document: {\n path: \"M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z\"\n },\n pencil: {\n path: \"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z\"\n },\n checkmark: {\n path: \"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\"\n },\n \"double-checkmark\": {\n path: \"M18 7l-1.41-1.41-6.34 6.34 1.41 1.41L18 7zm4.24-1.41L11.66 16.17 7.48 12l-1.41 1.41L11.66 19l12-12-1.42-1.41zM.41 13.41L6 19l1.41-1.41L1.83 12 .41 13.41z\"\n },\n eye: {\n path: \"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z\"\n },\n dropdown: {\n path: \"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z\"\n },\n deleted: {\n path: \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12C4,13.85 4.63,15.55 5.68,16.91L16.91,5.68C15.55,4.63 13.85,4 12,4M12,20A8,8 0 0,0 20,12C20,10.15 19.37,8.45 18.32,7.09L7.09,18.32C8.45,19.37 10.15,20 12,20Z\"\n },\n microphone: {\n size: \"large\",\n path: \"M432.8,216.4v39.2c0,45.2-15.3,84.3-45.2,118.4c-29.8,33.2-67.3,52.8-111.6,57.9v40.9h78.4c5.1,0,10.2,1.7,13.6,6c4.3,4.3,6,8.5,6,13.6c0,5.1-1.7,10.2-6,13.6c-4.3,4.3-8.5,6-13.6,6H157.6c-5.1,0-10.2-1.7-13.6-6c-4.3-4.3-6-8.5-6-13.6c0-5.1,1.7-10.2,6-13.6c4.3-4.3,8.5-6,13.6-6H236v-40.9c-44.3-5.1-81.8-23.9-111.6-57.9s-45.2-73.3-45.2-118.4v-39.2c0-5.1,1.7-10.2,6-13.6c4.3-4.3,8.5-6,13.6-6s10.2,1.7,13.6,6c4.3,4.3,6,8.5,6,13.6v39.2c0,37.5,13.6,70.7,40,97.1s59.6,40,97.1,40s70.7-13.6,97.1-40c26.4-26.4,40-59.6,40-97.1v-39.2c0-5.1,1.7-10.2,6-13.6c4.3-4.3,8.5-6,13.6-6c5.1,0,10.2,1.7,13.6,6C430.2,206.2,432.8,211.3,432.8,216.4z M353.5,98v157.6c0,27.3-9.4,50.3-29,69c-19.6,19.6-42.6,29-69,29s-50.3-9.4-69-29c-19.6-19.6-29-42.6-29-69V98c0-27.3,9.4-50.3,29-69c19.6-19.6,42.6-29,69-29s50.3,9.4,69,29C344.2,47.7,353.5,71.6,353.5,98z\"\n },\n \"audio-play\": {\n size: \"medium\",\n path: \"M43.331,21.237L7.233,0.397c-0.917-0.529-2.044-0.529-2.96,0c-0.916,0.528-1.48,1.505-1.48,2.563v41.684 c0,1.058,0.564,2.035,1.48,2.563c0.458,0.268,0.969,0.397,1.48,0.397c0.511,0,1.022-0.133,1.48-0.397l36.098-20.84 c0.918-0.529,1.479-1.506,1.479-2.564S44.247,21.767,43.331,21.237z\"\n },\n \"audio-pause\": {\n size: \"medium\",\n path: \"M17.991,40.976c0,3.662-2.969,6.631-6.631,6.631l0,0c-3.662,0-6.631-2.969-6.631-6.631V6.631C4.729,2.969,7.698,0,11.36,0l0,0c3.662,0,6.631,2.969,6.631,6.631V40.976z\",\n path2: \"M42.877,40.976c0,3.662-2.969,6.631-6.631,6.631l0,0c-3.662,0-6.631-2.969-6.631-6.631V6.631C29.616,2.969,32.585,0,36.246,0l0,0c3.662,0,6.631,2.969,6.631,6.631V40.976z\"\n }\n }\n };\n },\n computed: {\n svgId() {\n const param = this.param ? \"-\" + this.param : \"\";\n return `vac-icon-${this.name}${param}`;\n },\n size() {\n const item = this.svgItem[this.name];\n if (item.size === \"large\")\n return 512;\n else if (item.size === \"medium\")\n return 48;\n else\n return 24;\n }\n }\n};\nconst _hoisted_1$p = [\"viewBox\"];\nconst _hoisted_2$m = [\"id\", \"d\"];\nconst _hoisted_3$i = [\"id\", \"d\"];\nfunction _sfc_render$p(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n version: \"1.1\",\n width: \"24\",\n height: \"24\",\n viewBox: `0 0 ${$options.size} ${$options.size}`\n }, [\n createBaseVNode(\"path\", {\n id: $options.svgId,\n d: $data.svgItem[$props.name].path\n }, null, 8, _hoisted_2$m),\n $data.svgItem[$props.name].path2 ? (openBlock(), createElementBlock(\"path\", {\n key: 0,\n id: $options.svgId,\n d: $data.svgItem[$props.name].path2\n }, null, 8, _hoisted_3$i)) : createCommentVNode(\"\", true)\n ], 8, _hoisted_1$p);\n}\nvar SvgIcon = /* @__PURE__ */ _export_sfc(_sfc_main$p, [[\"render\", _sfc_render$p]]);\nconst _sfc_main$o = {\n name: \"RoomsSearch\",\n components: { SvgIcon },\n props: {\n textMessages: { type: Object, required: true },\n showSearch: { type: Boolean, required: true },\n showAddRoom: { type: Boolean, required: true },\n rooms: { type: Array, required: true },\n loadingRooms: { type: Boolean, required: true }\n },\n emits: [\"search-room\", \"add-room\"],\n computed: {\n showSearchBar() {\n return this.showSearch || this.showAddRoom;\n }\n }\n};\nconst _hoisted_1$o = {\n key: 0,\n class: \"vac-icon-search\"\n};\nconst _hoisted_2$l = [\"placeholder\"];\nfunction _sfc_render$o(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass({\n \"vac-box-search\": $options.showSearchBar,\n \"vac-box-empty\": !$options.showSearchBar\n })\n }, [\n $props.showSearch ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n !$props.loadingRooms && $props.rooms.length ? (openBlock(), createElementBlock(\"div\", _hoisted_1$o, [\n renderSlot(_ctx.$slots, \"search-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"search\" })\n ])\n ])) : createCommentVNode(\"\", true),\n !$props.loadingRooms && $props.rooms.length ? (openBlock(), createElementBlock(\"input\", {\n key: 1,\n type: \"search\",\n placeholder: $props.textMessages.SEARCH,\n autocomplete: \"off\",\n class: \"vac-input\",\n onInput: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"search-room\", $event))\n }, null, 40, _hoisted_2$l)) : createCommentVNode(\"\", true)\n ], 64)) : createCommentVNode(\"\", true),\n $props.showAddRoom ? (openBlock(), createElementBlock(\"div\", {\n key: 1,\n class: \"vac-svg-button vac-add-icon\",\n onClick: _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"add-room\"))\n }, [\n renderSlot(_ctx.$slots, \"add-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"add\" })\n ])\n ])) : createCommentVNode(\"\", true)\n ], 2);\n}\nvar RoomsSearch = /* @__PURE__ */ _export_sfc(_sfc_main$o, [[\"render\", _sfc_render$o]]);\nconst element$1 = document.createElement(\"i\");\nfunction decodeNamedCharacterReference(value) {\n const characterReference2 = \"&\" + value + \";\";\n element$1.innerHTML = characterReference2;\n const char = element$1.textContent;\n if (char.charCodeAt(char.length - 1) === 59 && value !== \"semi\") {\n return false;\n }\n return char === characterReference2 ? false : char;\n}\nfunction splice(list2, start, remove2, items) {\n const end = list2.length;\n let chunkStart = 0;\n let parameters;\n if (start < 0) {\n start = -start > end ? 0 : end + start;\n } else {\n start = start > end ? end : start;\n }\n remove2 = remove2 > 0 ? remove2 : 0;\n if (items.length < 1e4) {\n parameters = Array.from(items);\n parameters.unshift(start, remove2);\n list2.splice(...parameters);\n } else {\n if (remove2)\n list2.splice(start, remove2);\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 1e4);\n parameters.unshift(start, 0);\n list2.splice(...parameters);\n chunkStart += 1e4;\n start += 1e4;\n }\n }\n}\nfunction push(list2, items) {\n if (list2.length > 0) {\n splice(list2, list2.length, 0, items);\n return list2;\n }\n return items;\n}\nconst hasOwnProperty$1 = {}.hasOwnProperty;\nfunction combineExtensions(extensions) {\n const all = {};\n let index = -1;\n while (++index < extensions.length) {\n syntaxExtension(all, extensions[index]);\n }\n return all;\n}\nfunction syntaxExtension(all, extension) {\n let hook;\n for (hook in extension) {\n const maybe = hasOwnProperty$1.call(all, hook) ? all[hook] : void 0;\n const left = maybe || (all[hook] = {});\n const right = extension[hook];\n let code2;\n if (right) {\n for (code2 in right) {\n if (!hasOwnProperty$1.call(left, code2))\n left[code2] = [];\n const value = right[code2];\n constructs(\n left[code2],\n Array.isArray(value) ? value : value ? [value] : []\n );\n }\n }\n }\n}\nfunction constructs(existing, list2) {\n let index = -1;\n const before = [];\n while (++index < list2.length) {\n (list2[index].add === \"after\" ? existing : before).push(list2[index]);\n }\n splice(existing, 0, 0, before);\n}\nfunction combineHtmlExtensions(htmlExtensions) {\n const handlers = {};\n let index = -1;\n while (++index < htmlExtensions.length) {\n htmlExtension(handlers, htmlExtensions[index]);\n }\n return handlers;\n}\nfunction htmlExtension(all, extension) {\n let hook;\n for (hook in extension) {\n const maybe = hasOwnProperty$1.call(all, hook) ? all[hook] : void 0;\n const left = maybe || (all[hook] = {});\n const right = extension[hook];\n let type;\n if (right) {\n for (type in right) {\n left[type] = right[type];\n }\n }\n }\n}\nfunction decodeNumericCharacterReference(value, base) {\n const code2 = Number.parseInt(value, base);\n if (code2 < 9 || code2 === 11 || code2 > 13 && code2 < 32 || code2 > 126 && code2 < 160 || code2 > 55295 && code2 < 57344 || code2 > 64975 && code2 < 65008 || (code2 & 65535) === 65535 || (code2 & 65535) === 65534 || code2 > 1114111) {\n return \"\\uFFFD\";\n }\n return String.fromCharCode(code2);\n}\nconst characterReferences = { '\"': \"quot\", \"&\": \"amp\", \"<\": \"lt\", \">\": \"gt\" };\nfunction encode(value) {\n return value.replace(/[\"&<>]/g, replace2);\n function replace2(value2) {\n return \"&\" + characterReferences[value2] + \";\";\n }\n}\nfunction normalizeIdentifier(value) {\n return value.replace(/[\\t\\n\\r ]+/g, \" \").replace(/^ | $/g, \"\").toLowerCase().toUpperCase();\n}\nconst unicodePunctuationRegex = /[!-\\/:-@\\[-`\\{-~\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061D-\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1B7D\\u1B7E\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52-\\u2E5D\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/;\nconst asciiAlpha = regexCheck(/[A-Za-z]/);\nconst asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/);\nconst asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/);\nfunction asciiControl(code2) {\n return code2 !== null && (code2 < 32 || code2 === 127);\n}\nconst asciiDigit = regexCheck(/\\d/);\nconst asciiHexDigit = regexCheck(/[\\dA-Fa-f]/);\nconst asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/);\nfunction markdownLineEnding(code2) {\n return code2 !== null && code2 < -2;\n}\nfunction markdownLineEndingOrSpace(code2) {\n return code2 !== null && (code2 < 0 || code2 === 32);\n}\nfunction markdownSpace(code2) {\n return code2 === -2 || code2 === -1 || code2 === 32;\n}\nconst unicodePunctuation = regexCheck(unicodePunctuationRegex);\nconst unicodeWhitespace = regexCheck(/\\s/);\nfunction regexCheck(regex) {\n return check;\n function check(code2) {\n return code2 !== null && regex.test(String.fromCharCode(code2));\n }\n}\nfunction sanitizeUri(url, protocol) {\n const value = encode(normalizeUri(url || \"\"));\n if (!protocol) {\n return value;\n }\n const colon = value.indexOf(\":\");\n const questionMark = value.indexOf(\"?\");\n const numberSign = value.indexOf(\"#\");\n const slash = value.indexOf(\"/\");\n if (colon < 0 || slash > -1 && colon > slash || questionMark > -1 && colon > questionMark || numberSign > -1 && colon > numberSign || protocol.test(value.slice(0, colon))) {\n return value;\n }\n return \"\";\n}\nfunction normalizeUri(value) {\n const result = [];\n let index = -1;\n let start = 0;\n let skip = 0;\n while (++index < value.length) {\n const code2 = value.charCodeAt(index);\n let replace2 = \"\";\n if (code2 === 37 && asciiAlphanumeric(value.charCodeAt(index + 1)) && asciiAlphanumeric(value.charCodeAt(index + 2))) {\n skip = 2;\n } else if (code2 < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code2))) {\n replace2 = String.fromCharCode(code2);\n }\n } else if (code2 > 55295 && code2 < 57344) {\n const next = value.charCodeAt(index + 1);\n if (code2 < 56320 && next > 56319 && next < 57344) {\n replace2 = String.fromCharCode(code2, next);\n skip = 1;\n } else {\n replace2 = \"\\uFFFD\";\n }\n } else {\n replace2 = String.fromCharCode(code2);\n }\n if (replace2) {\n result.push(value.slice(start, index), encodeURIComponent(replace2));\n start = index + skip + 1;\n replace2 = \"\";\n }\n if (skip) {\n index += skip;\n skip = 0;\n }\n }\n return result.join(\"\") + value.slice(start);\n}\nconst hasOwnProperty = {}.hasOwnProperty;\nconst protocolHref = /^(https?|ircs?|mailto|xmpp)$/i;\nconst protocolSrc = /^https?$/i;\nfunction compile(options) {\n const settings = options || {};\n let tags = true;\n const definitions2 = {};\n const buffers = [[]];\n const mediaStack = [];\n const tightStack = [];\n const defaultHandlers = {\n enter: {\n blockQuote: onenterblockquote,\n codeFenced: onentercodefenced,\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: onentercodeindented,\n codeText: onentercodetext,\n content: onentercontent,\n definition: onenterdefinition,\n definitionDestinationString: onenterdefinitiondestinationstring,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: onenteremphasis,\n htmlFlow: onenterhtmlflow,\n htmlText: onenterhtml,\n image: onenterimage,\n label: buffer,\n link: onenterlink,\n listItemMarker: onenterlistitemmarker,\n listItemValue: onenterlistitemvalue,\n listOrdered: onenterlistordered,\n listUnordered: onenterlistunordered,\n paragraph: onenterparagraph,\n reference: buffer,\n resource: onenterresource,\n resourceDestinationString: onenterresourcedestinationstring,\n resourceTitleString: buffer,\n setextHeading: onentersetextheading,\n strong: onenterstrong\n },\n exit: {\n atxHeading: onexitatxheading,\n atxHeadingSequence: onexitatxheadingsequence,\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: onexitblockquote,\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n codeFenced: onexitflowcode,\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: resume,\n codeFlowValue: onexitcodeflowvalue,\n codeIndented: onexitflowcode,\n codeText: onexitcodetext,\n codeTextData: onexitdata,\n data: onexitdata,\n definition: onexitdefinition,\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: onexitemphasis,\n hardBreakEscape: onexithardbreak,\n hardBreakTrailing: onexithardbreak,\n htmlFlow: onexithtml,\n htmlFlowData: onexitdata,\n htmlText: onexithtml,\n htmlTextData: onexitdata,\n image: onexitmedia,\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: onexitmedia,\n listOrdered: onexitlistordered,\n listUnordered: onexitlistunordered,\n paragraph: onexitparagraph,\n reference: resume,\n referenceString: onexitreferencestring,\n resource: resume,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n setextHeading: onexitsetextheading,\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: onexitstrong,\n thematicBreak: onexitthematicbreak\n }\n };\n const handlers = combineHtmlExtensions(\n [defaultHandlers].concat(settings.htmlExtensions || [])\n );\n const data = {\n tightStack,\n definitions: definitions2\n };\n const context = {\n lineEndingIfNeeded,\n options: settings,\n encode: encode$1,\n raw,\n tag,\n buffer,\n resume,\n setData,\n getData\n };\n let lineEndingStyle = settings.defaultLineEnding;\n return compile2;\n function compile2(events) {\n let index = -1;\n let start = 0;\n const listStack = [];\n let head = [];\n let body = [];\n while (++index < events.length) {\n if (!lineEndingStyle && (events[index][1].type === \"lineEnding\" || events[index][1].type === \"lineEndingBlank\")) {\n lineEndingStyle = events[index][2].sliceSerialize(events[index][1]);\n }\n if (events[index][1].type === \"listOrdered\" || events[index][1].type === \"listUnordered\") {\n if (events[index][0] === \"enter\") {\n listStack.push(index);\n } else {\n prepareList(events.slice(listStack.pop(), index));\n }\n }\n if (events[index][1].type === \"definition\") {\n if (events[index][0] === \"enter\") {\n body = push(body, events.slice(start, index));\n start = index;\n } else {\n head = push(head, events.slice(start, index + 1));\n start = index + 1;\n }\n }\n }\n head = push(head, body);\n head = push(head, events.slice(start));\n index = -1;\n const result = head;\n if (handlers.enter.null) {\n handlers.enter.null.call(context);\n }\n while (++index < events.length) {\n const handles = handlers[result[index][0]];\n const kind = result[index][1].type;\n const handle = handles[kind];\n if (hasOwnProperty.call(handles, kind) && handle) {\n handle.call(\n Object.assign(\n {\n sliceSerialize: result[index][2].sliceSerialize\n },\n context\n ),\n result[index][1]\n );\n }\n }\n if (handlers.exit.null) {\n handlers.exit.null.call(context);\n }\n return buffers[0].join(\"\");\n }\n function prepareList(slice) {\n const length = slice.length;\n let index = 0;\n let containerBalance = 0;\n let loose = false;\n let atMarker;\n while (++index < length) {\n const event = slice[index];\n if (event[1]._container) {\n atMarker = void 0;\n if (event[0] === \"enter\") {\n containerBalance++;\n } else {\n containerBalance--;\n }\n } else\n switch (event[1].type) {\n case \"listItemPrefix\": {\n if (event[0] === \"exit\") {\n atMarker = true;\n }\n break;\n }\n case \"linePrefix\": {\n break;\n }\n case \"lineEndingBlank\": {\n if (event[0] === \"enter\" && !containerBalance) {\n if (atMarker) {\n atMarker = void 0;\n } else {\n loose = true;\n }\n }\n break;\n }\n default: {\n atMarker = void 0;\n }\n }\n }\n slice[0][1]._loose = loose;\n }\n function setData(key, value) {\n data[key] = value;\n }\n function getData(key) {\n return data[key];\n }\n function buffer() {\n buffers.push([]);\n }\n function resume() {\n const buf = buffers.pop();\n return buf.join(\"\");\n }\n function tag(value) {\n if (!tags)\n return;\n setData(\"lastWasTag\", true);\n buffers[buffers.length - 1].push(value);\n }\n function raw(value) {\n setData(\"lastWasTag\");\n buffers[buffers.length - 1].push(value);\n }\n function lineEnding2() {\n raw(lineEndingStyle || \"\\n\");\n }\n function lineEndingIfNeeded() {\n const buffer2 = buffers[buffers.length - 1];\n const slice = buffer2[buffer2.length - 1];\n const previous2 = slice ? slice.charCodeAt(slice.length - 1) : null;\n if (previous2 === 10 || previous2 === 13 || previous2 === null) {\n return;\n }\n lineEnding2();\n }\n function encode$1(value) {\n return getData(\"ignoreEncode\") ? value : encode(value);\n }\n function onenterlistordered(token) {\n tightStack.push(!token._loose);\n lineEndingIfNeeded();\n tag(\"<ol\");\n setData(\"expectFirstItem\", true);\n }\n function onenterlistunordered(token) {\n tightStack.push(!token._loose);\n lineEndingIfNeeded();\n tag(\"<ul\");\n setData(\"expectFirstItem\", true);\n }\n function onenterlistitemvalue(token) {\n if (getData(\"expectFirstItem\")) {\n const value = Number.parseInt(this.sliceSerialize(token), 10);\n if (value !== 1) {\n tag(' start=\"' + encode$1(String(value)) + '\"');\n }\n }\n }\n function onenterlistitemmarker() {\n if (getData(\"expectFirstItem\")) {\n tag(\">\");\n } else {\n onexitlistitem();\n }\n lineEndingIfNeeded();\n tag(\"<li>\");\n setData(\"expectFirstItem\");\n setData(\"lastWasTag\");\n }\n function onexitlistordered() {\n onexitlistitem();\n tightStack.pop();\n lineEnding2();\n tag(\"</ol>\");\n }\n function onexitlistunordered() {\n onexitlistitem();\n tightStack.pop();\n lineEnding2();\n tag(\"</ul>\");\n }\n function onexitlistitem() {\n if (getData(\"lastWasTag\") && !getData(\"slurpAllLineEndings\")) {\n lineEndingIfNeeded();\n }\n tag(\"</li>\");\n setData(\"slurpAllLineEndings\");\n }\n function onenterblockquote() {\n tightStack.push(false);\n lineEndingIfNeeded();\n tag(\"<blockquote>\");\n }\n function onexitblockquote() {\n tightStack.pop();\n lineEndingIfNeeded();\n tag(\"</blockquote>\");\n setData(\"slurpAllLineEndings\");\n }\n function onenterparagraph() {\n if (!tightStack[tightStack.length - 1]) {\n lineEndingIfNeeded();\n tag(\"<p>\");\n }\n setData(\"slurpAllLineEndings\");\n }\n function onexitparagraph() {\n if (tightStack[tightStack.length - 1]) {\n setData(\"slurpAllLineEndings\", true);\n } else {\n tag(\"</p>\");\n }\n }\n function onentercodefenced() {\n lineEndingIfNeeded();\n tag(\"<pre><code\");\n setData(\"fencesCount\", 0);\n }\n function onexitcodefencedfenceinfo() {\n const value = resume();\n tag(' class=\"language-' + value + '\"');\n }\n function onexitcodefencedfence() {\n const count = getData(\"fencesCount\") || 0;\n if (!count) {\n tag(\">\");\n setData(\"slurpOneLineEnding\", true);\n }\n setData(\"fencesCount\", count + 1);\n }\n function onentercodeindented() {\n lineEndingIfNeeded();\n tag(\"<pre><code>\");\n }\n function onexitflowcode() {\n const count = getData(\"fencesCount\");\n if (count !== void 0 && count < 2 && data.tightStack.length > 0 && !getData(\"lastWasTag\")) {\n lineEnding2();\n }\n if (getData(\"flowCodeSeenData\")) {\n lineEndingIfNeeded();\n }\n tag(\"</code></pre>\");\n if (count !== void 0 && count < 2)\n lineEndingIfNeeded();\n setData(\"flowCodeSeenData\");\n setData(\"fencesCount\");\n setData(\"slurpOneLineEnding\");\n }\n function onenterimage() {\n mediaStack.push({\n image: true\n });\n tags = void 0;\n }\n function onenterlink() {\n mediaStack.push({});\n }\n function onexitlabeltext(token) {\n mediaStack[mediaStack.length - 1].labelId = this.sliceSerialize(token);\n }\n function onexitlabel() {\n mediaStack[mediaStack.length - 1].label = resume();\n }\n function onexitreferencestring(token) {\n mediaStack[mediaStack.length - 1].referenceId = this.sliceSerialize(token);\n }\n function onenterresource() {\n buffer();\n mediaStack[mediaStack.length - 1].destination = \"\";\n }\n function onenterresourcedestinationstring() {\n buffer();\n setData(\"ignoreEncode\", true);\n }\n function onexitresourcedestinationstring() {\n mediaStack[mediaStack.length - 1].destination = resume();\n setData(\"ignoreEncode\");\n }\n function onexitresourcetitlestring() {\n mediaStack[mediaStack.length - 1].title = resume();\n }\n function onexitmedia() {\n let index = mediaStack.length - 1;\n const media = mediaStack[index];\n const id = media.referenceId || media.labelId;\n const context2 = media.destination === void 0 ? definitions2[normalizeIdentifier(id)] : media;\n tags = true;\n while (index--) {\n if (mediaStack[index].image) {\n tags = void 0;\n break;\n }\n }\n if (media.image) {\n tag(\n '<img src=\"' + sanitizeUri(\n context2.destination,\n settings.allowDangerousProtocol ? void 0 : protocolSrc\n ) + '\" alt=\"'\n );\n raw(media.label);\n tag('\"');\n } else {\n tag(\n '<a href=\"' + sanitizeUri(\n context2.destination,\n settings.allowDangerousProtocol ? void 0 : protocolHref\n ) + '\"'\n );\n }\n tag(context2.title ? ' title=\"' + context2.title + '\"' : \"\");\n if (media.image) {\n tag(\" />\");\n } else {\n tag(\">\");\n raw(media.label);\n tag(\"</a>\");\n }\n mediaStack.pop();\n }\n function onenterdefinition() {\n buffer();\n mediaStack.push({});\n }\n function onexitdefinitionlabelstring(token) {\n resume();\n mediaStack[mediaStack.length - 1].labelId = this.sliceSerialize(token);\n }\n function onenterdefinitiondestinationstring() {\n buffer();\n setData(\"ignoreEncode\", true);\n }\n function onexitdefinitiondestinationstring() {\n mediaStack[mediaStack.length - 1].destination = resume();\n setData(\"ignoreEncode\");\n }\n function onexitdefinitiontitlestring() {\n mediaStack[mediaStack.length - 1].title = resume();\n }\n function onexitdefinition() {\n const media = mediaStack[mediaStack.length - 1];\n const id = normalizeIdentifier(media.labelId);\n resume();\n if (!hasOwnProperty.call(definitions2, id)) {\n definitions2[id] = mediaStack[mediaStack.length - 1];\n }\n mediaStack.pop();\n }\n function onentercontent() {\n setData(\"slurpAllLineEndings\", true);\n }\n function onexitatxheadingsequence(token) {\n if (getData(\"headingRank\"))\n return;\n setData(\"headingRank\", this.sliceSerialize(token).length);\n lineEndingIfNeeded();\n tag(\"<h\" + getData(\"headingRank\") + \">\");\n }\n function onentersetextheading() {\n buffer();\n setData(\"slurpAllLineEndings\");\n }\n function onexitsetextheadingtext() {\n setData(\"slurpAllLineEndings\", true);\n }\n function onexitatxheading() {\n tag(\"</h\" + getData(\"headingRank\") + \">\");\n setData(\"headingRank\");\n }\n function onexitsetextheadinglinesequence(token) {\n setData(\n \"headingRank\",\n this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n );\n }\n function onexitsetextheading() {\n const value = resume();\n lineEndingIfNeeded();\n tag(\"<h\" + getData(\"headingRank\") + \">\");\n raw(value);\n tag(\"</h\" + getData(\"headingRank\") + \">\");\n setData(\"slurpAllLineEndings\");\n setData(\"headingRank\");\n }\n function onexitdata(token) {\n raw(encode$1(this.sliceSerialize(token)));\n }\n function onexitlineending(token) {\n if (getData(\"slurpAllLineEndings\")) {\n return;\n }\n if (getData(\"slurpOneLineEnding\")) {\n setData(\"slurpOneLineEnding\");\n return;\n }\n if (getData(\"inCodeText\")) {\n raw(\" \");\n return;\n }\n raw(encode$1(this.sliceSerialize(token)));\n }\n function onexitcodeflowvalue(token) {\n raw(encode$1(this.sliceSerialize(token)));\n setData(\"flowCodeSeenData\", true);\n }\n function onexithardbreak() {\n tag(\"<br />\");\n }\n function onenterhtmlflow() {\n lineEndingIfNeeded();\n onenterhtml();\n }\n function onexithtml() {\n setData(\"ignoreEncode\");\n }\n function onenterhtml() {\n if (settings.allowDangerousHtml) {\n setData(\"ignoreEncode\", true);\n }\n }\n function onenteremphasis() {\n tag(\"<em>\");\n }\n function onenterstrong() {\n tag(\"<strong>\");\n }\n function onentercodetext() {\n setData(\"inCodeText\", true);\n tag(\"<code>\");\n }\n function onexitcodetext() {\n setData(\"inCodeText\");\n tag(\"</code>\");\n }\n function onexitemphasis() {\n tag(\"</em>\");\n }\n function onexitstrong() {\n tag(\"</strong>\");\n }\n function onexitthematicbreak() {\n lineEndingIfNeeded();\n tag(\"<hr />\");\n }\n function onexitcharacterreferencemarker(token) {\n setData(\"characterReferenceType\", token.type);\n }\n function onexitcharacterreferencevalue(token) {\n let value = this.sliceSerialize(token);\n value = getData(\"characterReferenceType\") ? decodeNumericCharacterReference(\n value,\n getData(\"characterReferenceType\") === \"characterReferenceMarkerNumeric\" ? 10 : 16\n ) : decodeNamedCharacterReference(value);\n raw(encode$1(value));\n setData(\"characterReferenceType\");\n }\n function onexitautolinkprotocol(token) {\n const uri = this.sliceSerialize(token);\n tag(\n '<a href=\"' + sanitizeUri(\n uri,\n settings.allowDangerousProtocol ? void 0 : protocolHref\n ) + '\">'\n );\n raw(encode$1(uri));\n tag(\"</a>\");\n }\n function onexitautolinkemail(token) {\n const uri = this.sliceSerialize(token);\n tag('<a href=\"' + sanitizeUri(\"mailto:\" + uri) + '\">');\n raw(encode$1(uri));\n tag(\"</a>\");\n }\n}\nfunction factorySpace(effects, ok, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY;\n let size2 = 0;\n return start;\n function start(code2) {\n if (markdownSpace(code2)) {\n effects.enter(type);\n return prefix(code2);\n }\n return ok(code2);\n }\n function prefix(code2) {\n if (markdownSpace(code2) && size2++ < limit) {\n effects.consume(code2);\n return prefix;\n }\n effects.exit(type);\n return ok(code2);\n }\n}\nconst content$1 = {\n tokenize: initializeContent\n};\nfunction initializeContent(effects) {\n const contentStart = effects.attempt(\n this.parser.constructs.contentInitial,\n afterContentStartConstruct,\n paragraphInitial\n );\n let previous2;\n return contentStart;\n function afterContentStartConstruct(code2) {\n if (code2 === null) {\n effects.consume(code2);\n return;\n }\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, contentStart, \"linePrefix\");\n }\n function paragraphInitial(code2) {\n effects.enter(\"paragraph\");\n return lineStart(code2);\n }\n function lineStart(code2) {\n const token = effects.enter(\"chunkText\", {\n contentType: \"text\",\n previous: previous2\n });\n if (previous2) {\n previous2.next = token;\n }\n previous2 = token;\n return data(code2);\n }\n function data(code2) {\n if (code2 === null) {\n effects.exit(\"chunkText\");\n effects.exit(\"paragraph\");\n effects.consume(code2);\n return;\n }\n if (markdownLineEnding(code2)) {\n effects.consume(code2);\n effects.exit(\"chunkText\");\n return lineStart;\n }\n effects.consume(code2);\n return data;\n }\n}\nconst document$2 = {\n tokenize: initializeDocument\n};\nconst containerConstruct = {\n tokenize: tokenizeContainer\n};\nfunction initializeDocument(effects) {\n const self2 = this;\n const stack = [];\n let continued = 0;\n let childFlow;\n let childToken;\n let lineStartOffset;\n return start;\n function start(code2) {\n if (continued < stack.length) {\n const item = stack[continued];\n self2.containerState = item[1];\n return effects.attempt(\n item[0].continuation,\n documentContinue,\n checkNewContainers\n )(code2);\n }\n return checkNewContainers(code2);\n }\n function documentContinue(code2) {\n continued++;\n if (self2.containerState._closeFlow) {\n self2.containerState._closeFlow = void 0;\n if (childFlow) {\n closeFlow();\n }\n const indexBeforeExits = self2.events.length;\n let indexBeforeFlow = indexBeforeExits;\n let point;\n while (indexBeforeFlow--) {\n if (self2.events[indexBeforeFlow][0] === \"exit\" && self2.events[indexBeforeFlow][1].type === \"chunkFlow\") {\n point = self2.events[indexBeforeFlow][1].end;\n break;\n }\n }\n exitContainers(continued);\n let index = indexBeforeExits;\n while (index < self2.events.length) {\n self2.events[index][1].end = Object.assign({}, point);\n index++;\n }\n splice(\n self2.events,\n indexBeforeFlow + 1,\n 0,\n self2.events.slice(indexBeforeExits)\n );\n self2.events.length = index;\n return checkNewContainers(code2);\n }\n return start(code2);\n }\n function checkNewContainers(code2) {\n if (continued === stack.length) {\n if (!childFlow) {\n return documentContinued(code2);\n }\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n return flowStart(code2);\n }\n self2.interrupt = Boolean(\n childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack\n );\n }\n self2.containerState = {};\n return effects.check(\n containerConstruct,\n thereIsANewContainer,\n thereIsNoNewContainer\n )(code2);\n }\n function thereIsANewContainer(code2) {\n if (childFlow)\n closeFlow();\n exitContainers(continued);\n return documentContinued(code2);\n }\n function thereIsNoNewContainer(code2) {\n self2.parser.lazy[self2.now().line] = continued !== stack.length;\n lineStartOffset = self2.now().offset;\n return flowStart(code2);\n }\n function documentContinued(code2) {\n self2.containerState = {};\n return effects.attempt(\n containerConstruct,\n containerContinue,\n flowStart\n )(code2);\n }\n function containerContinue(code2) {\n continued++;\n stack.push([self2.currentConstruct, self2.containerState]);\n return documentContinued(code2);\n }\n function flowStart(code2) {\n if (code2 === null) {\n if (childFlow)\n closeFlow();\n exitContainers(0);\n effects.consume(code2);\n return;\n }\n childFlow = childFlow || self2.parser.flow(self2.now());\n effects.enter(\"chunkFlow\", {\n contentType: \"flow\",\n previous: childToken,\n _tokenizer: childFlow\n });\n return flowContinue(code2);\n }\n function flowContinue(code2) {\n if (code2 === null) {\n writeToChild(effects.exit(\"chunkFlow\"), true);\n exitContainers(0);\n effects.consume(code2);\n return;\n }\n if (markdownLineEnding(code2)) {\n effects.consume(code2);\n writeToChild(effects.exit(\"chunkFlow\"));\n continued = 0;\n self2.interrupt = void 0;\n return start;\n }\n effects.consume(code2);\n return flowContinue;\n }\n function writeToChild(token, eof) {\n const stream = self2.sliceStream(token);\n if (eof)\n stream.push(null);\n token.previous = childToken;\n if (childToken)\n childToken.next = token;\n childToken = token;\n childFlow.defineSkip(token.start);\n childFlow.write(stream);\n if (self2.parser.lazy[token.start.line]) {\n let index = childFlow.events.length;\n while (index--) {\n if (childFlow.events[index][1].start.offset < lineStartOffset && (!childFlow.events[index][1].end || childFlow.events[index][1].end.offset > lineStartOffset)) {\n return;\n }\n }\n const indexBeforeExits = self2.events.length;\n let indexBeforeFlow = indexBeforeExits;\n let seen;\n let point;\n while (indexBeforeFlow--) {\n if (self2.events[indexBeforeFlow][0] === \"exit\" && self2.events[indexBeforeFlow][1].type === \"chunkFlow\") {\n if (seen) {\n point = self2.events[indexBeforeFlow][1].end;\n break;\n }\n seen = true;\n }\n }\n exitContainers(continued);\n index = indexBeforeExits;\n while (index < self2.events.length) {\n self2.events[index][1].end = Object.assign({}, point);\n index++;\n }\n splice(\n self2.events,\n indexBeforeFlow + 1,\n 0,\n self2.events.slice(indexBeforeExits)\n );\n self2.events.length = index;\n }\n }\n function exitContainers(size2) {\n let index = stack.length;\n while (index-- > size2) {\n const entry = stack[index];\n self2.containerState = entry[1];\n entry[0].exit.call(self2, effects);\n }\n stack.length = size2;\n }\n function closeFlow() {\n childFlow.write([null]);\n childToken = void 0;\n childFlow = void 0;\n self2.containerState._closeFlow = void 0;\n }\n}\nfunction tokenizeContainer(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(this.parser.constructs.document, ok, nok),\n \"linePrefix\",\n this.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4\n );\n}\nfunction classifyCharacter(code2) {\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return 1;\n }\n if (unicodePunctuation(code2)) {\n return 2;\n }\n}\nfunction resolveAll(constructs2, events, context) {\n const called = [];\n let index = -1;\n while (++index < constructs2.length) {\n const resolve2 = constructs2[index].resolveAll;\n if (resolve2 && !called.includes(resolve2)) {\n events = resolve2(events, context);\n called.push(resolve2);\n }\n }\n return events;\n}\nconst attention = {\n name: \"attention\",\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n};\nfunction resolveAllAttention(events, context) {\n let index = -1;\n let open;\n let group;\n let text2;\n let openingSequence;\n let closingSequence;\n let use;\n let nextEvents;\n let offset;\n while (++index < events.length) {\n if (events[index][0] === \"enter\" && events[index][1].type === \"attentionSequence\" && events[index][1]._close) {\n open = index;\n while (open--) {\n if (events[open][0] === \"exit\" && events[open][1].type === \"attentionSequence\" && events[open][1]._open && context.sliceSerialize(events[open][1]).charCodeAt(0) === context.sliceSerialize(events[index][1]).charCodeAt(0)) {\n if ((events[open][1]._close || events[index][1]._open) && (events[index][1].end.offset - events[index][1].start.offset) % 3 && !((events[open][1].end.offset - events[open][1].start.offset + events[index][1].end.offset - events[index][1].start.offset) % 3)) {\n continue;\n }\n use = events[open][1].end.offset - events[open][1].start.offset > 1 && events[index][1].end.offset - events[index][1].start.offset > 1 ? 2 : 1;\n const start = Object.assign({}, events[open][1].end);\n const end = Object.assign({}, events[index][1].start);\n movePoint(start, -use);\n movePoint(end, use);\n openingSequence = {\n type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start,\n end: Object.assign({}, events[open][1].end)\n };\n closingSequence = {\n type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start: Object.assign({}, events[index][1].start),\n end\n };\n text2 = {\n type: use > 1 ? \"strongText\" : \"emphasisText\",\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n };\n group = {\n type: use > 1 ? \"strong\" : \"emphasis\",\n start: Object.assign({}, openingSequence.start),\n end: Object.assign({}, closingSequence.end)\n };\n events[open][1].end = Object.assign({}, openingSequence.start);\n events[index][1].start = Object.assign({}, closingSequence.end);\n nextEvents = [];\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = push(nextEvents, [\n [\"enter\", events[open][1], context],\n [\"exit\", events[open][1], context]\n ]);\n }\n nextEvents = push(nextEvents, [\n [\"enter\", group, context],\n [\"enter\", openingSequence, context],\n [\"exit\", openingSequence, context],\n [\"enter\", text2, context]\n ]);\n nextEvents = push(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n );\n nextEvents = push(nextEvents, [\n [\"exit\", text2, context],\n [\"enter\", closingSequence, context],\n [\"exit\", closingSequence, context],\n [\"exit\", group, context]\n ]);\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2;\n nextEvents = push(nextEvents, [\n [\"enter\", events[index][1], context],\n [\"exit\", events[index][1], context]\n ]);\n } else {\n offset = 0;\n }\n splice(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - offset - 2;\n break;\n }\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n if (events[index][1].type === \"attentionSequence\") {\n events[index][1].type = \"data\";\n }\n }\n return events;\n}\nfunction tokenizeAttention(effects, ok) {\n const attentionMarkers2 = this.parser.constructs.attentionMarkers.null;\n const previous2 = this.previous;\n const before = classifyCharacter(previous2);\n let marker;\n return start;\n function start(code2) {\n marker = code2;\n effects.enter(\"attentionSequence\");\n return inside(code2);\n }\n function inside(code2) {\n if (code2 === marker) {\n effects.consume(code2);\n return inside;\n }\n const token = effects.exit(\"attentionSequence\");\n const after = classifyCharacter(code2);\n const open = !after || after === 2 && before || attentionMarkers2.includes(code2);\n const close = !before || before === 2 && after || attentionMarkers2.includes(previous2);\n token._open = Boolean(marker === 42 ? open : open && (before || !close));\n token._close = Boolean(marker === 42 ? close : close && (after || !open));\n return ok(code2);\n }\n}\nfunction movePoint(point, offset) {\n point.column += offset;\n point.offset += offset;\n point._bufferIndex += offset;\n}\nconst autolink = {\n name: \"autolink\",\n tokenize: tokenizeAutolink\n};\nfunction tokenizeAutolink(effects, ok, nok) {\n let size2 = 0;\n return start;\n function start(code2) {\n effects.enter(\"autolink\");\n effects.enter(\"autolinkMarker\");\n effects.consume(code2);\n effects.exit(\"autolinkMarker\");\n effects.enter(\"autolinkProtocol\");\n return open;\n }\n function open(code2) {\n if (asciiAlpha(code2)) {\n effects.consume(code2);\n return schemeOrEmailAtext;\n }\n return emailAtext(code2);\n }\n function schemeOrEmailAtext(code2) {\n if (code2 === 43 || code2 === 45 || code2 === 46 || asciiAlphanumeric(code2)) {\n size2 = 1;\n return schemeInsideOrEmailAtext(code2);\n }\n return emailAtext(code2);\n }\n function schemeInsideOrEmailAtext(code2) {\n if (code2 === 58) {\n effects.consume(code2);\n size2 = 0;\n return urlInside;\n }\n if ((code2 === 43 || code2 === 45 || code2 === 46 || asciiAlphanumeric(code2)) && size2++ < 32) {\n effects.consume(code2);\n return schemeInsideOrEmailAtext;\n }\n size2 = 0;\n return emailAtext(code2);\n }\n function urlInside(code2) {\n if (code2 === 62) {\n effects.exit(\"autolinkProtocol\");\n effects.enter(\"autolinkMarker\");\n effects.consume(code2);\n effects.exit(\"autolinkMarker\");\n effects.exit(\"autolink\");\n return ok;\n }\n if (code2 === null || code2 === 32 || code2 === 60 || asciiControl(code2)) {\n return nok(code2);\n }\n effects.consume(code2);\n return urlInside;\n }\n function emailAtext(code2) {\n if (code2 === 64) {\n effects.consume(code2);\n return emailAtSignOrDot;\n }\n if (asciiAtext(code2)) {\n effects.consume(code2);\n return emailAtext;\n }\n return nok(code2);\n }\n function emailAtSignOrDot(code2) {\n return asciiAlphanumeric(code2) ? emailLabel(code2) : nok(code2);\n }\n function emailLabel(code2) {\n if (code2 === 46) {\n effects.consume(code2);\n size2 = 0;\n return emailAtSignOrDot;\n }\n if (code2 === 62) {\n effects.exit(\"autolinkProtocol\").type = \"autolinkEmail\";\n effects.enter(\"autolinkMarker\");\n effects.consume(code2);\n effects.exit(\"autolinkMarker\");\n effects.exit(\"autolink\");\n return ok;\n }\n return emailValue(code2);\n }\n function emailValue(code2) {\n if ((code2 === 45 || asciiAlphanumeric(code2)) && size2++ < 63) {\n const next = code2 === 45 ? emailValue : emailLabel;\n effects.consume(code2);\n return next;\n }\n return nok(code2);\n }\n}\nconst blankLine = {\n tokenize: tokenizeBlankLine,\n partial: true\n};\nfunction tokenizeBlankLine(effects, ok, nok) {\n return start;\n function start(code2) {\n return markdownSpace(code2) ? factorySpace(effects, after, \"linePrefix\")(code2) : after(code2);\n }\n function after(code2) {\n return code2 === null || markdownLineEnding(code2) ? ok(code2) : nok(code2);\n }\n}\nconst blockQuote = {\n name: \"blockQuote\",\n tokenize: tokenizeBlockQuoteStart,\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit\n};\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n const self2 = this;\n return start;\n function start(code2) {\n if (code2 === 62) {\n const state = self2.containerState;\n if (!state.open) {\n effects.enter(\"blockQuote\", {\n _container: true\n });\n state.open = true;\n }\n effects.enter(\"blockQuotePrefix\");\n effects.enter(\"blockQuoteMarker\");\n effects.consume(code2);\n effects.exit(\"blockQuoteMarker\");\n return after;\n }\n return nok(code2);\n }\n function after(code2) {\n if (markdownSpace(code2)) {\n effects.enter(\"blockQuotePrefixWhitespace\");\n effects.consume(code2);\n effects.exit(\"blockQuotePrefixWhitespace\");\n effects.exit(\"blockQuotePrefix\");\n return ok;\n }\n effects.exit(\"blockQuotePrefix\");\n return ok(code2);\n }\n}\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n const self2 = this;\n return contStart;\n function contStart(code2) {\n if (markdownSpace(code2)) {\n return factorySpace(\n effects,\n contBefore,\n \"linePrefix\",\n self2.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4\n )(code2);\n }\n return contBefore(code2);\n }\n function contBefore(code2) {\n return effects.attempt(blockQuote, ok, nok)(code2);\n }\n}\nfunction exit(effects) {\n effects.exit(\"blockQuote\");\n}\nconst characterEscape = {\n name: \"characterEscape\",\n tokenize: tokenizeCharacterEscape\n};\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start;\n function start(code2) {\n effects.enter(\"characterEscape\");\n effects.enter(\"escapeMarker\");\n effects.consume(code2);\n effects.exit(\"escapeMarker\");\n return inside;\n }\n function inside(code2) {\n if (asciiPunctuation(code2)) {\n effects.enter(\"characterEscapeValue\");\n effects.consume(code2);\n effects.exit(\"characterEscapeValue\");\n effects.exit(\"characterEscape\");\n return ok;\n }\n return nok(code2);\n }\n}\nconst characterReference = {\n name: \"characterReference\",\n tokenize: tokenizeCharacterReference\n};\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self2 = this;\n let size2 = 0;\n let max;\n let test;\n return start;\n function start(code2) {\n effects.enter(\"characterReference\");\n effects.enter(\"characterReferenceMarker\");\n effects.consume(code2);\n effects.exit(\"characterReferenceMarker\");\n return open;\n }\n function open(code2) {\n if (code2 === 35) {\n effects.enter(\"characterReferenceMarkerNumeric\");\n effects.consume(code2);\n effects.exit(\"characterReferenceMarkerNumeric\");\n return numeric;\n }\n effects.enter(\"characterReferenceValue\");\n max = 31;\n test = asciiAlphanumeric;\n return value(code2);\n }\n function numeric(code2) {\n if (code2 === 88 || code2 === 120) {\n effects.enter(\"characterReferenceMarkerHexadecimal\");\n effects.consume(code2);\n effects.exit(\"characterReferenceMarkerHexadecimal\");\n effects.enter(\"characterReferenceValue\");\n max = 6;\n test = asciiHexDigit;\n return value;\n }\n effects.enter(\"characterReferenceValue\");\n max = 7;\n test = asciiDigit;\n return value(code2);\n }\n function value(code2) {\n if (code2 === 59 && size2) {\n const token = effects.exit(\"characterReferenceValue\");\n if (test === asciiAlphanumeric && !decodeNamedCharacterReference(self2.sliceSerialize(token))) {\n return nok(code2);\n }\n effects.enter(\"characterReferenceMarker\");\n effects.consume(code2);\n effects.exit(\"characterReferenceMarker\");\n effects.exit(\"characterReference\");\n return ok;\n }\n if (test(code2) && size2++ < max) {\n effects.consume(code2);\n return value;\n }\n return nok(code2);\n }\n}\nconst nonLazyContinuation = {\n tokenize: tokenizeNonLazyContinuation,\n partial: true\n};\nconst codeFenced = {\n name: \"codeFenced\",\n tokenize: tokenizeCodeFenced,\n concrete: true\n};\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self2 = this;\n const closeStart = {\n tokenize: tokenizeCloseStart,\n partial: true\n };\n let initialPrefix = 0;\n let sizeOpen = 0;\n let marker;\n return start;\n function start(code2) {\n return beforeSequenceOpen(code2);\n }\n function beforeSequenceOpen(code2) {\n const tail = self2.events[self2.events.length - 1];\n initialPrefix = tail && tail[1].type === \"linePrefix\" ? tail[2].sliceSerialize(tail[1], true).length : 0;\n marker = code2;\n effects.enter(\"codeFenced\");\n effects.enter(\"codeFencedFence\");\n effects.enter(\"codeFencedFenceSequence\");\n return sequenceOpen(code2);\n }\n function sequenceOpen(code2) {\n if (code2 === marker) {\n sizeOpen++;\n effects.consume(code2);\n return sequenceOpen;\n }\n if (sizeOpen < 3) {\n return nok(code2);\n }\n effects.exit(\"codeFencedFenceSequence\");\n return markdownSpace(code2) ? factorySpace(effects, infoBefore, \"whitespace\")(code2) : infoBefore(code2);\n }\n function infoBefore(code2) {\n if (code2 === null || markdownLineEnding(code2)) {\n effects.exit(\"codeFencedFence\");\n return self2.interrupt ? ok(code2) : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code2);\n }\n effects.enter(\"codeFencedFenceInfo\");\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return info(code2);\n }\n function info(code2) {\n if (code2 === null || markdownLineEnding(code2)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceInfo\");\n return infoBefore(code2);\n }\n if (markdownSpace(code2)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceInfo\");\n return factorySpace(effects, metaBefore, \"whitespace\")(code2);\n }\n if (code2 === 96 && code2 === marker) {\n return nok(code2);\n }\n effects.consume(code2);\n return info;\n }\n function metaBefore(code2) {\n if (code2 === null || markdownLineEnding(code2)) {\n return infoBefore(code2);\n }\n effects.enter(\"codeFencedFenceMeta\");\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return meta(code2);\n }\n function meta(code2) {\n if (code2 === null || markdownLineEnding(code2)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceMeta\");\n return infoBefore(code2);\n }\n if (code2 === 96 && code2 === marker) {\n return nok(code2);\n }\n effects.consume(code2);\n return meta;\n }\n function atNonLazyBreak(code2) {\n return effects.attempt(closeStart, after, contentBefore)(code2);\n }\n function contentBefore(code2) {\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return contentStart;\n }\n function contentStart(code2) {\n return initialPrefix > 0 && markdownSpace(code2) ? factorySpace(\n effects,\n beforeContentChunk,\n \"linePrefix\",\n initialPrefix + 1\n )(code2) : beforeContentChunk(code2);\n }\n function beforeContentChunk(code2) {\n if (code2 === null || markdownLineEnding(code2)) {\n return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code2);\n }\n effects.enter(\"codeFlowValue\");\n return contentChunk(code2);\n }\n function contentChunk(code2) {\n if (code2 === null || markdownLineEnding(code2)) {\n effects.exit(\"codeFlowValue\");\n return beforeContentChunk(code2);\n }\n effects.consume(code2);\n return contentChunk;\n }\n function after(code2) {\n effects.exit(\"codeFenced\");\n return ok(code2);\n }\n function tokenizeCloseStart(effects2, ok2, nok2) {\n let size2 = 0;\n return startBefore;\n function startBefore(code2) {\n effects2.enter(\"lineEnding\");\n effects2.consume(code2);\n effects2.exit(\"lineEnding\");\n return start2;\n }\n function start2(code2) {\n effects2.enter(\"codeFencedFence\");\n return markdownSpace(code2) ? factorySpace(\n effects2,\n beforeSequenceClose,\n \"linePrefix\",\n self2.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4\n )(code2) : beforeSequenceClose(code2);\n }\n function beforeSequenceClose(code2) {\n if (code2 === marker) {\n effects2.enter(\"codeFencedFenceSequence\");\n return sequenceClose(code2);\n }\n return nok2(code2);\n }\n function sequenceClose(code2) {\n if (code2 === marker) {\n size2++;\n effects2.consume(code2);\n return sequenceClose;\n }\n if (size2 >= sizeOpen) {\n effects2.exit(\"codeFencedFenceSequence\");\n return markdownSpace(code2) ? factorySpace(effects2, sequenceCloseAfter, \"whitespace\")(code2) : sequenceCloseAfter(code2);\n }\n return nok2(code2);\n }\n function sequenceCloseAfter(code2) {\n if (code2 === null || markdownLineEnding(code2)) {\n effects2.exit(\"codeFencedFence\");\n return ok2(code2);\n }\n return nok2(code2);\n }\n }\n}\nfunction tokenizeNonLazyContinuation(effects, ok, nok) {\n const self2 = this;\n return start;\n function start(code2) {\n if (code2 === null) {\n return nok(code2);\n }\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return lineStart;\n }\n function lineStart(code2) {\n return self2.parser.lazy[self2.now().line] ? nok(code2) : ok(code2);\n }\n}\nconst codeIndented = {\n name: \"codeIndented\",\n tokenize: tokenizeCodeIndented\n};\nconst furtherStart = {\n tokenize: tokenizeFurtherStart,\n partial: true\n};\nfunction tokenizeCodeIndented(effects, ok, nok) {\n const self2 = this;\n return start;\n function start(code2) {\n effects.enter(\"codeIndented\");\n return factorySpace(effects, afterPrefix, \"linePrefix\", 4 + 1)(code2);\n }\n function afterPrefix(code2) {\n const tail = self2.events[self2.events.length - 1];\n return tail && tail[1].type === \"linePrefix\" && tail[2].sliceSerialize(tail[1], true).length >= 4 ? atBreak(code2) : nok(code2);\n }\n function atBreak(code2) {\n if (code2 === null) {\n return after(code2);\n }\n if (markdownLineEnding(code2)) {\n return effects.attempt(furtherStart, atBreak, after)(code2);\n }\n effects.enter(\"codeFlowValue\");\n return inside(code2);\n }\n function inside(code2) {\n if (code2 === null || markdownLineEnding(code2)) {\n effects.exit(\"codeFlowValue\");\n return atBreak(code2);\n }\n effects.consume(code2);\n return inside;\n }\n function after(code2) {\n effects.exit(\"codeIndented\");\n return ok(code2);\n }\n}\nfunction tokenizeFurtherStart(effects, ok, nok) {\n const self2 = this;\n return furtherStart2;\n function furtherStart2(code2) {\n if (self2.parser.lazy[self2.now().line]) {\n return nok(code2);\n }\n if (markdownLineEnding(code2)) {\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return furtherStart2;\n }\n return factorySpace(effects, afterPrefix, \"linePrefix\", 4 + 1)(code2);\n }\n function afterPrefix(code2) {\n const tail = self2.events[self2.events.length - 1];\n return tail && tail[1].type === \"linePrefix\" && tail[2].sliceSerialize(tail[1], true).length >= 4 ? ok(code2) : markdownLineEnding(code2) ? furtherStart2(code2) : nok(code2);\n }\n}\nconst codeText = {\n name: \"codeText\",\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous\n};\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4;\n let headEnterIndex = 3;\n let index;\n let enter;\n if ((events[headEnterIndex][1].type === \"lineEnding\" || events[headEnterIndex][1].type === \"space\") && (events[tailExitIndex][1].type === \"lineEnding\" || events[tailExitIndex][1].type === \"space\")) {\n index = headEnterIndex;\n while (++index < tailExitIndex) {\n if (events[index][1].type === \"codeTextData\") {\n events[headEnterIndex][1].type = \"codeTextPadding\";\n events[tailExitIndex][1].type = \"codeTextPadding\";\n headEnterIndex += 2;\n tailExitIndex -= 2;\n break;\n }\n }\n }\n index = headEnterIndex - 1;\n tailExitIndex++;\n while (++index <= tailExitIndex) {\n if (enter === void 0) {\n if (index !== tailExitIndex && events[index][1].type !== \"lineEnding\") {\n enter = index;\n }\n } else if (index === tailExitIndex || events[index][1].type === \"lineEnding\") {\n events[enter][1].type = \"codeTextData\";\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end;\n events.splice(enter + 2, index - enter - 2);\n tailExitIndex -= index - enter - 2;\n index = enter + 2;\n }\n enter = void 0;\n }\n }\n return events;\n}\nfunction previous(code2) {\n return code2 !== 96 || this.events[this.events.length - 1][1].type === \"characterEscape\";\n}\nfunction tokenizeCodeText(effects, ok, nok) {\n let sizeOpen = 0;\n let size2;\n let token;\n return start;\n function start(code2) {\n effects.enter(\"codeText\");\n effects.enter(\"codeTextSequence\");\n return sequenceOpen(code2);\n }\n function sequenceOpen(code2) {\n if (code2 === 96) {\n effects.consume(code2);\n sizeOpen++;\n return sequenceOpen;\n }\n effects.exit(\"codeTextSequence\");\n return between(code2);\n }\n function between(code2) {\n if (code2 === null) {\n return nok(code2);\n }\n if (code2 === 32) {\n effects.enter(\"space\");\n effects.consume(code2);\n effects.exit(\"space\");\n return between;\n }\n if (code2 === 96) {\n token = effects.enter(\"codeTextSequence\");\n size2 = 0;\n return sequenceClose(code2);\n }\n if (markdownLineEnding(code2)) {\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return between;\n }\n effects.enter(\"codeTextData\");\n return data(code2);\n }\n function data(code2) {\n if (code2 === null || code2 === 32 || code2 === 96 || markdownLineEnding(code2)) {\n effects.exit(\"codeTextData\");\n return between(code2);\n }\n effects.consume(code2);\n return data;\n }\n function sequenceClose(code2) {\n if (code2 === 96) {\n effects.consume(code2);\n size2++;\n return sequenceClose;\n }\n if (size2 === sizeOpen) {\n effects.exit(\"codeTextSequence\");\n effects.exit(\"codeText\");\n return ok(code2);\n }\n token.type = \"codeTextData\";\n return data(code2);\n }\n}\nfunction subtokenize(events) {\n const jumps = {};\n let index = -1;\n let event;\n let lineIndex;\n let otherIndex;\n let otherEvent;\n let parameters;\n let subevents;\n let more;\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index];\n }\n event = events[index];\n if (index && event[1].type === \"chunkFlow\" && events[index - 1][1].type === \"listItemPrefix\") {\n subevents = event[1]._tokenizer.events;\n otherIndex = 0;\n if (otherIndex < subevents.length && subevents[otherIndex][1].type === \"lineEndingBlank\") {\n otherIndex += 2;\n }\n if (otherIndex < subevents.length && subevents[otherIndex][1].type === \"content\") {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === \"content\") {\n break;\n }\n if (subevents[otherIndex][1].type === \"chunkText\") {\n subevents[otherIndex][1]._isInFirstContentOfListItem = true;\n otherIndex++;\n }\n }\n }\n }\n if (event[0] === \"enter\") {\n if (event[1].contentType) {\n Object.assign(jumps, subcontent(events, index));\n index = jumps[index];\n more = true;\n }\n } else if (event[1]._container) {\n otherIndex = index;\n lineIndex = void 0;\n while (otherIndex--) {\n otherEvent = events[otherIndex];\n if (otherEvent[1].type === \"lineEnding\" || otherEvent[1].type === \"lineEndingBlank\") {\n if (otherEvent[0] === \"enter\") {\n if (lineIndex) {\n events[lineIndex][1].type = \"lineEndingBlank\";\n }\n otherEvent[1].type = \"lineEnding\";\n lineIndex = otherIndex;\n }\n } else {\n break;\n }\n }\n if (lineIndex) {\n event[1].end = Object.assign({}, events[lineIndex][1].start);\n parameters = events.slice(lineIndex, index);\n parameters.unshift(event);\n splice(events, lineIndex, index - lineIndex + 1, parameters);\n }\n }\n }\n return !more;\n}\nfunction subcontent(events, eventIndex) {\n const token = events[eventIndex][1];\n const context = events[eventIndex][2];\n let startPosition = eventIndex - 1;\n const startPositions = [];\n const tokenizer = token._tokenizer || context.parser[token.contentType](token.start);\n const childEvents = tokenizer.events;\n const jumps = [];\n const gaps = {};\n let stream;\n let previous2;\n let index = -1;\n let current = token;\n let adjust = 0;\n let start = 0;\n const breaks = [start];\n while (current) {\n while (events[++startPosition][1] !== current) {\n }\n startPositions.push(startPosition);\n if (!current._tokenizer) {\n stream = context.sliceStream(current);\n if (!current.next) {\n stream.push(null);\n }\n if (previous2) {\n tokenizer.defineSkip(current.start);\n }\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true;\n }\n tokenizer.write(stream);\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = void 0;\n }\n }\n previous2 = current;\n current = current.next;\n }\n current = token;\n while (++index < childEvents.length) {\n if (childEvents[index][0] === \"exit\" && childEvents[index - 1][0] === \"enter\" && childEvents[index][1].type === childEvents[index - 1][1].type && childEvents[index][1].start.line !== childEvents[index][1].end.line) {\n start = index + 1;\n breaks.push(start);\n current._tokenizer = void 0;\n current.previous = void 0;\n current = current.next;\n }\n }\n tokenizer.events = [];\n if (current) {\n current._tokenizer = void 0;\n current.previous = void 0;\n } else {\n breaks.pop();\n }\n index = breaks.length;\n while (index--) {\n const slice = childEvents.slice(breaks[index], breaks[index + 1]);\n const start2 = startPositions.pop();\n jumps.unshift([start2, start2 + slice.length - 1]);\n splice(events, start2, 2, slice);\n }\n index = -1;\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1];\n adjust += jumps[index][1] - jumps[index][0] - 1;\n }\n return gaps;\n}\nconst content = {\n tokenize: tokenizeContent,\n resolve: resolveContent\n};\nconst continuationConstruct = {\n tokenize: tokenizeContinuation,\n partial: true\n};\nfunction resolveContent(events) {\n subtokenize(events);\n return events;\n}\nfunction tokenizeContent(effects, ok) {\n let previous2;\n return chunkStart;\n function chunkStart(code2) {\n effects.enter(\"content\");\n previous2 = effects.enter(\"chunkContent\", {\n contentType: \"content\"\n });\n return chunkInside(code2);\n }\n function chunkInside(code2) {\n if (code2 === null) {\n return contentEnd(code2);\n }\n if (markdownLineEnding(code2)) {\n return effects.check(\n continuationConstruct,\n contentContinue,\n contentEnd\n )(code2);\n }\n effects.consume(code2);\n return chunkInside;\n }\n function contentEnd(code2) {\n effects.exit(\"chunkContent\");\n effects.exit(\"content\");\n return ok(code2);\n }\n function contentContinue(code2) {\n effects.consume(code2);\n effects.exit(\"chunkContent\");\n previous2.next = effects.enter(\"chunkContent\", {\n contentType: \"content\",\n previous: previous2\n });\n previous2 = previous2.next;\n return chunkInside;\n }\n}\nfunction tokenizeContinuation(effects, ok, nok) {\n const self2 = this;\n return startLookahead;\n function startLookahead(code2) {\n effects.exit(\"chunkContent\");\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, prefixed, \"linePrefix\");\n }\n function prefixed(code2) {\n if (code2 === null || markdownLineEnding(code2)) {\n return nok(code2);\n }\n const tail = self2.events[self2.events.length - 1];\n if (!self2.parser.constructs.disable.null.includes(\"codeIndented\") && tail && tail[1].type === \"linePrefix\" && tail[2].sliceSerialize(tail[1], true).length >= 4) {\n return ok(code2);\n }\n return effects.interrupt(self2.parser.constructs.flow, nok, ok)(code2);\n }\n}\nfunction factoryDestination(effects, ok, nok, type, literalType, literalMarkerType, rawType, stringType, max) {\n const limit = max || Number.POSITIVE_INFINITY;\n let balance = 0;\n return start;\n function start(code2) {\n if (code2 === 60) {\n effects.enter(type);\n effects.enter(literalType);\n effects.enter(literalMarkerType);\n effects.consume(code2);\n effects.exit(literalMarkerType);\n return enclosedBefore;\n }\n if (code2 === null || code2 === 32 || code2 === 41 || asciiControl(code2)) {\n return nok(code2);\n }\n effects.enter(type);\n effects.enter(rawType);\n effects.enter(stringType);\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return raw(code2);\n }\n function enclosedBefore(code2) {\n if (code2 === 62) {\n effects.enter(literalMarkerType);\n effects.consume(code2);\n effects.exit(literalMarkerType);\n effects.exit(literalType);\n effects.exit(type);\n return ok;\n }\n effects.enter(stringType);\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return enclosed(code2);\n }\n function enclosed(code2) {\n if (code2 === 62) {\n effects.exit(\"chunkString\");\n effects.exit(stringType);\n return enclosedBefore(code2);\n }\n if (code2 === null || code2 === 60 || markdownLineEnding(code2)) {\n return nok(code2);\n }\n effects.consume(code2);\n return code2 === 92 ? enclosedEscape : enclosed;\n }\n function enclosedEscape(code2) {\n if (code2 === 60 || code2 === 62 || code2 === 92) {\n effects.consume(code2);\n return enclosed;\n }\n return enclosed(code2);\n }\n function raw(code2) {\n if (!balance && (code2 === null || code2 === 41 || markdownLineEndingOrSpace(code2))) {\n effects.exit(\"chunkString\");\n effects.exit(stringType);\n effects.exit(rawType);\n effects.exit(type);\n return ok(code2);\n }\n if (balance < limit && code2 === 40) {\n effects.consume(code2);\n balance++;\n return raw;\n }\n if (code2 === 41) {\n effects.consume(code2);\n balance--;\n return raw;\n }\n if (code2 === null || code2 === 32 || code2 === 40 || asciiControl(code2)) {\n return nok(code2);\n }\n effects.consume(code2);\n return code2 === 92 ? rawEscape : raw;\n }\n function rawEscape(code2) {\n if (code2 === 40 || code2 === 41 || code2 === 92) {\n effects.consume(code2);\n return raw;\n }\n return raw(code2);\n }\n}\nfunction factoryLabel(effects, ok, nok, type, markerType, stringType) {\n const self2 = this;\n let size2 = 0;\n let seen;\n return start;\n function start(code2) {\n effects.enter(type);\n effects.enter(markerType);\n effects.consume(code2);\n effects.exit(markerType);\n effects.enter(stringType);\n return atBreak;\n }\n function atBreak(code2) {\n if (size2 > 999 || code2 === null || code2 === 91 || code2 === 93 && !seen || code2 === 94 && !size2 && \"_hiddenFootnoteSupport\" in self2.parser.constructs) {\n return nok(code2);\n }\n if (code2 === 93) {\n effects.exit(stringType);\n effects.enter(markerType);\n effects.consume(code2);\n effects.exit(markerType);\n effects.exit(type);\n return ok;\n }\n if (markdownLineEnding(code2)) {\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return atBreak;\n }\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return labelInside(code2);\n }\n function labelInside(code2) {\n if (code2 === null || code2 === 91 || code2 === 93 || markdownLineEnding(code2) || size2++ > 999) {\n effects.exit(\"chunkString\");\n return atBreak(code2);\n }\n effects.consume(code2);\n if (!seen)\n seen = !markdownSpace(code2);\n return code2 === 92 ? labelEscape : labelInside;\n }\n function labelEscape(code2) {\n if (code2 === 91 || code2 === 92 || code2 === 93) {\n effects.consume(code2);\n size2++;\n return labelInside;\n }\n return labelInside(code2);\n }\n}\nfunction factoryTitle(effects, ok, nok, type, markerType, stringType) {\n let marker;\n return start;\n function start(code2) {\n if (code2 === 34 || code2 === 39 || code2 === 40) {\n effects.enter(type);\n effects.enter(markerType);\n effects.consume(code2);\n effects.exit(markerType);\n marker = code2 === 40 ? 41 : code2;\n return begin;\n }\n return nok(code2);\n }\n function begin(code2) {\n if (code2 === marker) {\n effects.enter(markerType);\n effects.consume(code2);\n effects.exit(markerType);\n effects.exit(type);\n return ok;\n }\n effects.enter(stringType);\n return atBreak(code2);\n }\n function atBreak(code2) {\n if (code2 === marker) {\n effects.exit(stringType);\n return begin(marker);\n }\n if (code2 === null) {\n return nok(code2);\n }\n if (markdownLineEnding(code2)) {\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, atBreak, \"linePrefix\");\n }\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return inside(code2);\n }\n function inside(code2) {\n if (code2 === marker || code2 === null || markdownLineEnding(code2)) {\n effects.exit(\"chunkString\");\n return atBreak(code2);\n }\n effects.consume(code2);\n return code2 === 92 ? escape : inside;\n }\n function escape(code2) {\n if (code2 === marker || code2 === 92) {\n effects.consume(code2);\n return inside;\n }\n return inside(code2);\n }\n}\nfunction factoryWhitespace(effects, ok) {\n let seen;\n return start;\n function start(code2) {\n if (markdownLineEnding(code2)) {\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n seen = true;\n return start;\n }\n if (markdownSpace(code2)) {\n return factorySpace(\n effects,\n start,\n seen ? \"linePrefix\" : \"lineSuffix\"\n )(code2);\n }\n return ok(code2);\n }\n}\nconst definition = {\n name: \"definition\",\n tokenize: tokenizeDefinition\n};\nconst titleBefore = {\n tokenize: tokenizeTitleBefore,\n partial: true\n};\nfunction tokenizeDefinition(effects, ok, nok) {\n const self2 = this;\n let identifier;\n return start;\n function start(code2) {\n effects.enter(\"definition\");\n return before(code2);\n }\n function before(code2) {\n return factoryLabel.call(\n self2,\n effects,\n labelAfter,\n nok,\n \"definitionLabel\",\n \"definitionLabelMarker\",\n \"definitionLabelString\"\n )(code2);\n }\n function labelAfter(code2) {\n identifier = normalizeIdentifier(\n self2.sliceSerialize(self2.events[self2.events.length - 1][1]).slice(1, -1)\n );\n if (code2 === 58) {\n effects.enter(\"definitionMarker\");\n effects.consume(code2);\n effects.exit(\"definitionMarker\");\n return markerAfter;\n }\n return nok(code2);\n }\n function markerAfter(code2) {\n return markdownLineEndingOrSpace(code2) ? factoryWhitespace(effects, destinationBefore)(code2) : destinationBefore(code2);\n }\n function destinationBefore(code2) {\n return factoryDestination(\n effects,\n destinationAfter,\n nok,\n \"definitionDestination\",\n \"definitionDestinationLiteral\",\n \"definitionDestinationLiteralMarker\",\n \"definitionDestinationRaw\",\n \"definitionDestinationString\"\n )(code2);\n }\n function destinationAfter(code2) {\n return effects.attempt(titleBefore, after, after)(code2);\n }\n function after(code2) {\n return markdownSpace(code2) ? factorySpace(effects, afterWhitespace, \"whitespace\")(code2) : afterWhitespace(code2);\n }\n function afterWhitespace(code2) {\n if (code2 === null || markdownLineEnding(code2)) {\n effects.exit(\"definition\");\n self2.parser.defined.push(identifier);\n return ok(code2);\n }\n return nok(code2);\n }\n}\nfunction tokenizeTitleBefore(effects, ok, nok) {\n return titleBefore2;\n function titleBefore2(code2) {\n return markdownLineEndingOrSpace(code2) ? factoryWhitespace(effects, beforeMarker)(code2) : nok(code2);\n }\n function beforeMarker(code2) {\n return factoryTitle(\n effects,\n titleAfter,\n nok,\n \"definitionTitle\",\n \"definitionTitleMarker\",\n \"definitionTitleString\"\n )(code2);\n }\n function titleAfter(code2) {\n return markdownSpace(code2) ? factorySpace(effects, titleAfterOptionalWhitespace, \"whitespace\")(code2) : titleAfterOptionalWhitespace(code2);\n }\n function titleAfterOptionalWhitespace(code2) {\n return code2 === null || markdownLineEnding(code2) ? ok(code2) : nok(code2);\n }\n}\nconst hardBreakEscape = {\n name: \"hardBreakEscape\",\n tokenize: tokenizeHardBreakEscape\n};\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start;\n function start(code2) {\n effects.enter(\"hardBreakEscape\");\n effects.consume(code2);\n return after;\n }\n function after(code2) {\n if (markdownLineEnding(code2)) {\n effects.exit(\"hardBreakEscape\");\n return ok(code2);\n }\n return nok(code2);\n }\n}\nconst headingAtx = {\n name: \"headingAtx\",\n tokenize: tokenizeHeadingAtx,\n resolve: resolveHeadingAtx\n};\nfunction resolveHeadingAtx(events, context) {\n let contentEnd = events.length - 2;\n let contentStart = 3;\n let content2;\n let text2;\n if (events[contentStart][1].type === \"whitespace\") {\n contentStart += 2;\n }\n if (contentEnd - 2 > contentStart && events[contentEnd][1].type === \"whitespace\") {\n contentEnd -= 2;\n }\n if (events[contentEnd][1].type === \"atxHeadingSequence\" && (contentStart === contentEnd - 1 || contentEnd - 4 > contentStart && events[contentEnd - 2][1].type === \"whitespace\")) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4;\n }\n if (contentEnd > contentStart) {\n content2 = {\n type: \"atxHeadingText\",\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n };\n text2 = {\n type: \"chunkText\",\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n contentType: \"text\"\n };\n splice(events, contentStart, contentEnd - contentStart + 1, [\n [\"enter\", content2, context],\n [\"enter\", text2, context],\n [\"exit\", text2, context],\n [\"exit\", content2, context]\n ]);\n }\n return events;\n}\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n let size2 = 0;\n return start;\n function start(code2) {\n effects.enter(\"atxHeading\");\n return before(code2);\n }\n function before(code2) {\n effects.enter(\"atxHeadingSequence\");\n return sequenceOpen(code2);\n }\n function sequenceOpen(code2) {\n if (code2 === 35 && size2++ < 6) {\n effects.consume(code2);\n return sequenceOpen;\n }\n if (code2 === null || markdownLineEndingOrSpace(code2)) {\n effects.exit(\"atxHeadingSequence\");\n return atBreak(code2);\n }\n return nok(code2);\n }\n function atBreak(code2) {\n if (code2 === 35) {\n effects.enter(\"atxHeadingSequence\");\n return sequenceFurther(code2);\n }\n if (code2 === null || markdownLineEnding(code2)) {\n effects.exit(\"atxHeading\");\n return ok(code2);\n }\n if (markdownSpace(code2)) {\n return factorySpace(effects, atBreak, \"whitespace\")(code2);\n }\n effects.enter(\"atxHeadingText\");\n return data(code2);\n }\n function sequenceFurther(code2) {\n if (code2 === 35) {\n effects.consume(code2);\n return sequenceFurther;\n }\n effects.exit(\"atxHeadingSequence\");\n return atBreak(code2);\n }\n function data(code2) {\n if (code2 === null || code2 === 35 || markdownLineEndingOrSpace(code2)) {\n effects.exit(\"atxHeadingText\");\n return atBreak(code2);\n }\n effects.consume(code2);\n return data;\n }\n}\nconst htmlBlockNames = [\n \"address\",\n \"article\",\n \"aside\",\n \"base\",\n \"basefont\",\n \"blockquote\",\n \"body\",\n \"caption\",\n \"center\",\n \"col\",\n \"colgroup\",\n \"dd\",\n \"details\",\n \"dialog\",\n \"dir\",\n \"div\",\n \"dl\",\n \"dt\",\n \"fieldset\",\n \"figcaption\",\n \"figure\",\n \"footer\",\n \"form\",\n \"frame\",\n \"frameset\",\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\",\n \"head\",\n \"header\",\n \"hr\",\n \"html\",\n \"iframe\",\n \"legend\",\n \"li\",\n \"link\",\n \"main\",\n \"menu\",\n \"menuitem\",\n \"nav\",\n \"noframes\",\n \"ol\",\n \"optgroup\",\n \"option\",\n \"p\",\n \"param\",\n \"search\",\n \"section\",\n \"summary\",\n \"table\",\n \"tbody\",\n \"td\",\n \"tfoot\",\n \"th\",\n \"thead\",\n \"title\",\n \"tr\",\n \"track\",\n \"ul\"\n];\nconst htmlRawNames = [\"pre\", \"script\", \"style\", \"textarea\"];\nconst htmlFlow = {\n name: \"htmlFlow\",\n tokenize: tokenizeHtmlFlow,\n resolveTo: resolveToHtmlFlow,\n concrete: true\n};\nconst blankLineBefore = {\n tokenize: tokenizeBlankLineBefore,\n partial: true\n};\nconst nonLazyContinuationStart = {\n tokenize: tokenizeNonLazyContinuationStart,\n partial: true\n};\nfunction resolveToHtmlFlow(events) {\n let index = events.length;\n while (index--) {\n if (events[index][0] === \"enter\" && events[index][1].type === \"htmlFlow\") {\n break;\n }\n }\n if (index > 1 && events[index - 2][1].type === \"linePrefix\") {\n events[index][1].start = events[index - 2][1].start;\n events[index + 1][1].start = events[index - 2][1].start;\n events.splice(index - 2, 2);\n }\n return events;\n}\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n const self2 = this;\n let marker;\n let closingTag;\n let buffer;\n let index;\n let markerB;\n return start;\n function start(code2) {\n return before(code2);\n }\n function before(code2) {\n effects.enter(\"htmlFlow\");\n effects.enter(\"htmlFlowData\");\n effects.consume(code2);\n return open;\n }\n function open(code2) {\n if (code2 === 33) {\n effects.consume(code2);\n return declarationOpen;\n }\n if (code2 === 47) {\n effects.consume(code2);\n closingTag = true;\n return tagCloseStart;\n }\n if (code2 === 63) {\n effects.consume(code2);\n marker = 3;\n return self2.interrupt ? ok : continuationDeclarationInside;\n }\n if (asciiAlpha(code2)) {\n effects.consume(code2);\n buffer = String.fromCharCode(code2);\n return tagName;\n }\n return nok(code2);\n }\n function declarationOpen(code2) {\n if (code2 === 45) {\n effects.consume(code2);\n marker = 2;\n return commentOpenInside;\n }\n if (code2 === 91) {\n effects.consume(code2);\n marker = 5;\n index = 0;\n return cdataOpenInside;\n }\n if (asciiAlpha(code2)) {\n effects.consume(code2);\n marker = 4;\n return self2.interrupt ? ok : continuationDeclarationInside;\n }\n return nok(code2);\n }\n function commentOpenInside(code2) {\n if (code2 === 45) {\n effects.consume(code2);\n return self2.interrupt ? ok : continuationDeclarationInside;\n }\n return nok(code2);\n }\n function cdataOpenInside(code2) {\n const value = \"CDATA[\";\n if (code2 === value.charCodeAt(index++)) {\n effects.consume(code2);\n if (index === value.length) {\n return self2.interrupt ? ok : continuation;\n }\n return cdataOpenInside;\n }\n return nok(code2);\n }\n function tagCloseStart(code2) {\n if (asciiAlpha(code2)) {\n effects.consume(code2);\n buffer = String.fromCharCode(code2);\n return tagName;\n }\n return nok(code2);\n }\n function tagName(code2) {\n if (code2 === null || code2 === 47 || code2 === 62 || markdownLineEndingOrSpace(code2)) {\n const slash = code2 === 47;\n const name = buffer.toLowerCase();\n if (!slash && !closingTag && htmlRawNames.includes(name)) {\n marker = 1;\n return self2.interrupt ? ok(code2) : continuation(code2);\n }\n if (htmlBlockNames.includes(buffer.toLowerCase())) {\n marker = 6;\n if (slash) {\n effects.consume(code2);\n return basicSelfClosing;\n }\n return self2.interrupt ? ok(code2) : continuation(code2);\n }\n marker = 7;\n return self2.interrupt && !self2.parser.lazy[self2.now().line] ? nok(code2) : closingTag ? completeClosingTagAfter(code2) : completeAttributeNameBefore(code2);\n }\n if (code2 === 45 || asciiAlphanumeric(code2)) {\n effects.consume(code2);\n buffer += String.fromCharCode(code2);\n return tagName;\n }\n return nok(code2);\n }\n function basicSelfClosing(code2) {\n if (code2 === 62) {\n effects.consume(code2);\n return self2.interrupt ? ok : continuation;\n }\n return nok(code2);\n }\n function completeClosingTagAfter(code2) {\n if (markdownSpace(code2)) {\n effects.consume(code2);\n return completeClosingTagAfter;\n }\n return completeEnd(code2);\n }\n function completeAttributeNameBefore(code2) {\n if (code2 === 47) {\n effects.consume(code2);\n return completeEnd;\n }\n if (code2 === 58 || code2 === 95 || asciiAlpha(code2)) {\n effects.consume(code2);\n return completeAttributeName;\n }\n if (markdownSpace(code2)) {\n effects.consume(code2);\n return completeAttributeNameBefore;\n }\n return completeEnd(code2);\n }\n function completeAttributeName(code2) {\n if (code2 === 45 || code2 === 46 || code2 === 58 || code2 === 95 || asciiAlphanumeric(code2)) {\n effects.consume(code2);\n return completeAttributeName;\n }\n return completeAttributeNameAfter(code2);\n }\n function completeAttributeNameAfter(code2) {\n if (code2 === 61) {\n effects.consume(code2);\n return completeAttributeValueBefore;\n }\n if (markdownSpace(code2)) {\n effects.consume(code2);\n return completeAttributeNameAfter;\n }\n return completeAttributeNameBefore(code2);\n }\n function completeAttributeValueBefore(code2) {\n if (code2 === null || code2 === 60 || code2 === 61 || code2 === 62 || code2 === 96) {\n return nok(code2);\n }\n if (code2 === 34 || code2 === 39) {\n effects.consume(code2);\n markerB = code2;\n return completeAttributeValueQuoted;\n }\n if (markdownSpace(code2)) {\n effects.consume(code2);\n return completeAttributeValueBefore;\n }\n return completeAttributeValueUnquoted(code2);\n }\n function completeAttributeValueQuoted(code2) {\n if (code2 === markerB) {\n effects.consume(code2);\n markerB = null;\n return completeAttributeValueQuotedAfter;\n }\n if (code2 === null || markdownLineEnding(code2)) {\n return nok(code2);\n }\n effects.consume(code2);\n return completeAttributeValueQuoted;\n }\n function completeAttributeValueUnquoted(code2) {\n if (code2 === null || code2 === 34 || code2 === 39 || code2 === 47 || code2 === 60 || code2 === 61 || code2 === 62 || code2 === 96 || markdownLineEndingOrSpace(code2)) {\n return completeAttributeNameAfter(code2);\n }\n effects.consume(code2);\n return completeAttributeValueUnquoted;\n }\n function completeAttributeValueQuotedAfter(code2) {\n if (code2 === 47 || code2 === 62 || markdownSpace(code2)) {\n return completeAttributeNameBefore(code2);\n }\n return nok(code2);\n }\n function completeEnd(code2) {\n if (code2 === 62) {\n effects.consume(code2);\n return completeAfter;\n }\n return nok(code2);\n }\n function completeAfter(code2) {\n if (code2 === null || markdownLineEnding(code2)) {\n return continuation(code2);\n }\n if (markdownSpace(code2)) {\n effects.consume(code2);\n return completeAfter;\n }\n return nok(code2);\n }\n function continuation(code2) {\n if (code2 === 45 && marker === 2) {\n effects.consume(code2);\n return continuationCommentInside;\n }\n if (code2 === 60 && marker === 1) {\n effects.consume(code2);\n return continuationRawTagOpen;\n }\n if (code2 === 62 && marker === 4) {\n effects.consume(code2);\n return continuationClose;\n }\n if (code2 === 63 && marker === 3) {\n effects.consume(code2);\n return continuationDeclarationInside;\n }\n if (code2 === 93 && marker === 5) {\n effects.consume(code2);\n return continuationCdataInside;\n }\n if (markdownLineEnding(code2) && (marker === 6 || marker === 7)) {\n effects.exit(\"htmlFlowData\");\n return effects.check(\n blankLineBefore,\n continuationAfter,\n continuationStart\n )(code2);\n }\n if (code2 === null || markdownLineEnding(code2)) {\n effects.exit(\"htmlFlowData\");\n return continuationStart(code2);\n }\n effects.consume(code2);\n return continuation;\n }\n function continuationStart(code2) {\n return effects.check(\n nonLazyContinuationStart,\n continuationStartNonLazy,\n continuationAfter\n )(code2);\n }\n function continuationStartNonLazy(code2) {\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return continuationBefore;\n }\n function continuationBefore(code2) {\n if (code2 === null || markdownLineEnding(code2)) {\n return continuationStart(code2);\n }\n effects.enter(\"htmlFlowData\");\n return continuation(code2);\n }\n function continuationCommentInside(code2) {\n if (code2 === 45) {\n effects.consume(code2);\n return continuationDeclarationInside;\n }\n return continuation(code2);\n }\n function continuationRawTagOpen(code2) {\n if (code2 === 47) {\n effects.consume(code2);\n buffer = \"\";\n return continuationRawEndTag;\n }\n return continuation(code2);\n }\n function continuationRawEndTag(code2) {\n if (code2 === 62) {\n const name = buffer.toLowerCase();\n if (htmlRawNames.includes(name)) {\n effects.consume(code2);\n return continuationClose;\n }\n return continuation(code2);\n }\n if (asciiAlpha(code2) && buffer.length < 8) {\n effects.consume(code2);\n buffer += String.fromCharCode(code2);\n return continuationRawEndTag;\n }\n return continuation(code2);\n }\n function continuationCdataInside(code2) {\n if (code2 === 93) {\n effects.consume(code2);\n return continuationDeclarationInside;\n }\n return continuation(code2);\n }\n function continuationDeclarationInside(code2) {\n if (code2 === 62) {\n effects.consume(code2);\n return continuationClose;\n }\n if (code2 === 45 && marker === 2) {\n effects.consume(code2);\n return continuationDeclarationInside;\n }\n return continuation(code2);\n }\n function continuationClose(code2) {\n if (code2 === null || markdownLineEnding(code2)) {\n effects.exit(\"htmlFlowData\");\n return continuationAfter(code2);\n }\n effects.consume(code2);\n return continuationClose;\n }\n function continuationAfter(code2) {\n effects.exit(\"htmlFlow\");\n return ok(code2);\n }\n}\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self2 = this;\n return start;\n function start(code2) {\n if (markdownLineEnding(code2)) {\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return after;\n }\n return nok(code2);\n }\n function after(code2) {\n return self2.parser.lazy[self2.now().line] ? nok(code2) : ok(code2);\n }\n}\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start;\n function start(code2) {\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return effects.attempt(blankLine, ok, nok);\n }\n}\nconst htmlText = {\n name: \"htmlText\",\n tokenize: tokenizeHtmlText\n};\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self2 = this;\n let marker;\n let index;\n let returnState;\n return start;\n function start(code2) {\n effects.enter(\"htmlText\");\n effects.enter(\"htmlTextData\");\n effects.consume(code2);\n return open;\n }\n function open(code2) {\n if (code2 === 33) {\n effects.consume(code2);\n return declarationOpen;\n }\n if (code2 === 47) {\n effects.consume(code2);\n return tagCloseStart;\n }\n if (code2 === 63) {\n effects.consume(code2);\n return instruction;\n }\n if (asciiAlpha(code2)) {\n effects.consume(code2);\n return tagOpen;\n }\n return nok(code2);\n }\n function declarationOpen(code2) {\n if (code2 === 45) {\n effects.consume(code2);\n return commentOpenInside;\n }\n if (code2 === 91) {\n effects.consume(code2);\n index = 0;\n return cdataOpenInside;\n }\n if (asciiAlpha(code2)) {\n effects.consume(code2);\n return declaration;\n }\n return nok(code2);\n }\n function commentOpenInside(code2) {\n if (code2 === 45) {\n effects.consume(code2);\n return commentEnd;\n }\n return nok(code2);\n }\n function comment(code2) {\n if (code2 === null) {\n return nok(code2);\n }\n if (code2 === 45) {\n effects.consume(code2);\n return commentClose;\n }\n if (markdownLineEnding(code2)) {\n returnState = comment;\n return lineEndingBefore(code2);\n }\n effects.consume(code2);\n return comment;\n }\n function commentClose(code2) {\n if (code2 === 45) {\n effects.consume(code2);\n return commentEnd;\n }\n return comment(code2);\n }\n function commentEnd(code2) {\n return code2 === 62 ? end(code2) : code2 === 45 ? commentClose(code2) : comment(code2);\n }\n function cdataOpenInside(code2) {\n const value = \"CDATA[\";\n if (code2 === value.charCodeAt(index++)) {\n effects.consume(code2);\n return index === value.length ? cdata : cdataOpenInside;\n }\n return nok(code2);\n }\n function cdata(code2) {\n if (code2 === null) {\n return nok(code2);\n }\n if (code2 === 93) {\n effects.consume(code2);\n return cdataClose;\n }\n if (markdownLineEnding(code2)) {\n returnState = cdata;\n return lineEndingBefore(code2);\n }\n effects.consume(code2);\n return cdata;\n }\n function cdataClose(code2) {\n if (code2 === 93) {\n effects.consume(code2);\n return cdataEnd;\n }\n return cdata(code2);\n }\n function cdataEnd(code2) {\n if (code2 === 62) {\n return end(code2);\n }\n if (code2 === 93) {\n effects.consume(code2);\n return cdataEnd;\n }\n return cdata(code2);\n }\n function declaration(code2) {\n if (code2 === null || code2 === 62) {\n return end(code2);\n }\n if (markdownLineEnding(code2)) {\n returnState = declaration;\n return lineEndingBefore(code2);\n }\n effects.consume(code2);\n return declaration;\n }\n function instruction(code2) {\n if (code2 === null) {\n return nok(code2);\n }\n if (code2 === 63) {\n effects.consume(code2);\n return instructionClose;\n }\n if (markdownLineEnding(code2)) {\n returnState = instruction;\n return lineEndingBefore(code2);\n }\n effects.consume(code2);\n return instruction;\n }\n function instructionClose(code2) {\n return code2 === 62 ? end(code2) : instruction(code2);\n }\n function tagCloseStart(code2) {\n if (asciiAlpha(code2)) {\n effects.consume(code2);\n return tagClose;\n }\n return nok(code2);\n }\n function tagClose(code2) {\n if (code2 === 45 || asciiAlphanumeric(code2)) {\n effects.consume(code2);\n return tagClose;\n }\n return tagCloseBetween(code2);\n }\n function tagCloseBetween(code2) {\n if (markdownLineEnding(code2)) {\n returnState = tagCloseBetween;\n return lineEndingBefore(code2);\n }\n if (markdownSpace(code2)) {\n effects.consume(code2);\n return tagCloseBetween;\n }\n return end(code2);\n }\n function tagOpen(code2) {\n if (code2 === 45 || asciiAlphanumeric(code2)) {\n effects.consume(code2);\n return tagOpen;\n }\n if (code2 === 47 || code2 === 62 || markdownLineEndingOrSpace(code2)) {\n return tagOpenBetween(code2);\n }\n return nok(code2);\n }\n function tagOpenBetween(code2) {\n if (code2 === 47) {\n effects.consume(code2);\n return end;\n }\n if (code2 === 58 || code2 === 95 || asciiAlpha(code2)) {\n effects.consume(code2);\n return tagOpenAttributeName;\n }\n if (markdownLineEnding(code2)) {\n returnState = tagOpenBetween;\n return lineEndingBefore(code2);\n }\n if (markdownSpace(code2)) {\n effects.consume(code2);\n return tagOpenBetween;\n }\n return end(code2);\n }\n function tagOpenAttributeName(code2) {\n if (code2 === 45 || code2 === 46 || code2 === 58 || code2 === 95 || asciiAlphanumeric(code2)) {\n effects.consume(code2);\n return tagOpenAttributeName;\n }\n return tagOpenAttributeNameAfter(code2);\n }\n function tagOpenAttributeNameAfter(code2) {\n if (code2 === 61) {\n effects.consume(code2);\n return tagOpenAttributeValueBefore;\n }\n if (markdownLineEnding(code2)) {\n returnState = tagOpenAttributeNameAfter;\n return lineEndingBefore(code2);\n }\n if (markdownSpace(code2)) {\n effects.consume(code2);\n return tagOpenAttributeNameAfter;\n }\n return tagOpenBetween(code2);\n }\n function tagOpenAttributeValueBefore(code2) {\n if (code2 === null || code2 === 60 || code2 === 61 || code2 === 62 || code2 === 96) {\n return nok(code2);\n }\n if (code2 === 34 || code2 === 39) {\n effects.consume(code2);\n marker = code2;\n return tagOpenAttributeValueQuoted;\n }\n if (markdownLineEnding(code2)) {\n returnState = tagOpenAttributeValueBefore;\n return lineEndingBefore(code2);\n }\n if (markdownSpace(code2)) {\n effects.consume(code2);\n return tagOpenAttributeValueBefore;\n }\n effects.consume(code2);\n return tagOpenAttributeValueUnquoted;\n }\n function tagOpenAttributeValueQuoted(code2) {\n if (code2 === marker) {\n effects.consume(code2);\n marker = void 0;\n return tagOpenAttributeValueQuotedAfter;\n }\n if (code2 === null) {\n return nok(code2);\n }\n if (markdownLineEnding(code2)) {\n returnState = tagOpenAttributeValueQuoted;\n return lineEndingBefore(code2);\n }\n effects.consume(code2);\n return tagOpenAttributeValueQuoted;\n }\n function tagOpenAttributeValueUnquoted(code2) {\n if (code2 === null || code2 === 34 || code2 === 39 || code2 === 60 || code2 === 61 || code2 === 96) {\n return nok(code2);\n }\n if (code2 === 47 || code2 === 62 || markdownLineEndingOrSpace(code2)) {\n return tagOpenBetween(code2);\n }\n effects.consume(code2);\n return tagOpenAttributeValueUnquoted;\n }\n function tagOpenAttributeValueQuotedAfter(code2) {\n if (code2 === 47 || code2 === 62 || markdownLineEndingOrSpace(code2)) {\n return tagOpenBetween(code2);\n }\n return nok(code2);\n }\n function end(code2) {\n if (code2 === 62) {\n effects.consume(code2);\n effects.exit(\"htmlTextData\");\n effects.exit(\"htmlText\");\n return ok;\n }\n return nok(code2);\n }\n function lineEndingBefore(code2) {\n effects.exit(\"htmlTextData\");\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return lineEndingAfter;\n }\n function lineEndingAfter(code2) {\n return markdownSpace(code2) ? factorySpace(\n effects,\n lineEndingAfterPrefix,\n \"linePrefix\",\n self2.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4\n )(code2) : lineEndingAfterPrefix(code2);\n }\n function lineEndingAfterPrefix(code2) {\n effects.enter(\"htmlTextData\");\n return returnState(code2);\n }\n}\nconst labelEnd = {\n name: \"labelEnd\",\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n};\nconst resourceConstruct = {\n tokenize: tokenizeResource\n};\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n};\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n};\nfunction resolveAllLabelEnd(events) {\n let index = -1;\n while (++index < events.length) {\n const token = events[index][1];\n if (token.type === \"labelImage\" || token.type === \"labelLink\" || token.type === \"labelEnd\") {\n events.splice(index + 1, token.type === \"labelImage\" ? 4 : 2);\n token.type = \"data\";\n index++;\n }\n }\n return events;\n}\nfunction resolveToLabelEnd(events, context) {\n let index = events.length;\n let offset = 0;\n let token;\n let open;\n let close;\n let media;\n while (index--) {\n token = events[index][1];\n if (open) {\n if (token.type === \"link\" || token.type === \"labelLink\" && token._inactive) {\n break;\n }\n if (events[index][0] === \"enter\" && token.type === \"labelLink\") {\n token._inactive = true;\n }\n } else if (close) {\n if (events[index][0] === \"enter\" && (token.type === \"labelImage\" || token.type === \"labelLink\") && !token._balanced) {\n open = index;\n if (token.type !== \"labelLink\") {\n offset = 2;\n break;\n }\n }\n } else if (token.type === \"labelEnd\") {\n close = index;\n }\n }\n const group = {\n type: events[open][1].type === \"labelLink\" ? \"link\" : \"image\",\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n };\n const label = {\n type: \"label\",\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[close][1].end)\n };\n const text2 = {\n type: \"labelText\",\n start: Object.assign({}, events[open + offset + 2][1].end),\n end: Object.assign({}, events[close - 2][1].start)\n };\n media = [\n [\"enter\", group, context],\n [\"enter\", label, context]\n ];\n media = push(media, events.slice(open + 1, open + offset + 3));\n media = push(media, [[\"enter\", text2, context]]);\n media = push(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n );\n media = push(media, [\n [\"exit\", text2, context],\n events[close - 2],\n events[close - 1],\n [\"exit\", label, context]\n ]);\n media = push(media, events.slice(close + 1));\n media = push(media, [[\"exit\", group, context]]);\n splice(events, open, events.length, media);\n return events;\n}\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self2 = this;\n let index = self2.events.length;\n let labelStart;\n let defined;\n while (index--) {\n if ((self2.events[index][1].type === \"labelImage\" || self2.events[index][1].type === \"labelLink\") && !self2.events[index][1]._balanced) {\n labelStart = self2.events[index][1];\n break;\n }\n }\n return start;\n function start(code2) {\n if (!labelStart) {\n return nok(code2);\n }\n if (labelStart._inactive) {\n return labelEndNok(code2);\n }\n defined = self2.parser.defined.includes(\n normalizeIdentifier(\n self2.sliceSerialize({\n start: labelStart.end,\n end: self2.now()\n })\n )\n );\n effects.enter(\"labelEnd\");\n effects.enter(\"labelMarker\");\n effects.consume(code2);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelEnd\");\n return after;\n }\n function after(code2) {\n if (code2 === 40) {\n return effects.attempt(\n resourceConstruct,\n labelEndOk,\n defined ? labelEndOk : labelEndNok\n )(code2);\n }\n if (code2 === 91) {\n return effects.attempt(\n referenceFullConstruct,\n labelEndOk,\n defined ? referenceNotFull : labelEndNok\n )(code2);\n }\n return defined ? labelEndOk(code2) : labelEndNok(code2);\n }\n function referenceNotFull(code2) {\n return effects.attempt(\n referenceCollapsedConstruct,\n labelEndOk,\n labelEndNok\n )(code2);\n }\n function labelEndOk(code2) {\n return ok(code2);\n }\n function labelEndNok(code2) {\n labelStart._balanced = true;\n return nok(code2);\n }\n}\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart;\n function resourceStart(code2) {\n effects.enter(\"resource\");\n effects.enter(\"resourceMarker\");\n effects.consume(code2);\n effects.exit(\"resourceMarker\");\n return resourceBefore;\n }\n function resourceBefore(code2) {\n return markdownLineEndingOrSpace(code2) ? factoryWhitespace(effects, resourceOpen)(code2) : resourceOpen(code2);\n }\n function resourceOpen(code2) {\n if (code2 === 41) {\n return resourceEnd(code2);\n }\n return factoryDestination(\n effects,\n resourceDestinationAfter,\n resourceDestinationMissing,\n \"resourceDestination\",\n \"resourceDestinationLiteral\",\n \"resourceDestinationLiteralMarker\",\n \"resourceDestinationRaw\",\n \"resourceDestinationString\",\n 32\n )(code2);\n }\n function resourceDestinationAfter(code2) {\n return markdownLineEndingOrSpace(code2) ? factoryWhitespace(effects, resourceBetween)(code2) : resourceEnd(code2);\n }\n function resourceDestinationMissing(code2) {\n return nok(code2);\n }\n function resourceBetween(code2) {\n if (code2 === 34 || code2 === 39 || code2 === 40) {\n return factoryTitle(\n effects,\n resourceTitleAfter,\n nok,\n \"resourceTitle\",\n \"resourceTitleMarker\",\n \"resourceTitleString\"\n )(code2);\n }\n return resourceEnd(code2);\n }\n function resourceTitleAfter(code2) {\n return markdownLineEndingOrSpace(code2) ? factoryWhitespace(effects, resourceEnd)(code2) : resourceEnd(code2);\n }\n function resourceEnd(code2) {\n if (code2 === 41) {\n effects.enter(\"resourceMarker\");\n effects.consume(code2);\n effects.exit(\"resourceMarker\");\n effects.exit(\"resource\");\n return ok;\n }\n return nok(code2);\n }\n}\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self2 = this;\n return referenceFull;\n function referenceFull(code2) {\n return factoryLabel.call(\n self2,\n effects,\n referenceFullAfter,\n referenceFullMissing,\n \"reference\",\n \"referenceMarker\",\n \"referenceString\"\n )(code2);\n }\n function referenceFullAfter(code2) {\n return self2.parser.defined.includes(\n normalizeIdentifier(\n self2.sliceSerialize(self2.events[self2.events.length - 1][1]).slice(1, -1)\n )\n ) ? ok(code2) : nok(code2);\n }\n function referenceFullMissing(code2) {\n return nok(code2);\n }\n}\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart;\n function referenceCollapsedStart(code2) {\n effects.enter(\"reference\");\n effects.enter(\"referenceMarker\");\n effects.consume(code2);\n effects.exit(\"referenceMarker\");\n return referenceCollapsedOpen;\n }\n function referenceCollapsedOpen(code2) {\n if (code2 === 93) {\n effects.enter(\"referenceMarker\");\n effects.consume(code2);\n effects.exit(\"referenceMarker\");\n effects.exit(\"reference\");\n return ok;\n }\n return nok(code2);\n }\n}\nconst labelStartImage = {\n name: \"labelStartImage\",\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n};\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self2 = this;\n return start;\n function start(code2) {\n effects.enter(\"labelImage\");\n effects.enter(\"labelImageMarker\");\n effects.consume(code2);\n effects.exit(\"labelImageMarker\");\n return open;\n }\n function open(code2) {\n if (code2 === 91) {\n effects.enter(\"labelMarker\");\n effects.consume(code2);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelImage\");\n return after;\n }\n return nok(code2);\n }\n function after(code2) {\n return code2 === 94 && \"_hiddenFootnoteSupport\" in self2.parser.constructs ? nok(code2) : ok(code2);\n }\n}\nconst labelStartLink = {\n name: \"labelStartLink\",\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n};\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self2 = this;\n return start;\n function start(code2) {\n effects.enter(\"labelLink\");\n effects.enter(\"labelMarker\");\n effects.consume(code2);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelLink\");\n return after;\n }\n function after(code2) {\n return code2 === 94 && \"_hiddenFootnoteSupport\" in self2.parser.constructs ? nok(code2) : ok(code2);\n }\n}\nconst lineEnding = {\n name: \"lineEnding\",\n tokenize: tokenizeLineEnding\n};\nfunction tokenizeLineEnding(effects, ok) {\n return start;\n function start(code2) {\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, ok, \"linePrefix\");\n }\n}\nconst thematicBreak = {\n name: \"thematicBreak\",\n tokenize: tokenizeThematicBreak\n};\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size2 = 0;\n let marker;\n return start;\n function start(code2) {\n effects.enter(\"thematicBreak\");\n return before(code2);\n }\n function before(code2) {\n marker = code2;\n return atBreak(code2);\n }\n function atBreak(code2) {\n if (code2 === marker) {\n effects.enter(\"thematicBreakSequence\");\n return sequence(code2);\n }\n if (size2 >= 3 && (code2 === null || markdownLineEnding(code2))) {\n effects.exit(\"thematicBreak\");\n return ok(code2);\n }\n return nok(code2);\n }\n function sequence(code2) {\n if (code2 === marker) {\n effects.consume(code2);\n size2++;\n return sequence;\n }\n effects.exit(\"thematicBreakSequence\");\n return markdownSpace(code2) ? factorySpace(effects, atBreak, \"whitespace\")(code2) : atBreak(code2);\n }\n}\nconst list = {\n name: \"list\",\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n};\nconst listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n};\nconst indentConstruct = {\n tokenize: tokenizeIndent$1,\n partial: true\n};\nfunction tokenizeListStart(effects, ok, nok) {\n const self2 = this;\n const tail = self2.events[self2.events.length - 1];\n let initialSize = tail && tail[1].type === \"linePrefix\" ? tail[2].sliceSerialize(tail[1], true).length : 0;\n let size2 = 0;\n return start;\n function start(code2) {\n const kind = self2.containerState.type || (code2 === 42 || code2 === 43 || code2 === 45 ? \"listUnordered\" : \"listOrdered\");\n if (kind === \"listUnordered\" ? !self2.containerState.marker || code2 === self2.containerState.marker : asciiDigit(code2)) {\n if (!self2.containerState.type) {\n self2.containerState.type = kind;\n effects.enter(kind, {\n _container: true\n });\n }\n if (kind === \"listUnordered\") {\n effects.enter(\"listItemPrefix\");\n return code2 === 42 || code2 === 45 ? effects.check(thematicBreak, nok, atMarker)(code2) : atMarker(code2);\n }\n if (!self2.interrupt || code2 === 49) {\n effects.enter(\"listItemPrefix\");\n effects.enter(\"listItemValue\");\n return inside(code2);\n }\n }\n return nok(code2);\n }\n function inside(code2) {\n if (asciiDigit(code2) && ++size2 < 10) {\n effects.consume(code2);\n return inside;\n }\n if ((!self2.interrupt || size2 < 2) && (self2.containerState.marker ? code2 === self2.containerState.marker : code2 === 41 || code2 === 46)) {\n effects.exit(\"listItemValue\");\n return atMarker(code2);\n }\n return nok(code2);\n }\n function atMarker(code2) {\n effects.enter(\"listItemMarker\");\n effects.consume(code2);\n effects.exit(\"listItemMarker\");\n self2.containerState.marker = self2.containerState.marker || code2;\n return effects.check(\n blankLine,\n self2.interrupt ? nok : onBlank,\n effects.attempt(\n listItemPrefixWhitespaceConstruct,\n endOfPrefix,\n otherPrefix\n )\n );\n }\n function onBlank(code2) {\n self2.containerState.initialBlankLine = true;\n initialSize++;\n return endOfPrefix(code2);\n }\n function otherPrefix(code2) {\n if (markdownSpace(code2)) {\n effects.enter(\"listItemPrefixWhitespace\");\n effects.consume(code2);\n effects.exit(\"listItemPrefixWhitespace\");\n return endOfPrefix;\n }\n return nok(code2);\n }\n function endOfPrefix(code2) {\n self2.containerState.size = initialSize + self2.sliceSerialize(effects.exit(\"listItemPrefix\"), true).length;\n return ok(code2);\n }\n}\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self2 = this;\n self2.containerState._closeFlow = void 0;\n return effects.check(blankLine, onBlank, notBlank);\n function onBlank(code2) {\n self2.containerState.furtherBlankLines = self2.containerState.furtherBlankLines || self2.containerState.initialBlankLine;\n return factorySpace(\n effects,\n ok,\n \"listItemIndent\",\n self2.containerState.size + 1\n )(code2);\n }\n function notBlank(code2) {\n if (self2.containerState.furtherBlankLines || !markdownSpace(code2)) {\n self2.containerState.furtherBlankLines = void 0;\n self2.containerState.initialBlankLine = void 0;\n return notInCurrentItem(code2);\n }\n self2.containerState.furtherBlankLines = void 0;\n self2.containerState.initialBlankLine = void 0;\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code2);\n }\n function notInCurrentItem(code2) {\n self2.containerState._closeFlow = true;\n self2.interrupt = void 0;\n return factorySpace(\n effects,\n effects.attempt(list, ok, nok),\n \"linePrefix\",\n self2.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4\n )(code2);\n }\n}\nfunction tokenizeIndent$1(effects, ok, nok) {\n const self2 = this;\n return factorySpace(\n effects,\n afterPrefix,\n \"listItemIndent\",\n self2.containerState.size + 1\n );\n function afterPrefix(code2) {\n const tail = self2.events[self2.events.length - 1];\n return tail && tail[1].type === \"listItemIndent\" && tail[2].sliceSerialize(tail[1], true).length === self2.containerState.size ? ok(code2) : nok(code2);\n }\n}\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type);\n}\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self2 = this;\n return factorySpace(\n effects,\n afterPrefix,\n \"listItemPrefixWhitespace\",\n self2.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4 + 1\n );\n function afterPrefix(code2) {\n const tail = self2.events[self2.events.length - 1];\n return !markdownSpace(code2) && tail && tail[1].type === \"listItemPrefixWhitespace\" ? ok(code2) : nok(code2);\n }\n}\nconst setextUnderline = {\n name: \"setextUnderline\",\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n};\nfunction resolveToSetextUnderline(events, context) {\n let index = events.length;\n let content2;\n let text2;\n let definition2;\n while (index--) {\n if (events[index][0] === \"enter\") {\n if (events[index][1].type === \"content\") {\n content2 = index;\n break;\n }\n if (events[index][1].type === \"paragraph\") {\n text2 = index;\n }\n } else {\n if (events[index][1].type === \"content\") {\n events.splice(index, 1);\n }\n if (!definition2 && events[index][1].type === \"definition\") {\n definition2 = index;\n }\n }\n }\n const heading = {\n type: \"setextHeading\",\n start: Object.assign({}, events[text2][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n };\n events[text2][1].type = \"setextHeadingText\";\n if (definition2) {\n events.splice(text2, 0, [\"enter\", heading, context]);\n events.splice(definition2 + 1, 0, [\"exit\", events[content2][1], context]);\n events[content2][1].end = Object.assign({}, events[definition2][1].end);\n } else {\n events[content2][1] = heading;\n }\n events.push([\"exit\", heading, context]);\n return events;\n}\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self2 = this;\n let marker;\n return start;\n function start(code2) {\n let index = self2.events.length;\n let paragraph;\n while (index--) {\n if (self2.events[index][1].type !== \"lineEnding\" && self2.events[index][1].type !== \"linePrefix\" && self2.events[index][1].type !== \"content\") {\n paragraph = self2.events[index][1].type === \"paragraph\";\n break;\n }\n }\n if (!self2.parser.lazy[self2.now().line] && (self2.interrupt || paragraph)) {\n effects.enter(\"setextHeadingLine\");\n marker = code2;\n return before(code2);\n }\n return nok(code2);\n }\n function before(code2) {\n effects.enter(\"setextHeadingLineSequence\");\n return inside(code2);\n }\n function inside(code2) {\n if (code2 === marker) {\n effects.consume(code2);\n return inside;\n }\n effects.exit(\"setextHeadingLineSequence\");\n return markdownSpace(code2) ? factorySpace(effects, after, \"lineSuffix\")(code2) : after(code2);\n }\n function after(code2) {\n if (code2 === null || markdownLineEnding(code2)) {\n effects.exit(\"setextHeadingLine\");\n return ok(code2);\n }\n return nok(code2);\n }\n}\nconst flow$1 = {\n tokenize: initializeFlow\n};\nfunction initializeFlow(effects) {\n const self2 = this;\n const initial = effects.attempt(\n blankLine,\n atBlankEnding,\n effects.attempt(\n this.parser.constructs.flowInitial,\n afterConstruct,\n factorySpace(\n effects,\n effects.attempt(\n this.parser.constructs.flow,\n afterConstruct,\n effects.attempt(content, afterConstruct)\n ),\n \"linePrefix\"\n )\n )\n );\n return initial;\n function atBlankEnding(code2) {\n if (code2 === null) {\n effects.consume(code2);\n return;\n }\n effects.enter(\"lineEndingBlank\");\n effects.consume(code2);\n effects.exit(\"lineEndingBlank\");\n self2.currentConstruct = void 0;\n return initial;\n }\n function afterConstruct(code2) {\n if (code2 === null) {\n effects.consume(code2);\n return;\n }\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n self2.currentConstruct = void 0;\n return initial;\n }\n}\nconst resolver = {\n resolveAll: createResolver()\n};\nconst string$1 = initializeFactory(\"string\");\nconst text$3 = initializeFactory(\"text\");\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(\n field === \"text\" ? resolveAllLineSuffixes : void 0\n )\n };\n function initializeText(effects) {\n const self2 = this;\n const constructs2 = this.parser.constructs[field];\n const text2 = effects.attempt(constructs2, start, notText);\n return start;\n function start(code2) {\n return atBreak(code2) ? text2(code2) : notText(code2);\n }\n function notText(code2) {\n if (code2 === null) {\n effects.consume(code2);\n return;\n }\n effects.enter(\"data\");\n effects.consume(code2);\n return data;\n }\n function data(code2) {\n if (atBreak(code2)) {\n effects.exit(\"data\");\n return text2(code2);\n }\n effects.consume(code2);\n return data;\n }\n function atBreak(code2) {\n if (code2 === null) {\n return true;\n }\n const list2 = constructs2[code2];\n let index = -1;\n if (list2) {\n while (++index < list2.length) {\n const item = list2[index];\n if (!item.previous || item.previous.call(self2, self2.previous)) {\n return true;\n }\n }\n }\n return false;\n }\n }\n}\nfunction createResolver(extraResolver) {\n return resolveAllText;\n function resolveAllText(events, context) {\n let index = -1;\n let enter;\n while (++index <= events.length) {\n if (enter === void 0) {\n if (events[index] && events[index][1].type === \"data\") {\n enter = index;\n index++;\n }\n } else if (!events[index] || events[index][1].type !== \"data\") {\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end;\n events.splice(enter + 2, index - enter - 2);\n index = enter + 2;\n }\n enter = void 0;\n }\n }\n return extraResolver ? extraResolver(events, context) : events;\n }\n}\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = 0;\n while (++eventIndex <= events.length) {\n if ((eventIndex === events.length || events[eventIndex][1].type === \"lineEnding\") && events[eventIndex - 1][1].type === \"data\") {\n const data = events[eventIndex - 1][1];\n const chunks = context.sliceStream(data);\n let index = chunks.length;\n let bufferIndex = -1;\n let size2 = 0;\n let tabs;\n while (index--) {\n const chunk = chunks[index];\n if (typeof chunk === \"string\") {\n bufferIndex = chunk.length;\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size2++;\n bufferIndex--;\n }\n if (bufferIndex)\n break;\n bufferIndex = -1;\n } else if (chunk === -2) {\n tabs = true;\n size2++;\n } else if (chunk === -1)\n ;\n else {\n index++;\n break;\n }\n }\n if (size2) {\n const token = {\n type: eventIndex === events.length || tabs || size2 < 2 ? \"lineSuffix\" : \"hardBreakTrailing\",\n start: {\n line: data.end.line,\n column: data.end.column - size2,\n offset: data.end.offset - size2,\n _index: data.start._index + index,\n _bufferIndex: index ? bufferIndex : data.start._bufferIndex + bufferIndex\n },\n end: Object.assign({}, data.end)\n };\n data.end = Object.assign({}, token.start);\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token);\n } else {\n events.splice(\n eventIndex,\n 0,\n [\"enter\", token, context],\n [\"exit\", token, context]\n );\n eventIndex += 2;\n }\n }\n eventIndex++;\n }\n }\n return events;\n}\nfunction createTokenizer(parser, initialize, from) {\n let point = Object.assign(\n from ? Object.assign({}, from) : {\n line: 1,\n column: 1,\n offset: 0\n },\n {\n _index: 0,\n _bufferIndex: -1\n }\n );\n const columnStart = {};\n const resolveAllConstructs = [];\n let chunks = [];\n let stack = [];\n const effects = {\n consume,\n enter,\n exit: exit2,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n };\n const context = {\n previous: null,\n code: null,\n containerState: {},\n events: [],\n parser,\n sliceStream,\n sliceSerialize,\n now,\n defineSkip,\n write\n };\n let state = initialize.tokenize.call(context, effects);\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize);\n }\n return context;\n function write(slice) {\n chunks = push(chunks, slice);\n main();\n if (chunks[chunks.length - 1] !== null) {\n return [];\n }\n addResult(initialize, 0);\n context.events = resolveAll(resolveAllConstructs, context.events, context);\n return context.events;\n }\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs);\n }\n function sliceStream(token) {\n return sliceChunks(chunks, token);\n }\n function now() {\n const { line, column, offset, _index, _bufferIndex } = point;\n return {\n line,\n column,\n offset,\n _index,\n _bufferIndex\n };\n }\n function defineSkip(value) {\n columnStart[value.line] = value.column;\n accountForPotentialSkip();\n }\n function main() {\n let chunkIndex;\n while (point._index < chunks.length) {\n const chunk = chunks[point._index];\n if (typeof chunk === \"string\") {\n chunkIndex = point._index;\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0;\n }\n while (point._index === chunkIndex && point._bufferIndex < chunk.length) {\n go(chunk.charCodeAt(point._bufferIndex));\n }\n } else {\n go(chunk);\n }\n }\n }\n function go(code2) {\n state = state(code2);\n }\n function consume(code2) {\n if (markdownLineEnding(code2)) {\n point.line++;\n point.column = 1;\n point.offset += code2 === -3 ? 2 : 1;\n accountForPotentialSkip();\n } else if (code2 !== -1) {\n point.column++;\n point.offset++;\n }\n if (point._bufferIndex < 0) {\n point._index++;\n } else {\n point._bufferIndex++;\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1;\n point._index++;\n }\n }\n context.previous = code2;\n }\n function enter(type, fields) {\n const token = fields || {};\n token.type = type;\n token.start = now();\n context.events.push([\"enter\", token, context]);\n stack.push(token);\n return token;\n }\n function exit2(type) {\n const token = stack.pop();\n token.end = now();\n context.events.push([\"exit\", token, context]);\n return token;\n }\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from);\n }\n function onsuccessfulcheck(_, info) {\n info.restore();\n }\n function constructFactory(onreturn, fields) {\n return hook;\n function hook(constructs2, returnState, bogusState) {\n let listOfConstructs;\n let constructIndex;\n let currentConstruct;\n let info;\n return Array.isArray(constructs2) ? handleListOfConstructs(constructs2) : \"tokenize\" in constructs2 ? handleListOfConstructs([constructs2]) : handleMapOfConstructs(constructs2);\n function handleMapOfConstructs(map) {\n return start;\n function start(code2) {\n const def2 = code2 !== null && map[code2];\n const all = code2 !== null && map.null;\n const list2 = [\n ...Array.isArray(def2) ? def2 : def2 ? [def2] : [],\n ...Array.isArray(all) ? all : all ? [all] : []\n ];\n return handleListOfConstructs(list2)(code2);\n }\n }\n function handleListOfConstructs(list2) {\n listOfConstructs = list2;\n constructIndex = 0;\n if (list2.length === 0) {\n return bogusState;\n }\n return handleConstruct(list2[constructIndex]);\n }\n function handleConstruct(construct) {\n return start;\n function start(code2) {\n info = store();\n currentConstruct = construct;\n if (!construct.partial) {\n context.currentConstruct = construct;\n }\n if (construct.name && context.parser.constructs.disable.null.includes(construct.name)) {\n return nok();\n }\n return construct.tokenize.call(\n fields ? Object.assign(Object.create(context), fields) : context,\n effects,\n ok,\n nok\n )(code2);\n }\n }\n function ok(code2) {\n onreturn(currentConstruct, info);\n return returnState;\n }\n function nok(code2) {\n info.restore();\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex]);\n }\n return bogusState;\n }\n }\n }\n function addResult(construct, from2) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct);\n }\n if (construct.resolve) {\n splice(\n context.events,\n from2,\n context.events.length - from2,\n construct.resolve(context.events.slice(from2), context)\n );\n }\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context);\n }\n }\n function store() {\n const startPoint = now();\n const startPrevious = context.previous;\n const startCurrentConstruct = context.currentConstruct;\n const startEventsIndex = context.events.length;\n const startStack = Array.from(stack);\n return {\n restore,\n from: startEventsIndex\n };\n function restore() {\n point = startPoint;\n context.previous = startPrevious;\n context.currentConstruct = startCurrentConstruct;\n context.events.length = startEventsIndex;\n stack = startStack;\n accountForPotentialSkip();\n }\n }\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line];\n point.offset += columnStart[point.line] - 1;\n }\n }\n}\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index;\n const startBufferIndex = token.start._bufferIndex;\n const endIndex = token.end._index;\n const endBufferIndex = token.end._bufferIndex;\n let view;\n if (startIndex === endIndex) {\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)];\n } else {\n view = chunks.slice(startIndex, endIndex);\n if (startBufferIndex > -1) {\n const head = view[0];\n if (typeof head === \"string\") {\n view[0] = head.slice(startBufferIndex);\n } else {\n view.shift();\n }\n }\n if (endBufferIndex > 0) {\n view.push(chunks[endIndex].slice(0, endBufferIndex));\n }\n }\n return view;\n}\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1;\n const result = [];\n let atTab;\n while (++index < chunks.length) {\n const chunk = chunks[index];\n let value;\n if (typeof chunk === \"string\") {\n value = chunk;\n } else\n switch (chunk) {\n case -5: {\n value = \"\\r\";\n break;\n }\n case -4: {\n value = \"\\n\";\n break;\n }\n case -3: {\n value = \"\\r\\n\";\n break;\n }\n case -2: {\n value = expandTabs ? \" \" : \"\t\";\n break;\n }\n case -1: {\n if (!expandTabs && atTab)\n continue;\n value = \" \";\n break;\n }\n default: {\n value = String.fromCharCode(chunk);\n }\n }\n atTab = chunk === -2;\n result.push(value);\n }\n return result.join(\"\");\n}\nconst document$1 = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n};\nconst contentInitial = {\n [91]: definition\n};\nconst flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n};\nconst flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n};\nconst string = {\n [38]: characterReference,\n [92]: characterEscape\n};\nconst text$2 = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n};\nconst insideSpan = {\n null: [attention, resolver]\n};\nconst attentionMarkers = {\n null: [42, 95]\n};\nconst disable = {\n null: []\n};\nvar defaultConstructs = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n document: document$1,\n contentInitial,\n flowInitial,\n flow,\n string,\n text: text$2,\n insideSpan,\n attentionMarkers,\n disable\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction parse(options) {\n const settings = options || {};\n const constructs2 = combineExtensions([defaultConstructs, ...settings.extensions || []]);\n const parser = {\n defined: [],\n lazy: {},\n constructs: constructs2,\n content: create(content$1),\n document: create(document$2),\n flow: create(flow$1),\n string: create(string$1),\n text: create(text$3)\n };\n return parser;\n function create(initial) {\n return creator;\n function creator(from) {\n return createTokenizer(parser, initial, from);\n }\n }\n}\nfunction postprocess(events) {\n while (!subtokenize(events)) {\n }\n return events;\n}\nconst search = /[\\0\\t\\n\\r]/g;\nfunction preprocess() {\n let column = 1;\n let buffer = \"\";\n let start = true;\n let atCarriageReturn;\n return preprocessor;\n function preprocessor(value, encoding, end) {\n const chunks = [];\n let match;\n let next;\n let startPosition;\n let endPosition;\n let code2;\n value = buffer + value.toString(encoding);\n startPosition = 0;\n buffer = \"\";\n if (start) {\n if (value.charCodeAt(0) === 65279) {\n startPosition++;\n }\n start = void 0;\n }\n while (startPosition < value.length) {\n search.lastIndex = startPosition;\n match = search.exec(value);\n endPosition = match && match.index !== void 0 ? match.index : value.length;\n code2 = value.charCodeAt(endPosition);\n if (!match) {\n buffer = value.slice(startPosition);\n break;\n }\n if (code2 === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3);\n atCarriageReturn = void 0;\n } else {\n if (atCarriageReturn) {\n chunks.push(-5);\n atCarriageReturn = void 0;\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition));\n column += endPosition - startPosition;\n }\n switch (code2) {\n case 0: {\n chunks.push(65533);\n column++;\n break;\n }\n case 9: {\n next = Math.ceil(column / 4) * 4;\n chunks.push(-2);\n while (column++ < next)\n chunks.push(-1);\n break;\n }\n case 10: {\n chunks.push(-4);\n column = 1;\n break;\n }\n default: {\n atCarriageReturn = true;\n column = 1;\n }\n }\n }\n startPosition = endPosition + 1;\n }\n if (end) {\n if (atCarriageReturn)\n chunks.push(-5);\n if (buffer)\n chunks.push(buffer);\n chunks.push(null);\n }\n return chunks;\n }\n}\nfunction micromark(value, encoding, options) {\n if (typeof encoding !== \"string\") {\n options = encoding;\n encoding = void 0;\n }\n return compile(options)(\n postprocess(\n parse(options).document().write(preprocess()(value, encoding, true))\n )\n );\n}\nconst wwwPrefix = {\n tokenize: tokenizeWwwPrefix,\n partial: true\n};\nconst domain = {\n tokenize: tokenizeDomain,\n partial: true\n};\nconst path = {\n tokenize: tokenizePath,\n partial: true\n};\nconst trail = {\n tokenize: tokenizeTrail,\n partial: true\n};\nconst emailDomainDotTrail = {\n tokenize: tokenizeEmailDomainDotTrail,\n partial: true\n};\nconst wwwAutolink = {\n tokenize: tokenizeWwwAutolink,\n previous: previousWww\n};\nconst protocolAutolink = {\n tokenize: tokenizeProtocolAutolink,\n previous: previousProtocol\n};\nconst emailAutolink = {\n tokenize: tokenizeEmailAutolink,\n previous: previousEmail\n};\nconst text$1 = {};\nconst gfmAutolinkLiteral = {\n text: text$1\n};\nlet code = 48;\nwhile (code < 123) {\n text$1[code] = emailAutolink;\n code++;\n if (code === 58)\n code = 65;\n else if (code === 91)\n code = 97;\n}\ntext$1[43] = emailAutolink;\ntext$1[45] = emailAutolink;\ntext$1[46] = emailAutolink;\ntext$1[95] = emailAutolink;\ntext$1[72] = [emailAutolink, protocolAutolink];\ntext$1[104] = [emailAutolink, protocolAutolink];\ntext$1[87] = [emailAutolink, wwwAutolink];\ntext$1[119] = [emailAutolink, wwwAutolink];\nfunction tokenizeEmailAutolink(effects, ok, nok) {\n const self2 = this;\n let dot;\n let data;\n return start;\n function start(code2) {\n if (!gfmAtext(code2) || !previousEmail.call(self2, self2.previous) || previousUnbalanced(self2.events)) {\n return nok(code2);\n }\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkEmail\");\n return atext(code2);\n }\n function atext(code2) {\n if (gfmAtext(code2)) {\n effects.consume(code2);\n return atext;\n }\n if (code2 === 64) {\n effects.consume(code2);\n return emailDomain;\n }\n return nok(code2);\n }\n function emailDomain(code2) {\n if (code2 === 46) {\n return effects.check(\n emailDomainDotTrail,\n emailDomainAfter,\n emailDomainDot\n )(code2);\n }\n if (code2 === 45 || code2 === 95 || asciiAlphanumeric(code2)) {\n data = true;\n effects.consume(code2);\n return emailDomain;\n }\n return emailDomainAfter(code2);\n }\n function emailDomainDot(code2) {\n effects.consume(code2);\n dot = true;\n return emailDomain;\n }\n function emailDomainAfter(code2) {\n if (data && dot && asciiAlpha(self2.previous)) {\n effects.exit(\"literalAutolinkEmail\");\n effects.exit(\"literalAutolink\");\n return ok(code2);\n }\n return nok(code2);\n }\n}\nfunction tokenizeWwwAutolink(effects, ok, nok) {\n const self2 = this;\n return wwwStart;\n function wwwStart(code2) {\n if (code2 !== 87 && code2 !== 119 || !previousWww.call(self2, self2.previous) || previousUnbalanced(self2.events)) {\n return nok(code2);\n }\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkWww\");\n return effects.check(\n wwwPrefix,\n effects.attempt(domain, effects.attempt(path, wwwAfter), nok),\n nok\n )(code2);\n }\n function wwwAfter(code2) {\n effects.exit(\"literalAutolinkWww\");\n effects.exit(\"literalAutolink\");\n return ok(code2);\n }\n}\nfunction tokenizeProtocolAutolink(effects, ok, nok) {\n const self2 = this;\n let buffer = \"\";\n let seen = false;\n return protocolStart;\n function protocolStart(code2) {\n if ((code2 === 72 || code2 === 104) && previousProtocol.call(self2, self2.previous) && !previousUnbalanced(self2.events)) {\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkHttp\");\n buffer += String.fromCodePoint(code2);\n effects.consume(code2);\n return protocolPrefixInside;\n }\n return nok(code2);\n }\n function protocolPrefixInside(code2) {\n if (asciiAlpha(code2) && buffer.length < 5) {\n buffer += String.fromCodePoint(code2);\n effects.consume(code2);\n return protocolPrefixInside;\n }\n if (code2 === 58) {\n const protocol = buffer.toLowerCase();\n if (protocol === \"http\" || protocol === \"https\") {\n effects.consume(code2);\n return protocolSlashesInside;\n }\n }\n return nok(code2);\n }\n function protocolSlashesInside(code2) {\n if (code2 === 47) {\n effects.consume(code2);\n if (seen) {\n return afterProtocol;\n }\n seen = true;\n return protocolSlashesInside;\n }\n return nok(code2);\n }\n function afterProtocol(code2) {\n return code2 === null || asciiControl(code2) || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2) || unicodePunctuation(code2) ? nok(code2) : effects.attempt(domain, effects.attempt(path, protocolAfter), nok)(code2);\n }\n function protocolAfter(code2) {\n effects.exit(\"literalAutolinkHttp\");\n effects.exit(\"literalAutolink\");\n return ok(code2);\n }\n}\nfunction tokenizeWwwPrefix(effects, ok, nok) {\n let size2 = 0;\n return wwwPrefixInside;\n function wwwPrefixInside(code2) {\n if ((code2 === 87 || code2 === 119) && size2 < 3) {\n size2++;\n effects.consume(code2);\n return wwwPrefixInside;\n }\n if (code2 === 46 && size2 === 3) {\n effects.consume(code2);\n return wwwPrefixAfter;\n }\n return nok(code2);\n }\n function wwwPrefixAfter(code2) {\n return code2 === null ? nok(code2) : ok(code2);\n }\n}\nfunction tokenizeDomain(effects, ok, nok) {\n let underscoreInLastSegment;\n let underscoreInLastLastSegment;\n let seen;\n return domainInside;\n function domainInside(code2) {\n if (code2 === 46 || code2 === 95) {\n return effects.check(trail, domainAfter, domainAtPunctuation)(code2);\n }\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2) || code2 !== 45 && unicodePunctuation(code2)) {\n return domainAfter(code2);\n }\n seen = true;\n effects.consume(code2);\n return domainInside;\n }\n function domainAtPunctuation(code2) {\n if (code2 === 95) {\n underscoreInLastSegment = true;\n } else {\n underscoreInLastLastSegment = underscoreInLastSegment;\n underscoreInLastSegment = void 0;\n }\n effects.consume(code2);\n return domainInside;\n }\n function domainAfter(code2) {\n if (underscoreInLastLastSegment || underscoreInLastSegment || !seen) {\n return nok(code2);\n }\n return ok(code2);\n }\n}\nfunction tokenizePath(effects, ok) {\n let sizeOpen = 0;\n let sizeClose = 0;\n return pathInside;\n function pathInside(code2) {\n if (code2 === 40) {\n sizeOpen++;\n effects.consume(code2);\n return pathInside;\n }\n if (code2 === 41 && sizeClose < sizeOpen) {\n return pathAtPunctuation(code2);\n }\n if (code2 === 33 || code2 === 34 || code2 === 38 || code2 === 39 || code2 === 41 || code2 === 42 || code2 === 44 || code2 === 46 || code2 === 58 || code2 === 59 || code2 === 60 || code2 === 63 || code2 === 93 || code2 === 95 || code2 === 126) {\n return effects.check(trail, ok, pathAtPunctuation)(code2);\n }\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return ok(code2);\n }\n effects.consume(code2);\n return pathInside;\n }\n function pathAtPunctuation(code2) {\n if (code2 === 41) {\n sizeClose++;\n }\n effects.consume(code2);\n return pathInside;\n }\n}\nfunction tokenizeTrail(effects, ok, nok) {\n return trail2;\n function trail2(code2) {\n if (code2 === 33 || code2 === 34 || code2 === 39 || code2 === 41 || code2 === 42 || code2 === 44 || code2 === 46 || code2 === 58 || code2 === 59 || code2 === 63 || code2 === 95 || code2 === 126) {\n effects.consume(code2);\n return trail2;\n }\n if (code2 === 38) {\n effects.consume(code2);\n return trailCharRefStart;\n }\n if (code2 === 93) {\n effects.consume(code2);\n return trailBracketAfter;\n }\n if (code2 === 60 || code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return ok(code2);\n }\n return nok(code2);\n }\n function trailBracketAfter(code2) {\n if (code2 === null || code2 === 40 || code2 === 91 || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return ok(code2);\n }\n return trail2(code2);\n }\n function trailCharRefStart(code2) {\n return asciiAlpha(code2) ? trailCharRefInside(code2) : nok(code2);\n }\n function trailCharRefInside(code2) {\n if (code2 === 59) {\n effects.consume(code2);\n return trail2;\n }\n if (asciiAlpha(code2)) {\n effects.consume(code2);\n return trailCharRefInside;\n }\n return nok(code2);\n }\n}\nfunction tokenizeEmailDomainDotTrail(effects, ok, nok) {\n return start;\n function start(code2) {\n effects.consume(code2);\n return after;\n }\n function after(code2) {\n return asciiAlphanumeric(code2) ? nok(code2) : ok(code2);\n }\n}\nfunction previousWww(code2) {\n return code2 === null || code2 === 40 || code2 === 42 || code2 === 95 || code2 === 91 || code2 === 93 || code2 === 126 || markdownLineEndingOrSpace(code2);\n}\nfunction previousProtocol(code2) {\n return !asciiAlpha(code2);\n}\nfunction previousEmail(code2) {\n return !(code2 === 47 || gfmAtext(code2));\n}\nfunction gfmAtext(code2) {\n return code2 === 43 || code2 === 45 || code2 === 46 || code2 === 95 || asciiAlphanumeric(code2);\n}\nfunction previousUnbalanced(events) {\n let index = events.length;\n let result = false;\n while (index--) {\n const token = events[index][1];\n if ((token.type === \"labelLink\" || token.type === \"labelImage\") && !token._balanced) {\n result = true;\n break;\n }\n if (token._gfmAutolinkLiteralWalkedInto) {\n result = false;\n break;\n }\n }\n if (events.length > 0 && !result) {\n events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true;\n }\n return result;\n}\nconst gfmAutolinkLiteralHtml = {\n exit: {\n literalAutolinkEmail,\n literalAutolinkHttp,\n literalAutolinkWww\n }\n};\nfunction literalAutolinkWww(token) {\n anchorFromToken.call(this, token, \"http://\");\n}\nfunction literalAutolinkEmail(token) {\n anchorFromToken.call(this, token, \"mailto:\");\n}\nfunction literalAutolinkHttp(token) {\n anchorFromToken.call(this, token);\n}\nfunction anchorFromToken(token, protocol) {\n const url = this.sliceSerialize(token);\n this.tag('<a href=\"' + sanitizeUri((protocol || \"\") + url) + '\">');\n this.raw(this.encode(url));\n this.tag(\"</a>\");\n}\nconst indent = {\n tokenize: tokenizeIndent,\n partial: true\n};\nfunction gfmFootnote() {\n return {\n document: {\n [91]: {\n tokenize: tokenizeDefinitionStart,\n continuation: {\n tokenize: tokenizeDefinitionContinuation\n },\n exit: gfmFootnoteDefinitionEnd\n }\n },\n text: {\n [91]: {\n tokenize: tokenizeGfmFootnoteCall\n },\n [93]: {\n add: \"after\",\n tokenize: tokenizePotentialGfmFootnoteCall,\n resolveTo: resolveToPotentialGfmFootnoteCall\n }\n }\n };\n}\nfunction tokenizePotentialGfmFootnoteCall(effects, ok, nok) {\n const self2 = this;\n let index = self2.events.length;\n const defined = self2.parser.gfmFootnotes || (self2.parser.gfmFootnotes = []);\n let labelStart;\n while (index--) {\n const token = self2.events[index][1];\n if (token.type === \"labelImage\") {\n labelStart = token;\n break;\n }\n if (token.type === \"gfmFootnoteCall\" || token.type === \"labelLink\" || token.type === \"label\" || token.type === \"image\" || token.type === \"link\") {\n break;\n }\n }\n return start;\n function start(code2) {\n if (!labelStart || !labelStart._balanced) {\n return nok(code2);\n }\n const id = normalizeIdentifier(\n self2.sliceSerialize({\n start: labelStart.end,\n end: self2.now()\n })\n );\n if (id.codePointAt(0) !== 94 || !defined.includes(id.slice(1))) {\n return nok(code2);\n }\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n return ok(code2);\n }\n}\nfunction resolveToPotentialGfmFootnoteCall(events, context) {\n let index = events.length;\n while (index--) {\n if (events[index][1].type === \"labelImage\" && events[index][0] === \"enter\") {\n events[index][1];\n break;\n }\n }\n events[index + 1][1].type = \"data\";\n events[index + 3][1].type = \"gfmFootnoteCallLabelMarker\";\n const call = {\n type: \"gfmFootnoteCall\",\n start: Object.assign({}, events[index + 3][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n };\n const marker = {\n type: \"gfmFootnoteCallMarker\",\n start: Object.assign({}, events[index + 3][1].end),\n end: Object.assign({}, events[index + 3][1].end)\n };\n marker.end.column++;\n marker.end.offset++;\n marker.end._bufferIndex++;\n const string2 = {\n type: \"gfmFootnoteCallString\",\n start: Object.assign({}, marker.end),\n end: Object.assign({}, events[events.length - 1][1].start)\n };\n const chunk = {\n type: \"chunkString\",\n contentType: \"string\",\n start: Object.assign({}, string2.start),\n end: Object.assign({}, string2.end)\n };\n const replacement = [\n events[index + 1],\n events[index + 2],\n [\"enter\", call, context],\n events[index + 3],\n events[index + 4],\n [\"enter\", marker, context],\n [\"exit\", marker, context],\n [\"enter\", string2, context],\n [\"enter\", chunk, context],\n [\"exit\", chunk, context],\n [\"exit\", string2, context],\n events[events.length - 2],\n events[events.length - 1],\n [\"exit\", call, context]\n ];\n events.splice(index, events.length - index + 1, ...replacement);\n return events;\n}\nfunction tokenizeGfmFootnoteCall(effects, ok, nok) {\n const self2 = this;\n const defined = self2.parser.gfmFootnotes || (self2.parser.gfmFootnotes = []);\n let size2 = 0;\n let data;\n return start;\n function start(code2) {\n effects.enter(\"gfmFootnoteCall\");\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n return callStart;\n }\n function callStart(code2) {\n if (code2 !== 94)\n return nok(code2);\n effects.enter(\"gfmFootnoteCallMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallMarker\");\n effects.enter(\"gfmFootnoteCallString\");\n effects.enter(\"chunkString\").contentType = \"string\";\n return callData;\n }\n function callData(code2) {\n if (size2 > 999 || code2 === 93 && !data || code2 === null || code2 === 91 || markdownLineEndingOrSpace(code2)) {\n return nok(code2);\n }\n if (code2 === 93) {\n effects.exit(\"chunkString\");\n const token = effects.exit(\"gfmFootnoteCallString\");\n if (!defined.includes(normalizeIdentifier(self2.sliceSerialize(token)))) {\n return nok(code2);\n }\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n effects.exit(\"gfmFootnoteCall\");\n return ok;\n }\n if (!markdownLineEndingOrSpace(code2)) {\n data = true;\n }\n size2++;\n effects.consume(code2);\n return code2 === 92 ? callEscape : callData;\n }\n function callEscape(code2) {\n if (code2 === 91 || code2 === 92 || code2 === 93) {\n effects.consume(code2);\n size2++;\n return callData;\n }\n return callData(code2);\n }\n}\nfunction tokenizeDefinitionStart(effects, ok, nok) {\n const self2 = this;\n const defined = self2.parser.gfmFootnotes || (self2.parser.gfmFootnotes = []);\n let identifier;\n let size2 = 0;\n let data;\n return start;\n function start(code2) {\n effects.enter(\"gfmFootnoteDefinition\")._container = true;\n effects.enter(\"gfmFootnoteDefinitionLabel\");\n effects.enter(\"gfmFootnoteDefinitionLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionLabelMarker\");\n return labelAtMarker;\n }\n function labelAtMarker(code2) {\n if (code2 === 94) {\n effects.enter(\"gfmFootnoteDefinitionMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionMarker\");\n effects.enter(\"gfmFootnoteDefinitionLabelString\");\n effects.enter(\"chunkString\").contentType = \"string\";\n return labelInside;\n }\n return nok(code2);\n }\n function labelInside(code2) {\n if (size2 > 999 || code2 === 93 && !data || code2 === null || code2 === 91 || markdownLineEndingOrSpace(code2)) {\n return nok(code2);\n }\n if (code2 === 93) {\n effects.exit(\"chunkString\");\n const token = effects.exit(\"gfmFootnoteDefinitionLabelString\");\n identifier = normalizeIdentifier(self2.sliceSerialize(token));\n effects.enter(\"gfmFootnoteDefinitionLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionLabelMarker\");\n effects.exit(\"gfmFootnoteDefinitionLabel\");\n return labelAfter;\n }\n if (!markdownLineEndingOrSpace(code2)) {\n data = true;\n }\n size2++;\n effects.consume(code2);\n return code2 === 92 ? labelEscape : labelInside;\n }\n function labelEscape(code2) {\n if (code2 === 91 || code2 === 92 || code2 === 93) {\n effects.consume(code2);\n size2++;\n return labelInside;\n }\n return labelInside(code2);\n }\n function labelAfter(code2) {\n if (code2 === 58) {\n effects.enter(\"definitionMarker\");\n effects.consume(code2);\n effects.exit(\"definitionMarker\");\n if (!defined.includes(identifier)) {\n defined.push(identifier);\n }\n return factorySpace(\n effects,\n whitespaceAfter,\n \"gfmFootnoteDefinitionWhitespace\"\n );\n }\n return nok(code2);\n }\n function whitespaceAfter(code2) {\n return ok(code2);\n }\n}\nfunction tokenizeDefinitionContinuation(effects, ok, nok) {\n return effects.check(blankLine, ok, effects.attempt(indent, ok, nok));\n}\nfunction gfmFootnoteDefinitionEnd(effects) {\n effects.exit(\"gfmFootnoteDefinition\");\n}\nfunction tokenizeIndent(effects, ok, nok) {\n const self2 = this;\n return factorySpace(\n effects,\n afterPrefix,\n \"gfmFootnoteDefinitionIndent\",\n 4 + 1\n );\n function afterPrefix(code2) {\n const tail = self2.events[self2.events.length - 1];\n return tail && tail[1].type === \"gfmFootnoteDefinitionIndent\" && tail[2].sliceSerialize(tail[1], true).length === 4 ? ok(code2) : nok(code2);\n }\n}\nconst own = {}.hasOwnProperty;\nconst emptyOptions = {};\nfunction defaultBackLabel(referenceIndex, rereferenceIndex) {\n return \"Back to reference \" + (referenceIndex + 1) + (rereferenceIndex > 1 ? \"-\" + rereferenceIndex : \"\");\n}\nfunction gfmFootnoteHtml(options) {\n const config = options || emptyOptions;\n const label = config.label || \"Footnotes\";\n const labelTagName = config.labelTagName || \"h2\";\n const labelAttributes = config.labelAttributes === null || config.labelAttributes === void 0 ? 'class=\"sr-only\"' : config.labelAttributes;\n const backLabel = config.backLabel || defaultBackLabel;\n const clobberPrefix = config.clobberPrefix === null || config.clobberPrefix === void 0 ? \"user-content-\" : config.clobberPrefix;\n return {\n enter: {\n gfmFootnoteDefinition() {\n const stack = this.getData(\"tightStack\");\n stack.push(false);\n },\n gfmFootnoteDefinitionLabelString() {\n this.buffer();\n },\n gfmFootnoteCallString() {\n this.buffer();\n }\n },\n exit: {\n gfmFootnoteDefinition() {\n let definitions2 = this.getData(\"gfmFootnoteDefinitions\");\n const footnoteStack = this.getData(\"gfmFootnoteDefinitionStack\");\n const tightStack = this.getData(\"tightStack\");\n const current = footnoteStack.pop();\n const value = this.resume();\n if (!definitions2) {\n this.setData(\"gfmFootnoteDefinitions\", definitions2 = {});\n }\n if (!own.call(definitions2, current))\n definitions2[current] = value;\n tightStack.pop();\n this.setData(\"slurpOneLineEnding\", true);\n this.setData(\"lastWasTag\");\n },\n gfmFootnoteDefinitionLabelString(token) {\n let footnoteStack = this.getData(\"gfmFootnoteDefinitionStack\");\n if (!footnoteStack) {\n this.setData(\"gfmFootnoteDefinitionStack\", footnoteStack = []);\n }\n footnoteStack.push(normalizeIdentifier(this.sliceSerialize(token)));\n this.resume();\n this.buffer();\n },\n gfmFootnoteCallString(token) {\n let calls = this.getData(\"gfmFootnoteCallOrder\");\n let counts = this.getData(\"gfmFootnoteCallCounts\");\n const id = normalizeIdentifier(this.sliceSerialize(token));\n let counter;\n this.resume();\n if (!calls)\n this.setData(\"gfmFootnoteCallOrder\", calls = []);\n if (!counts)\n this.setData(\"gfmFootnoteCallCounts\", counts = {});\n const index = calls.indexOf(id);\n const safeId = sanitizeUri(id.toLowerCase());\n if (index === -1) {\n calls.push(id);\n counts[id] = 1;\n counter = calls.length;\n } else {\n counts[id]++;\n counter = index + 1;\n }\n const reuseCounter = counts[id];\n this.tag(\n '<sup><a href=\"#' + clobberPrefix + \"fn-\" + safeId + '\" id=\"' + clobberPrefix + \"fnref-\" + safeId + (reuseCounter > 1 ? \"-\" + reuseCounter : \"\") + '\" data-footnote-ref=\"\" aria-describedby=\"footnote-label\">' + String(counter) + \"</a></sup>\"\n );\n },\n null() {\n const calls = this.getData(\"gfmFootnoteCallOrder\") || [];\n const counts = this.getData(\"gfmFootnoteCallCounts\") || {};\n const definitions2 = this.getData(\"gfmFootnoteDefinitions\") || {};\n let index = -1;\n if (calls.length > 0) {\n this.lineEndingIfNeeded();\n this.tag(\n '<section data-footnotes=\"\" class=\"footnotes\"><' + labelTagName + ' id=\"footnote-label\"' + (labelAttributes ? \" \" + labelAttributes : \"\") + \">\"\n );\n this.raw(this.encode(label));\n this.tag(\"</\" + labelTagName + \">\");\n this.lineEndingIfNeeded();\n this.tag(\"<ol>\");\n }\n while (++index < calls.length) {\n const id = calls[index];\n const safeId = sanitizeUri(id.toLowerCase());\n let referenceIndex = 0;\n const references = [];\n while (++referenceIndex <= counts[id]) {\n references.push(\n '<a href=\"#' + clobberPrefix + \"fnref-\" + safeId + (referenceIndex > 1 ? \"-\" + referenceIndex : \"\") + '\" data-footnote-backref=\"\" aria-label=\"' + this.encode(\n typeof backLabel === \"string\" ? backLabel : backLabel(index, referenceIndex)\n ) + '\" class=\"data-footnote-backref\">\\u21A9' + (referenceIndex > 1 ? \"<sup>\" + referenceIndex + \"</sup>\" : \"\") + \"</a>\"\n );\n }\n const reference = references.join(\" \");\n let injected = false;\n this.lineEndingIfNeeded();\n this.tag('<li id=\"' + clobberPrefix + \"fn-\" + safeId + '\">');\n this.lineEndingIfNeeded();\n this.tag(\n definitions2[id].replace(\n /<\\/p>(?:\\r?\\n|\\r)?$/,\n ($0) => {\n injected = true;\n return \" \" + reference + $0;\n }\n )\n );\n if (!injected) {\n this.lineEndingIfNeeded();\n this.tag(reference);\n }\n this.lineEndingIfNeeded();\n this.tag(\"</li>\");\n }\n if (calls.length > 0) {\n this.lineEndingIfNeeded();\n this.tag(\"</ol>\");\n this.lineEndingIfNeeded();\n this.tag(\"</section>\");\n }\n }\n }\n };\n}\nconst gfmStrikethroughHtml = {\n enter: {\n strikethrough() {\n this.tag(\"<del>\");\n }\n },\n exit: {\n strikethrough() {\n this.tag(\"</del>\");\n }\n }\n};\nfunction gfmStrikethrough(options) {\n const options_ = options || {};\n let single = options_.singleTilde;\n const tokenizer = {\n tokenize: tokenizeStrikethrough,\n resolveAll: resolveAllStrikethrough\n };\n if (single === null || single === void 0) {\n single = true;\n }\n return {\n text: {\n [126]: tokenizer\n },\n insideSpan: {\n null: [tokenizer]\n },\n attentionMarkers: {\n null: [126]\n }\n };\n function resolveAllStrikethrough(events, context) {\n let index = -1;\n while (++index < events.length) {\n if (events[index][0] === \"enter\" && events[index][1].type === \"strikethroughSequenceTemporary\" && events[index][1]._close) {\n let open = index;\n while (open--) {\n if (events[open][0] === \"exit\" && events[open][1].type === \"strikethroughSequenceTemporary\" && events[open][1]._open && events[index][1].end.offset - events[index][1].start.offset === events[open][1].end.offset - events[open][1].start.offset) {\n events[index][1].type = \"strikethroughSequence\";\n events[open][1].type = \"strikethroughSequence\";\n const strikethrough = {\n type: \"strikethrough\",\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[index][1].end)\n };\n const text2 = {\n type: \"strikethroughText\",\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n };\n const nextEvents = [\n [\"enter\", strikethrough, context],\n [\"enter\", events[open][1], context],\n [\"exit\", events[open][1], context],\n [\"enter\", text2, context]\n ];\n const insideSpan2 = context.parser.constructs.insideSpan.null;\n if (insideSpan2) {\n splice(\n nextEvents,\n nextEvents.length,\n 0,\n resolveAll(insideSpan2, events.slice(open + 1, index), context)\n );\n }\n splice(nextEvents, nextEvents.length, 0, [\n [\"exit\", text2, context],\n [\"enter\", events[index][1], context],\n [\"exit\", events[index][1], context],\n [\"exit\", strikethrough, context]\n ]);\n splice(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - 2;\n break;\n }\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n if (events[index][1].type === \"strikethroughSequenceTemporary\") {\n events[index][1].type = \"data\";\n }\n }\n return events;\n }\n function tokenizeStrikethrough(effects, ok, nok) {\n const previous2 = this.previous;\n const events = this.events;\n let size2 = 0;\n return start;\n function start(code2) {\n if (previous2 === 126 && events[events.length - 1][1].type !== \"characterEscape\") {\n return nok(code2);\n }\n effects.enter(\"strikethroughSequenceTemporary\");\n return more(code2);\n }\n function more(code2) {\n const before = classifyCharacter(previous2);\n if (code2 === 126) {\n if (size2 > 1)\n return nok(code2);\n effects.consume(code2);\n size2++;\n return more;\n }\n if (size2 < 2 && !single)\n return nok(code2);\n const token = effects.exit(\"strikethroughSequenceTemporary\");\n const after = classifyCharacter(code2);\n token._open = !after || after === 2 && Boolean(before);\n token._close = !before || before === 2 && Boolean(after);\n return ok(code2);\n }\n }\n}\nconst alignment = {\n none: \"\",\n left: ' align=\"left\"',\n right: ' align=\"right\"',\n center: ' align=\"center\"'\n};\nconst gfmTableHtml = {\n enter: {\n table(token) {\n const tableAlign = token._align;\n this.lineEndingIfNeeded();\n this.tag(\"<table>\");\n this.setData(\"tableAlign\", tableAlign);\n },\n tableBody() {\n this.tag(\"<tbody>\");\n },\n tableData() {\n const tableAlign = this.getData(\"tableAlign\");\n const tableColumn = this.getData(\"tableColumn\");\n const align = alignment[tableAlign[tableColumn]];\n if (align === void 0) {\n this.buffer();\n } else {\n this.lineEndingIfNeeded();\n this.tag(\"<td\" + align + \">\");\n }\n },\n tableHead() {\n this.lineEndingIfNeeded();\n this.tag(\"<thead>\");\n },\n tableHeader() {\n const tableAlign = this.getData(\"tableAlign\");\n const tableColumn = this.getData(\"tableColumn\");\n const align = alignment[tableAlign[tableColumn]];\n this.lineEndingIfNeeded();\n this.tag(\"<th\" + align + \">\");\n },\n tableRow() {\n this.setData(\"tableColumn\", 0);\n this.lineEndingIfNeeded();\n this.tag(\"<tr>\");\n }\n },\n exit: {\n codeTextData(token) {\n let value = this.sliceSerialize(token);\n if (this.getData(\"tableAlign\")) {\n value = value.replace(/\\\\([\\\\|])/g, replace);\n }\n this.raw(this.encode(value));\n },\n table() {\n this.setData(\"tableAlign\");\n this.setData(\"slurpAllLineEndings\");\n this.lineEndingIfNeeded();\n this.tag(\"</table>\");\n },\n tableBody() {\n this.lineEndingIfNeeded();\n this.tag(\"</tbody>\");\n },\n tableData() {\n const tableAlign = this.getData(\"tableAlign\");\n const tableColumn = this.getData(\"tableColumn\");\n if (tableColumn in tableAlign) {\n this.tag(\"</td>\");\n this.setData(\"tableColumn\", tableColumn + 1);\n } else {\n this.resume();\n }\n },\n tableHead() {\n this.lineEndingIfNeeded();\n this.tag(\"</thead>\");\n },\n tableHeader() {\n const tableColumn = this.getData(\"tableColumn\");\n this.tag(\"</th>\");\n this.setData(\"tableColumn\", tableColumn + 1);\n },\n tableRow() {\n const tableAlign = this.getData(\"tableAlign\");\n let tableColumn = this.getData(\"tableColumn\");\n while (tableColumn < tableAlign.length) {\n this.lineEndingIfNeeded();\n this.tag(\"<td\" + alignment[tableAlign[tableColumn]] + \"></td>\");\n tableColumn++;\n }\n this.setData(\"tableColumn\", tableColumn);\n this.lineEndingIfNeeded();\n this.tag(\"</tr>\");\n }\n }\n};\nfunction replace($0, $1) {\n return $1 === \"|\" ? $1 : $0;\n}\nclass EditMap {\n constructor() {\n this.map = [];\n }\n add(index, remove2, add2) {\n addImpl(this, index, remove2, add2);\n }\n consume(events) {\n this.map.sort((a, b) => a[0] - b[0]);\n if (this.map.length === 0) {\n return;\n }\n let index = this.map.length;\n const vecs = [];\n while (index > 0) {\n index -= 1;\n vecs.push(events.slice(this.map[index][0] + this.map[index][1]));\n vecs.push(this.map[index][2]);\n events.length = this.map[index][0];\n }\n vecs.push([...events]);\n events.length = 0;\n let slice = vecs.pop();\n while (slice) {\n events.push(...slice);\n slice = vecs.pop();\n }\n this.map.length = 0;\n }\n}\nfunction addImpl(editMap, at, remove2, add2) {\n let index = 0;\n if (remove2 === 0 && add2.length === 0) {\n return;\n }\n while (index < editMap.map.length) {\n if (editMap.map[index][0] === at) {\n editMap.map[index][1] += remove2;\n editMap.map[index][2].push(...add2);\n return;\n }\n index += 1;\n }\n editMap.map.push([at, remove2, add2]);\n}\nfunction gfmTableAlign(events, index) {\n let inDelimiterRow = false;\n const align = [];\n while (index < events.length) {\n const event = events[index];\n if (inDelimiterRow) {\n if (event[0] === \"enter\") {\n if (event[1].type === \"tableContent\") {\n align.push(\n events[index + 1][1].type === \"tableDelimiterMarker\" ? \"left\" : \"none\"\n );\n }\n } else if (event[1].type === \"tableContent\") {\n if (events[index - 1][1].type === \"tableDelimiterMarker\") {\n const alignIndex = align.length - 1;\n align[alignIndex] = align[alignIndex] === \"left\" ? \"center\" : \"right\";\n }\n } else if (event[1].type === \"tableDelimiterRow\") {\n break;\n }\n } else if (event[0] === \"enter\" && event[1].type === \"tableDelimiterRow\") {\n inDelimiterRow = true;\n }\n index += 1;\n }\n return align;\n}\nconst gfmTable = {\n flow: {\n null: {\n tokenize: tokenizeTable,\n resolveAll: resolveTable\n }\n }\n};\nfunction tokenizeTable(effects, ok, nok) {\n const self2 = this;\n let size2 = 0;\n let sizeB = 0;\n let seen;\n return start;\n function start(code2) {\n let index = self2.events.length - 1;\n while (index > -1) {\n const type = self2.events[index][1].type;\n if (type === \"lineEnding\" || type === \"linePrefix\")\n index--;\n else\n break;\n }\n const tail = index > -1 ? self2.events[index][1].type : null;\n const next = tail === \"tableHead\" || tail === \"tableRow\" ? bodyRowStart : headRowBefore;\n if (next === bodyRowStart && self2.parser.lazy[self2.now().line]) {\n return nok(code2);\n }\n return next(code2);\n }\n function headRowBefore(code2) {\n effects.enter(\"tableHead\");\n effects.enter(\"tableRow\");\n return headRowStart(code2);\n }\n function headRowStart(code2) {\n if (code2 === 124) {\n return headRowBreak(code2);\n }\n seen = true;\n sizeB += 1;\n return headRowBreak(code2);\n }\n function headRowBreak(code2) {\n if (code2 === null) {\n return nok(code2);\n }\n if (markdownLineEnding(code2)) {\n if (sizeB > 1) {\n sizeB = 0;\n self2.interrupt = true;\n effects.exit(\"tableRow\");\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return headDelimiterStart;\n }\n return nok(code2);\n }\n if (markdownSpace(code2)) {\n return factorySpace(effects, headRowBreak, \"whitespace\")(code2);\n }\n sizeB += 1;\n if (seen) {\n seen = false;\n size2 += 1;\n }\n if (code2 === 124) {\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n seen = true;\n return headRowBreak;\n }\n effects.enter(\"data\");\n return headRowData(code2);\n }\n function headRowData(code2) {\n if (code2 === null || code2 === 124 || markdownLineEndingOrSpace(code2)) {\n effects.exit(\"data\");\n return headRowBreak(code2);\n }\n effects.consume(code2);\n return code2 === 92 ? headRowEscape : headRowData;\n }\n function headRowEscape(code2) {\n if (code2 === 92 || code2 === 124) {\n effects.consume(code2);\n return headRowData;\n }\n return headRowData(code2);\n }\n function headDelimiterStart(code2) {\n self2.interrupt = false;\n if (self2.parser.lazy[self2.now().line]) {\n return nok(code2);\n }\n effects.enter(\"tableDelimiterRow\");\n seen = false;\n if (markdownSpace(code2)) {\n return factorySpace(\n effects,\n headDelimiterBefore,\n \"linePrefix\",\n self2.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4\n )(code2);\n }\n return headDelimiterBefore(code2);\n }\n function headDelimiterBefore(code2) {\n if (code2 === 45 || code2 === 58) {\n return headDelimiterValueBefore(code2);\n }\n if (code2 === 124) {\n seen = true;\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n return headDelimiterCellBefore;\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterCellBefore(code2) {\n if (markdownSpace(code2)) {\n return factorySpace(effects, headDelimiterValueBefore, \"whitespace\")(code2);\n }\n return headDelimiterValueBefore(code2);\n }\n function headDelimiterValueBefore(code2) {\n if (code2 === 58) {\n sizeB += 1;\n seen = true;\n effects.enter(\"tableDelimiterMarker\");\n effects.consume(code2);\n effects.exit(\"tableDelimiterMarker\");\n return headDelimiterLeftAlignmentAfter;\n }\n if (code2 === 45) {\n sizeB += 1;\n return headDelimiterLeftAlignmentAfter(code2);\n }\n if (code2 === null || markdownLineEnding(code2)) {\n return headDelimiterCellAfter(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterLeftAlignmentAfter(code2) {\n if (code2 === 45) {\n effects.enter(\"tableDelimiterFiller\");\n return headDelimiterFiller(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterFiller(code2) {\n if (code2 === 45) {\n effects.consume(code2);\n return headDelimiterFiller;\n }\n if (code2 === 58) {\n seen = true;\n effects.exit(\"tableDelimiterFiller\");\n effects.enter(\"tableDelimiterMarker\");\n effects.consume(code2);\n effects.exit(\"tableDelimiterMarker\");\n return headDelimiterRightAlignmentAfter;\n }\n effects.exit(\"tableDelimiterFiller\");\n return headDelimiterRightAlignmentAfter(code2);\n }\n function headDelimiterRightAlignmentAfter(code2) {\n if (markdownSpace(code2)) {\n return factorySpace(effects, headDelimiterCellAfter, \"whitespace\")(code2);\n }\n return headDelimiterCellAfter(code2);\n }\n function headDelimiterCellAfter(code2) {\n if (code2 === 124) {\n return headDelimiterBefore(code2);\n }\n if (code2 === null || markdownLineEnding(code2)) {\n if (!seen || size2 !== sizeB) {\n return headDelimiterNok(code2);\n }\n effects.exit(\"tableDelimiterRow\");\n effects.exit(\"tableHead\");\n return ok(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterNok(code2) {\n return nok(code2);\n }\n function bodyRowStart(code2) {\n effects.enter(\"tableRow\");\n return bodyRowBreak(code2);\n }\n function bodyRowBreak(code2) {\n if (code2 === 124) {\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n return bodyRowBreak;\n }\n if (code2 === null || markdownLineEnding(code2)) {\n effects.exit(\"tableRow\");\n return ok(code2);\n }\n if (markdownSpace(code2)) {\n return factorySpace(effects, bodyRowBreak, \"whitespace\")(code2);\n }\n effects.enter(\"data\");\n return bodyRowData(code2);\n }\n function bodyRowData(code2) {\n if (code2 === null || code2 === 124 || markdownLineEndingOrSpace(code2)) {\n effects.exit(\"data\");\n return bodyRowBreak(code2);\n }\n effects.consume(code2);\n return code2 === 92 ? bodyRowEscape : bodyRowData;\n }\n function bodyRowEscape(code2) {\n if (code2 === 92 || code2 === 124) {\n effects.consume(code2);\n return bodyRowData;\n }\n return bodyRowData(code2);\n }\n}\nfunction resolveTable(events, context) {\n let index = -1;\n let inFirstCellAwaitingPipe = true;\n let rowKind = 0;\n let lastCell = [0, 0, 0, 0];\n let cell = [0, 0, 0, 0];\n let afterHeadAwaitingFirstBodyRow = false;\n let lastTableEnd = 0;\n let currentTable;\n let currentBody;\n let currentCell;\n const map = new EditMap();\n while (++index < events.length) {\n const event = events[index];\n const token = event[1];\n if (event[0] === \"enter\") {\n if (token.type === \"tableHead\") {\n afterHeadAwaitingFirstBodyRow = false;\n if (lastTableEnd !== 0) {\n flushTableEnd(map, context, lastTableEnd, currentTable, currentBody);\n currentBody = void 0;\n lastTableEnd = 0;\n }\n currentTable = {\n type: \"table\",\n start: Object.assign({}, token.start),\n end: Object.assign({}, token.end)\n };\n map.add(index, 0, [[\"enter\", currentTable, context]]);\n } else if (token.type === \"tableRow\" || token.type === \"tableDelimiterRow\") {\n inFirstCellAwaitingPipe = true;\n currentCell = void 0;\n lastCell = [0, 0, 0, 0];\n cell = [0, index + 1, 0, 0];\n if (afterHeadAwaitingFirstBodyRow) {\n afterHeadAwaitingFirstBodyRow = false;\n currentBody = {\n type: \"tableBody\",\n start: Object.assign({}, token.start),\n end: Object.assign({}, token.end)\n };\n map.add(index, 0, [[\"enter\", currentBody, context]]);\n }\n rowKind = token.type === \"tableDelimiterRow\" ? 2 : currentBody ? 3 : 1;\n } else if (rowKind && (token.type === \"data\" || token.type === \"tableDelimiterMarker\" || token.type === \"tableDelimiterFiller\")) {\n inFirstCellAwaitingPipe = false;\n if (cell[2] === 0) {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(\n map,\n context,\n lastCell,\n rowKind,\n void 0,\n currentCell\n );\n lastCell = [0, 0, 0, 0];\n }\n cell[2] = index;\n }\n } else if (token.type === \"tableCellDivider\") {\n if (inFirstCellAwaitingPipe) {\n inFirstCellAwaitingPipe = false;\n } else {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(\n map,\n context,\n lastCell,\n rowKind,\n void 0,\n currentCell\n );\n }\n lastCell = cell;\n cell = [lastCell[1], index, 0, 0];\n }\n }\n } else if (token.type === \"tableHead\") {\n afterHeadAwaitingFirstBodyRow = true;\n lastTableEnd = index;\n } else if (token.type === \"tableRow\" || token.type === \"tableDelimiterRow\") {\n lastTableEnd = index;\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(\n map,\n context,\n lastCell,\n rowKind,\n index,\n currentCell\n );\n } else if (cell[1] !== 0) {\n currentCell = flushCell(map, context, cell, rowKind, index, currentCell);\n }\n rowKind = 0;\n } else if (rowKind && (token.type === \"data\" || token.type === \"tableDelimiterMarker\" || token.type === \"tableDelimiterFiller\")) {\n cell[3] = index;\n }\n }\n if (lastTableEnd !== 0) {\n flushTableEnd(map, context, lastTableEnd, currentTable, currentBody);\n }\n map.consume(context.events);\n index = -1;\n while (++index < context.events.length) {\n const event = context.events[index];\n if (event[0] === \"enter\" && event[1].type === \"table\") {\n event[1]._align = gfmTableAlign(context.events, index);\n }\n }\n return events;\n}\nfunction flushCell(map, context, range, rowKind, rowEnd, previousCell) {\n const groupName = rowKind === 1 ? \"tableHeader\" : rowKind === 2 ? \"tableDelimiter\" : \"tableData\";\n const valueName = \"tableContent\";\n if (range[0] !== 0) {\n previousCell.end = Object.assign({}, getPoint(context.events, range[0]));\n map.add(range[0], 0, [[\"exit\", previousCell, context]]);\n }\n const now = getPoint(context.events, range[1]);\n previousCell = {\n type: groupName,\n start: Object.assign({}, now),\n end: Object.assign({}, now)\n };\n map.add(range[1], 0, [[\"enter\", previousCell, context]]);\n if (range[2] !== 0) {\n const relatedStart = getPoint(context.events, range[2]);\n const relatedEnd = getPoint(context.events, range[3]);\n const valueToken = {\n type: valueName,\n start: Object.assign({}, relatedStart),\n end: Object.assign({}, relatedEnd)\n };\n map.add(range[2], 0, [[\"enter\", valueToken, context]]);\n if (rowKind !== 2) {\n const start = context.events[range[2]];\n const end = context.events[range[3]];\n start[1].end = Object.assign({}, end[1].end);\n start[1].type = \"chunkText\";\n start[1].contentType = \"text\";\n if (range[3] > range[2] + 1) {\n const a = range[2] + 1;\n const b = range[3] - range[2] - 1;\n map.add(a, b, []);\n }\n }\n map.add(range[3] + 1, 0, [[\"exit\", valueToken, context]]);\n }\n if (rowEnd !== void 0) {\n previousCell.end = Object.assign({}, getPoint(context.events, rowEnd));\n map.add(rowEnd, 0, [[\"exit\", previousCell, context]]);\n previousCell = void 0;\n }\n return previousCell;\n}\nfunction flushTableEnd(map, context, index, table, tableBody) {\n const exits = [];\n const related = getPoint(context.events, index);\n if (tableBody) {\n tableBody.end = Object.assign({}, related);\n exits.push([\"exit\", tableBody, context]);\n }\n table.end = Object.assign({}, related);\n exits.push([\"exit\", table, context]);\n map.add(index + 1, 0, exits);\n}\nfunction getPoint(events, index) {\n const event = events[index];\n const side = event[0] === \"enter\" ? \"start\" : \"end\";\n return event[1][side];\n}\nconst reFlow = /<(\\/?)(iframe|noembed|noframes|plaintext|script|style|title|textarea|xmp)(?=[\\t\\n\\f\\r />])/gi;\nconst reText = new RegExp(\"^\" + reFlow.source, \"i\");\nconst gfmTagfilterHtml = {\n exit: {\n htmlFlowData(token) {\n exitHtmlData.call(this, token, reFlow);\n },\n htmlTextData(token) {\n exitHtmlData.call(this, token, reText);\n }\n }\n};\nfunction exitHtmlData(token, filter) {\n let value = this.sliceSerialize(token);\n if (this.options.allowDangerousHtml) {\n value = value.replace(filter, \"<$1$2\");\n }\n this.raw(this.encode(value));\n}\nconst gfmTaskListItemHtml = {\n enter: {\n taskListCheck() {\n this.tag('<input type=\"checkbox\" disabled=\"\" ');\n }\n },\n exit: {\n taskListCheck() {\n this.tag(\"/>\");\n },\n taskListCheckValueChecked() {\n this.tag('checked=\"\" ');\n }\n }\n};\nconst tasklistCheck = {\n tokenize: tokenizeTasklistCheck\n};\nconst gfmTaskListItem = {\n text: {\n [91]: tasklistCheck\n }\n};\nfunction tokenizeTasklistCheck(effects, ok, nok) {\n const self2 = this;\n return open;\n function open(code2) {\n if (self2.previous !== null || !self2._gfmTasklistFirstContentOfListItem) {\n return nok(code2);\n }\n effects.enter(\"taskListCheck\");\n effects.enter(\"taskListCheckMarker\");\n effects.consume(code2);\n effects.exit(\"taskListCheckMarker\");\n return inside;\n }\n function inside(code2) {\n if (markdownLineEndingOrSpace(code2)) {\n effects.enter(\"taskListCheckValueUnchecked\");\n effects.consume(code2);\n effects.exit(\"taskListCheckValueUnchecked\");\n return close;\n }\n if (code2 === 88 || code2 === 120) {\n effects.enter(\"taskListCheckValueChecked\");\n effects.consume(code2);\n effects.exit(\"taskListCheckValueChecked\");\n return close;\n }\n return nok(code2);\n }\n function close(code2) {\n if (code2 === 93) {\n effects.enter(\"taskListCheckMarker\");\n effects.consume(code2);\n effects.exit(\"taskListCheckMarker\");\n effects.exit(\"taskListCheck\");\n return after;\n }\n return nok(code2);\n }\n function after(code2) {\n if (markdownLineEnding(code2)) {\n return ok(code2);\n }\n if (markdownSpace(code2)) {\n return effects.check(\n {\n tokenize: spaceThenNonSpace\n },\n ok,\n nok\n )(code2);\n }\n return nok(code2);\n }\n}\nfunction spaceThenNonSpace(effects, ok, nok) {\n return factorySpace(effects, after, \"whitespace\");\n function after(code2) {\n return code2 === null ? nok(code2) : ok(code2);\n }\n}\nfunction gfm(options) {\n return combineExtensions([\n gfmAutolinkLiteral,\n gfmFootnote(),\n gfmStrikethrough(options),\n gfmTable,\n gfmTaskListItem\n ]);\n}\nfunction gfmHtml(options) {\n return combineHtmlExtensions([\n gfmAutolinkLiteralHtml,\n gfmFootnoteHtml(options),\n gfmStrikethroughHtml,\n gfmTableHtml,\n gfmTagfilterHtml,\n gfmTaskListItemHtml\n ]);\n}\nconst codes = {\n carriageReturn: -5,\n lineFeed: -4,\n carriageReturnLineFeed: -3,\n horizontalTab: -2,\n virtualSpace: -1,\n eof: null,\n nul: 0,\n soh: 1,\n stx: 2,\n etx: 3,\n eot: 4,\n enq: 5,\n ack: 6,\n bel: 7,\n bs: 8,\n ht: 9,\n lf: 10,\n vt: 11,\n ff: 12,\n cr: 13,\n so: 14,\n si: 15,\n dle: 16,\n dc1: 17,\n dc2: 18,\n dc3: 19,\n dc4: 20,\n nak: 21,\n syn: 22,\n etb: 23,\n can: 24,\n em: 25,\n sub: 26,\n esc: 27,\n fs: 28,\n gs: 29,\n rs: 30,\n us: 31,\n space: 32,\n exclamationMark: 33,\n quotationMark: 34,\n numberSign: 35,\n dollarSign: 36,\n percentSign: 37,\n ampersand: 38,\n apostrophe: 39,\n leftParenthesis: 40,\n rightParenthesis: 41,\n asterisk: 42,\n plusSign: 43,\n comma: 44,\n dash: 45,\n dot: 46,\n slash: 47,\n digit0: 48,\n digit1: 49,\n digit2: 50,\n digit3: 51,\n digit4: 52,\n digit5: 53,\n digit6: 54,\n digit7: 55,\n digit8: 56,\n digit9: 57,\n colon: 58,\n semicolon: 59,\n lessThan: 60,\n equalsTo: 61,\n greaterThan: 62,\n questionMark: 63,\n atSign: 64,\n uppercaseA: 65,\n uppercaseB: 66,\n uppercaseC: 67,\n uppercaseD: 68,\n uppercaseE: 69,\n uppercaseF: 70,\n uppercaseG: 71,\n uppercaseH: 72,\n uppercaseI: 73,\n uppercaseJ: 74,\n uppercaseK: 75,\n uppercaseL: 76,\n uppercaseM: 77,\n uppercaseN: 78,\n uppercaseO: 79,\n uppercaseP: 80,\n uppercaseQ: 81,\n uppercaseR: 82,\n uppercaseS: 83,\n uppercaseT: 84,\n uppercaseU: 85,\n uppercaseV: 86,\n uppercaseW: 87,\n uppercaseX: 88,\n uppercaseY: 89,\n uppercaseZ: 90,\n leftSquareBracket: 91,\n backslash: 92,\n rightSquareBracket: 93,\n caret: 94,\n underscore: 95,\n graveAccent: 96,\n lowercaseA: 97,\n lowercaseB: 98,\n lowercaseC: 99,\n lowercaseD: 100,\n lowercaseE: 101,\n lowercaseF: 102,\n lowercaseG: 103,\n lowercaseH: 104,\n lowercaseI: 105,\n lowercaseJ: 106,\n lowercaseK: 107,\n lowercaseL: 108,\n lowercaseM: 109,\n lowercaseN: 110,\n lowercaseO: 111,\n lowercaseP: 112,\n lowercaseQ: 113,\n lowercaseR: 114,\n lowercaseS: 115,\n lowercaseT: 116,\n lowercaseU: 117,\n lowercaseV: 118,\n lowercaseW: 119,\n lowercaseX: 120,\n lowercaseY: 121,\n lowercaseZ: 122,\n leftCurlyBrace: 123,\n verticalBar: 124,\n rightCurlyBrace: 125,\n tilde: 126,\n del: 127,\n degree: 176,\n byteOrderMarker: 65279,\n replacementCharacter: 65533\n};\nconst underlineTokenize = (effects, ok, nok) => {\n const inside = (code2) => {\n if (code2 === codes.carriageReturn || code2 === codes.lineFeed || code2 === codes.carriageReturnLineFeed || code2 === codes.eof) {\n return nok(code2);\n }\n if (code2 === codes.backslash) {\n effects.consume(code2);\n return insideEscape;\n }\n if (code2 === codes.degree) {\n effects.exit(\"underlineContent\");\n effects.enter(\"underlineMarker\");\n effects.consume(code2);\n effects.exit(\"underlineMarker\");\n effects.exit(\"underline\");\n return ok;\n }\n effects.consume(code2);\n return inside;\n };\n const insideEscape = (code2) => {\n if (code2 === codes.backslash || code2 === codes.degree) {\n effects.consume(code2);\n return inside;\n }\n return inside(code2);\n };\n const begin = (code2) => code2 === codes.degree ? nok(code2) : inside(code2);\n return (code2) => {\n effects.enter(\"underline\");\n effects.enter(\"underlineMarker\");\n effects.consume(code2);\n effects.exit(\"underlineMarker\");\n effects.enter(\"underlineContent\", { contentType: \"string\" });\n return begin;\n };\n};\nconst underlineConstruct = { name: \"underline\", tokenize: underlineTokenize };\nconst underline = { text: { 176: underlineConstruct } };\nconst underlineHtml = {\n enter: {\n underline() {\n this.tag(\"<u>\");\n }\n },\n exit: {\n underline() {\n this.tag(\"</u>\");\n }\n }\n};\nconst usertagTokenize = (effects, ok, nok) => {\n const inside = (code2) => {\n if (code2 === codes.carriageReturn || code2 === codes.lineFeed || code2 === codes.carriageReturnLineFeed || code2 === codes.eof) {\n return nok(code2);\n }\n if (code2 === codes.backslash) {\n effects.consume(code2);\n return insideEscape;\n }\n if (code2 === codes.greaterThan) {\n effects.exit(\"usertagContent\");\n effects.enter(\"usertagMarker\");\n effects.consume(code2);\n effects.exit(\"usertagMarker\");\n effects.exit(\"usertag\");\n return ok;\n }\n effects.consume(code2);\n return inside;\n };\n const insideEscape = (code2) => {\n if (code2 === codes.backslash || code2 === codes.greaterThan) {\n effects.consume(code2);\n return inside;\n }\n return inside(code2);\n };\n const begin = (code2) => {\n if (code2 === codes.atSign) {\n effects.consume(code2);\n effects.exit(\"usertagMarker\");\n effects.enter(\"usertagContent\");\n return inside;\n }\n return nok(code2);\n };\n return (code2) => {\n effects.enter(\"usertag\");\n effects.enter(\"usertagMarker\");\n effects.consume(code2);\n return begin;\n };\n};\nconst usertagConstruct = { name: \"usertag\", tokenize: usertagTokenize };\nconst usertag = { text: { 60: usertagConstruct } };\nconst usertagHtml = (users) => ({\n exit: {\n usertagContent(token) {\n const userId = this.sliceSerialize(token);\n this.tag(`<span class=\"vac-text-tag\" data-user-id=\"${userId}\">`);\n const user = users.find((user2) => user2._id === userId);\n this.raw(`@${this.encode(user ? user.username : userId)}`);\n this.tag(\"</span>\");\n }\n }\n});\nvar markdown = (text2, { textFormatting }) => {\n if (textFormatting) {\n let gfmDisabled = [];\n if (!textFormatting.linkify) {\n gfmDisabled = [\"literalAutolink\", \"literalAutolinkEmail\"];\n }\n const markdown2 = micromark(\n text2.replaceAll(\"<usertag>\", \"<@\").replaceAll(\"</usertag>\", \">\"),\n {\n extensions: [\n {\n ...gfm(),\n disable: { null: gfmDisabled }\n },\n underline,\n usertag\n ],\n htmlExtensions: [\n gfmHtml(),\n underlineHtml,\n usertagHtml(textFormatting.users)\n ]\n }\n );\n if (textFormatting.singleLine) {\n const element2 = document.createElement(\"div\");\n element2.innerHTML = markdown2;\n return [\n {\n types: [],\n value: element2.innerText\n }\n ];\n }\n return [\n {\n types: [\"markdown\"],\n value: markdown2\n }\n ];\n }\n return [\n {\n types: [],\n value: text2\n }\n ];\n};\nconst IMAGE_TYPES = [\"png\", \"jpg\", \"jpeg\", \"webp\", \"svg\", \"gif\"];\nconst VIDEO_TYPES = [\"mp4\", \"video/ogg\", \"webm\", \"quicktime\"];\nconst AUDIO_TYPES = [\"mp3\", \"audio/ogg\", \"wav\", \"mpeg\"];\nconst _sfc_main$n = {\n name: \"FormatMessage\",\n components: { SvgIcon },\n props: {\n messageId: { type: String, default: \"\" },\n roomId: { type: String, default: \"\" },\n roomList: { type: Boolean, default: false },\n content: { type: [String, Number], required: true },\n deleted: { type: Boolean, default: false },\n users: { type: Array, default: () => [] },\n linkify: { type: Boolean, default: true },\n singleLine: { type: Boolean, default: false },\n reply: { type: Boolean, default: false },\n textFormatting: { type: Object, required: true },\n textMessages: { type: Object, default: () => {\n } },\n linkOptions: { type: Object, required: true }\n },\n emits: [\"open-user-tag\"],\n computed: {\n parsedMessage() {\n if (this.deleted) {\n return [{ value: this.textMessages.MESSAGE_DELETED }];\n }\n let options;\n if (!this.textFormatting.disabled) {\n options = {\n textFormatting: {\n linkify: this.linkify,\n linkOptions: this.linkOptions,\n singleLine: this.singleLine,\n reply: this.reply,\n users: this.users,\n ...this.textFormatting\n }\n };\n } else {\n options = {};\n }\n const message = markdown(this.content, options);\n message.forEach((m) => {\n m.markdown = this.checkType(m, \"markdown\");\n m.tag = this.checkType(m, \"tag\");\n m.image = this.checkImageType(m);\n });\n return message;\n }\n },\n methods: {\n checkType(message, type) {\n return message.types && message.types.indexOf(type) !== -1;\n },\n checkImageType(message) {\n let index = message.value.lastIndexOf(\".\");\n const slashIndex = message.value.lastIndexOf(\"/\");\n if (slashIndex > index)\n index = -1;\n const type = message.value.substring(index + 1, message.value.length);\n const isMedia = index > 0 && IMAGE_TYPES.some((t) => type.toLowerCase().includes(t));\n if (isMedia)\n this.setImageSize(message);\n return isMedia;\n },\n setImageSize(message) {\n const image = new Image();\n image.src = message.value;\n image.addEventListener(\"load\", onLoad);\n function onLoad(img) {\n const ratio = img.path[0].width / 150;\n message.height = Math.round(img.path[0].height / ratio) + \"px\";\n image.removeEventListener(\"load\", onLoad);\n }\n },\n openTag(event) {\n const userId = event.target.getAttribute(\"data-user-id\");\n if (!this.singleLine && userId) {\n const user = this.users.find((u) => String(u._id) === userId);\n this.$emit(\"open-user-tag\", user);\n }\n }\n }\n};\nconst _hoisted_1$n = [\"innerHTML\"];\nconst _hoisted_2$k = { class: \"vac-image-link-container\" };\nconst _hoisted_3$h = { class: \"vac-image-link-message\" };\nfunction _sfc_render$n(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"vac-format-message-wrapper\", { \"vac-text-ellipsis\": $props.singleLine }])\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.parsedMessage, (message, i) => {\n return openBlock(), createElementBlock(Fragment, { key: i }, [\n message.markdown ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: \"markdown\",\n onClick: _cache[0] || (_cache[0] = (...args) => $options.openTag && $options.openTag(...args)),\n innerHTML: message.value\n }, null, 8, _hoisted_1$n)) : (openBlock(), createElementBlock(\"div\", {\n key: 1,\n class: normalizeClass([\"vac-format-container\", { \"vac-text-ellipsis\": $props.singleLine }])\n }, [\n (openBlock(), createBlock(resolveDynamicComponent(message.url ? \"a\" : \"span\"), {\n class: normalizeClass({\n \"vac-text-ellipsis\": $props.singleLine,\n \"vac-text-tag\": !$props.singleLine && !$props.reply && message.tag\n }),\n href: message.href,\n target: message.href ? $props.linkOptions.target : null,\n rel: message.href ? $props.linkOptions.rel : null\n }, {\n default: withCtx(() => [\n $props.deleted ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n renderSlot(\n _ctx.$slots,\n $props.roomList ? \"deleted-icon-room_\" + $props.roomId : \"deleted-icon_\" + $props.messageId,\n {},\n () => [\n createVNode(_component_svg_icon, {\n name: \"deleted\",\n class: normalizeClass([\"vac-icon-deleted\", { \"vac-icon-deleted-room\": $props.roomList }])\n }, null, 8, [\"class\"])\n ]\n ),\n createTextVNode(\" \" + toDisplayString($props.textMessages.MESSAGE_DELETED), 1)\n ], 64)) : message.url && message.image ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [\n createBaseVNode(\"div\", _hoisted_2$k, [\n createBaseVNode(\"div\", {\n class: \"vac-image-link\",\n style: normalizeStyle({\n \"background-image\": `url('${message.value}')`,\n height: message.height\n })\n }, null, 4)\n ]),\n createBaseVNode(\"div\", _hoisted_3$h, toDisplayString(message.value), 1)\n ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 2 }, [\n createTextVNode(toDisplayString(message.value), 1)\n ], 64))\n ]),\n _: 2\n }, 1032, [\"class\", \"href\", \"target\", \"rel\"]))\n ], 2))\n ], 64);\n }), 128))\n ], 2);\n}\nvar FormatMessage = /* @__PURE__ */ _export_sfc(_sfc_main$n, [[\"render\", _sfc_render$n]]);\nconst HANDLERS_PROPERTY = \"__v-click-outside\";\nconst HAS_WINDOWS = typeof window !== \"undefined\";\nconst HAS_NAVIGATOR = typeof navigator !== \"undefined\";\nconst IS_TOUCH = HAS_WINDOWS && (\"ontouchstart\" in window || HAS_NAVIGATOR && navigator.msMaxTouchPoints > 0);\nconst EVENTS = IS_TOUCH ? [\"touchstart\"] : [\"click\"];\nconst processDirectiveArguments = (bindingValue) => {\n const isFunction2 = typeof bindingValue === \"function\";\n if (!isFunction2 && typeof bindingValue !== \"object\") {\n throw new Error(\n \"v-click-outside: Binding value must be a function or an object\"\n );\n }\n return {\n handler: isFunction2 ? bindingValue : bindingValue.handler,\n middleware: bindingValue.middleware || ((item) => item),\n events: bindingValue.events || EVENTS,\n isActive: !(bindingValue.isActive === false),\n detectIframe: !(bindingValue.detectIframe === false),\n capture: Boolean(bindingValue.capture)\n };\n};\nconst execHandler = ({ event, handler, middleware }) => {\n if (middleware(event)) {\n handler(event);\n }\n};\nconst onFauxIframeClick = ({ el, event, handler, middleware }) => {\n setTimeout(() => {\n const { activeElement } = document;\n if (activeElement && activeElement.tagName === \"IFRAME\" && !el.contains(activeElement)) {\n execHandler({ event, handler, middleware });\n }\n }, 0);\n};\nconst onEvent = ({ el, event, handler, middleware }) => {\n const path2 = event.path || event.composedPath && event.composedPath();\n const isClickOutside = path2 ? path2.indexOf(el) < 0 : !el.contains(event.target);\n if (!isClickOutside) {\n return;\n }\n execHandler({ event, handler, middleware });\n};\nconst beforeMount = (el, { value }) => {\n const {\n events,\n handler,\n middleware,\n isActive,\n detectIframe,\n capture\n } = processDirectiveArguments(value);\n if (!isActive) {\n return;\n }\n el[HANDLERS_PROPERTY] = events.map((eventName) => ({\n event: eventName,\n srcTarget: document.documentElement,\n handler: (event) => onEvent({ el, event, handler, middleware }),\n capture\n }));\n if (detectIframe) {\n const detectIframeEvent = {\n event: \"blur\",\n srcTarget: window,\n handler: (event) => onFauxIframeClick({ el, event, handler, middleware }),\n capture\n };\n el[HANDLERS_PROPERTY] = [...el[HANDLERS_PROPERTY], detectIframeEvent];\n }\n el[HANDLERS_PROPERTY].forEach(\n ({ event, srcTarget, handler: thisHandler }) => setTimeout(() => {\n if (!el[HANDLERS_PROPERTY]) {\n return;\n }\n srcTarget.addEventListener(event, thisHandler, capture);\n }, 0)\n );\n};\nconst unmounted = (el) => {\n const handlers = el[HANDLERS_PROPERTY] || [];\n handlers.forEach(\n ({ event, srcTarget, handler, capture }) => srcTarget.removeEventListener(event, handler, capture)\n );\n delete el[HANDLERS_PROPERTY];\n};\nconst updated = (el, { value, oldValue }) => {\n if (JSON.stringify(value) === JSON.stringify(oldValue)) {\n return;\n }\n unmounted(el);\n beforeMount(el, { value });\n};\nconst directive = {\n beforeMount,\n updated,\n unmounted\n};\nvar vClickOutside = HAS_WINDOWS ? directive : {};\nvar typingText = (room, currentUserId, textMessages) => {\n if (room.typingUsers && room.typingUsers.length) {\n const typingUsers = room.users.filter((user) => {\n if (user._id === currentUserId)\n return;\n if (room.typingUsers.indexOf(user._id) === -1)\n return;\n if (user.status && user.status.state === \"offline\")\n return;\n return true;\n });\n if (!typingUsers.length)\n return;\n if (room.users.length === 2) {\n return textMessages.IS_TYPING;\n } else {\n return typingUsers.map((user) => user.username).join(\", \") + \" \" + textMessages.IS_TYPING;\n }\n }\n};\nfunction checkMediaType(types, file) {\n if (!file || !file.type)\n return;\n return types.some((t) => file.type.toLowerCase().includes(t));\n}\nfunction isImageFile(file) {\n return checkMediaType(IMAGE_TYPES, file);\n}\nfunction isVideoFile(file) {\n return checkMediaType(VIDEO_TYPES, file);\n}\nfunction isImageVideoFile(file) {\n return checkMediaType(IMAGE_TYPES, file) || checkMediaType(VIDEO_TYPES, file);\n}\nfunction isAudioFile(file) {\n return checkMediaType(AUDIO_TYPES, file);\n}\nconst _sfc_main$m = {\n name: \"RoomsContent\",\n components: {\n SvgIcon,\n FormatMessage\n },\n directives: {\n clickOutside: vClickOutside\n },\n props: {\n currentUserId: { type: [String, Number], required: true },\n room: { type: Object, required: true },\n textFormatting: { type: Object, required: true },\n linkOptions: { type: Object, required: true },\n textMessages: { type: Object, required: true },\n roomActions: { type: Array, required: true }\n },\n emits: [\"room-action-handler\"],\n data() {\n return {\n roomMenuOpened: null\n };\n },\n computed: {\n getLastMessage() {\n const isTyping = this.typingUsers;\n if (isTyping)\n return isTyping;\n const content2 = this.room.lastMessage.content;\n if (this.room.users.length <= 2) {\n return content2;\n }\n const user = this.room.users.find(\n (user2) => user2._id === this.room.lastMessage.senderId\n );\n if (this.room.lastMessage.username) {\n return `${this.room.lastMessage.username} - ${content2}`;\n } else if (!user || user._id === this.currentUserId) {\n return content2;\n }\n return `${user.username} - ${content2}`;\n },\n userStatus() {\n if (!this.room.users || this.room.users.length !== 2)\n return;\n const user = this.room.users.find((u) => u._id !== this.currentUserId);\n if (user && user.status)\n return user.status.state;\n return null;\n },\n typingUsers() {\n return typingText(this.room, this.currentUserId, this.textMessages);\n },\n isMessageCheckmarkVisible() {\n return !this.typingUsers && this.room.lastMessage && !this.room.lastMessage.deleted && this.room.lastMessage.senderId === this.currentUserId && (this.room.lastMessage.saved || this.room.lastMessage.distributed || this.room.lastMessage.seen);\n },\n formattedDuration() {\n var _a, _b;\n const file = (_b = (_a = this.room.lastMessage) == null ? void 0 : _a.files) == null ? void 0 : _b[0];\n if (file) {\n if (!file.duration) {\n return `${file.name}.${file.extension}`;\n }\n let s = Math.floor(file.duration);\n return (s - (s %= 60)) / 60 + (s > 9 ? \":\" : \":0\") + s;\n }\n return \"\";\n },\n isAudio() {\n return this.room.lastMessage.files ? isAudioFile(this.room.lastMessage.files[0]) : false;\n }\n },\n methods: {\n roomActionHandler(action) {\n this.closeRoomMenu();\n this.$emit(\"room-action-handler\", { action, roomId: this.room.roomId });\n },\n closeRoomMenu() {\n this.roomMenuOpened = null;\n }\n }\n};\nconst _hoisted_1$m = { class: \"vac-room-container\" };\nconst _hoisted_2$j = { class: \"vac-name-container vac-text-ellipsis\" };\nconst _hoisted_3$g = { class: \"vac-title-container\" };\nconst _hoisted_4$f = { class: \"vac-room-name vac-text-ellipsis\" };\nconst _hoisted_5$a = {\n key: 1,\n class: \"vac-text-date\"\n};\nconst _hoisted_6$6 = { key: 0 };\nconst _hoisted_7$6 = {\n key: 1,\n class: \"vac-text-ellipsis\"\n};\nconst _hoisted_8$4 = {\n key: 3,\n class: \"vac-text-ellipsis\"\n};\nconst _hoisted_9$4 = { class: \"vac-room-options-container\" };\nconst _hoisted_10$4 = {\n key: 0,\n class: \"vac-badge-counter vac-room-badge\"\n};\nconst _hoisted_11$3 = {\n key: 0,\n class: \"vac-menu-options\"\n};\nconst _hoisted_12$3 = { class: \"vac-menu-list\" };\nconst _hoisted_13$1 = [\"onClick\"];\nfunction _sfc_render$m(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n const _component_format_message = resolveComponent(\"format-message\");\n const _directive_click_outside = resolveDirective(\"click-outside\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$m, [\n renderSlot(_ctx.$slots, \"room-list-item_\" + $props.room.roomId, {}, () => [\n renderSlot(_ctx.$slots, \"room-list-avatar_\" + $props.room.roomId, {}, () => [\n $props.room.avatar ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: \"vac-avatar\",\n style: normalizeStyle({ \"background-image\": `url('${$props.room.avatar}')` })\n }, null, 4)) : createCommentVNode(\"\", true)\n ]),\n createBaseVNode(\"div\", _hoisted_2$j, [\n createBaseVNode(\"div\", _hoisted_3$g, [\n $options.userStatus ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"vac-state-circle\", { \"vac-state-online\": $options.userStatus === \"online\" }])\n }, null, 2)) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"room-list-info_\" + $props.room.roomId, {}, () => [\n createBaseVNode(\"div\", _hoisted_4$f, toDisplayString($props.room.roomName), 1)\n ]),\n $props.room.lastMessage ? (openBlock(), createElementBlock(\"div\", _hoisted_5$a, toDisplayString($props.room.lastMessage.timestamp), 1)) : createCommentVNode(\"\", true)\n ]),\n createBaseVNode(\"div\", {\n class: normalizeClass([\"vac-text-last\", {\n \"vac-message-new\": $props.room.lastMessage && $props.room.lastMessage.new && !$options.typingUsers\n }])\n }, [\n $options.isMessageCheckmarkVisible ? (openBlock(), createElementBlock(\"span\", _hoisted_6$6, [\n renderSlot(_ctx.$slots, \"checkmark-icon_\" + $props.room.roomId, {}, () => [\n createVNode(_component_svg_icon, {\n name: $props.room.lastMessage.distributed ? \"double-checkmark\" : \"checkmark\",\n param: $props.room.lastMessage.seen ? \"seen\" : \"\",\n class: \"vac-icon-check\"\n }, null, 8, [\"name\", \"param\"])\n ])\n ])) : createCommentVNode(\"\", true),\n $props.room.lastMessage && !$props.room.lastMessage.deleted && $options.isAudio ? (openBlock(), createElementBlock(\"div\", _hoisted_7$6, [\n renderSlot(_ctx.$slots, \"microphone-icon_\" + $props.room.roomId, {}, () => [\n createVNode(_component_svg_icon, {\n name: \"microphone\",\n class: \"vac-icon-microphone\"\n })\n ]),\n createTextVNode(\" \" + toDisplayString($options.formattedDuration), 1)\n ])) : $props.room.lastMessage ? (openBlock(), createBlock(_component_format_message, {\n key: 2,\n \"message-id\": $props.room.lastMessage._id,\n \"room-id\": $props.room.roomId,\n \"room-list\": true,\n content: $options.getLastMessage,\n deleted: !!$props.room.lastMessage.deleted && !$options.typingUsers,\n users: $props.room.users,\n \"text-messages\": $props.textMessages,\n linkify: false,\n \"text-formatting\": $props.textFormatting,\n \"link-options\": $props.linkOptions,\n \"single-line\": true\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"message-id\", \"room-id\", \"content\", \"deleted\", \"users\", \"text-messages\", \"text-formatting\", \"link-options\"])) : createCommentVNode(\"\", true),\n !$props.room.lastMessage && $options.typingUsers ? (openBlock(), createElementBlock(\"div\", _hoisted_8$4, toDisplayString($options.typingUsers), 1)) : createCommentVNode(\"\", true),\n createBaseVNode(\"div\", _hoisted_9$4, [\n $props.room.unreadCount ? (openBlock(), createElementBlock(\"div\", _hoisted_10$4, toDisplayString($props.room.unreadCount), 1)) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"room-list-options_\" + $props.room.roomId, {}, () => [\n $props.roomActions.length ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: \"vac-svg-button vac-list-room-options\",\n onClick: _cache[0] || (_cache[0] = withModifiers(($event) => $data.roomMenuOpened = $props.room.roomId, [\"stop\"]))\n }, [\n renderSlot(_ctx.$slots, \"room-list-options-icon_\" + $props.room.roomId, {}, () => [\n createVNode(_component_svg_icon, {\n name: \"dropdown\",\n param: \"room\"\n })\n ])\n ])) : createCommentVNode(\"\", true),\n $props.roomActions.length ? (openBlock(), createBlock(Transition, {\n key: 1,\n name: \"vac-slide-left\"\n }, {\n default: withCtx(() => [\n $data.roomMenuOpened === $props.room.roomId ? withDirectives((openBlock(), createElementBlock(\"div\", _hoisted_11$3, [\n createBaseVNode(\"div\", _hoisted_12$3, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($props.roomActions, (action) => {\n return openBlock(), createElementBlock(\"div\", {\n key: action.name\n }, [\n createBaseVNode(\"div\", {\n class: \"vac-menu-item\",\n onClick: withModifiers(($event) => $options.roomActionHandler(action), [\"stop\"])\n }, toDisplayString(action.title), 9, _hoisted_13$1)\n ]);\n }), 128))\n ])\n ])), [\n [_directive_click_outside, $options.closeRoomMenu]\n ]) : createCommentVNode(\"\", true)\n ]),\n _: 1\n })) : createCommentVNode(\"\", true)\n ])\n ])\n ], 2)\n ])\n ])\n ]);\n}\nvar RoomContent = /* @__PURE__ */ _export_sfc(_sfc_main$m, [[\"render\", _sfc_render$m]]);\nvar filteredItems = (items, prop, val, startsWith = false) => {\n if (!val || val === \"\")\n return items;\n return items.filter((v) => {\n if (startsWith)\n return formatString(v[prop]).startsWith(formatString(val));\n return formatString(v[prop]).includes(formatString(val));\n });\n};\nfunction formatString(string2) {\n return string2.toLowerCase().normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\n}\nconst _sfc_main$l = {\n name: \"RoomsList\",\n components: {\n Loader,\n RoomsSearch,\n RoomContent\n },\n props: {\n currentUserId: { type: [String, Number], required: true },\n textMessages: { type: Object, required: true },\n showRoomsList: { type: Boolean, required: true },\n showSearch: { type: Boolean, required: true },\n showAddRoom: { type: Boolean, required: true },\n textFormatting: { type: Object, required: true },\n linkOptions: { type: Object, required: true },\n isMobile: { type: Boolean, required: true },\n rooms: { type: Array, required: true },\n loadingRooms: { type: Boolean, required: true },\n roomsLoaded: { type: Boolean, required: true },\n room: { type: Object, required: true },\n customSearchRoomEnabled: { type: [Boolean, String], default: false },\n roomActions: { type: Array, required: true },\n scrollDistance: { type: Number, required: true }\n },\n emits: [\n \"add-room\",\n \"search-room\",\n \"room-action-handler\",\n \"loading-more-rooms\",\n \"fetch-room\",\n \"fetch-more-rooms\"\n ],\n data() {\n return {\n filteredRooms: this.rooms || [],\n observer: null,\n showLoader: true,\n loadingMoreRooms: false,\n selectedRoomId: \"\"\n };\n },\n watch: {\n rooms: {\n deep: true,\n handler(newVal, oldVal) {\n this.filteredRooms = newVal;\n if (newVal.length !== oldVal.length || this.roomsLoaded) {\n this.loadingMoreRooms = false;\n }\n }\n },\n loadingRooms(val) {\n if (!val) {\n setTimeout(() => this.initIntersectionObserver());\n }\n },\n loadingMoreRooms(val) {\n this.$emit(\"loading-more-rooms\", val);\n },\n roomsLoaded: {\n immediate: true,\n handler(val) {\n if (val) {\n this.loadingMoreRooms = false;\n if (!this.loadingRooms) {\n this.showLoader = false;\n }\n }\n }\n },\n room: {\n immediate: true,\n handler(val) {\n if (val && !this.isMobile)\n this.selectedRoomId = val.roomId;\n }\n }\n },\n methods: {\n initIntersectionObserver() {\n if (this.observer) {\n this.showLoader = true;\n this.observer.disconnect();\n }\n const loader = this.$el.querySelector(\"#infinite-loader-rooms\");\n if (loader) {\n const options = {\n root: this.$el.querySelector(\"#rooms-list\"),\n rootMargin: `${this.scrollDistance}px`,\n threshold: 0\n };\n this.observer = new IntersectionObserver((entries) => {\n if (entries[0].isIntersecting) {\n this.loadMoreRooms();\n }\n }, options);\n this.observer.observe(loader);\n }\n },\n searchRoom(ev) {\n if (this.customSearchRoomEnabled) {\n this.$emit(\"search-room\", ev.target.value);\n } else {\n this.filteredRooms = filteredItems(\n this.rooms,\n \"roomName\",\n ev.target.value\n );\n }\n },\n openRoom(room) {\n if (room.roomId === this.room.roomId && !this.isMobile)\n return;\n if (!this.isMobile)\n this.selectedRoomId = room.roomId;\n this.$emit(\"fetch-room\", { room });\n },\n loadMoreRooms() {\n if (this.loadingMoreRooms)\n return;\n if (this.roomsLoaded) {\n this.loadingMoreRooms = false;\n this.showLoader = false;\n return;\n }\n this.$emit(\"fetch-more-rooms\");\n this.loadingMoreRooms = true;\n }\n }\n};\nconst _hoisted_1$l = {\n key: 0,\n class: \"vac-rooms-empty\"\n};\nconst _hoisted_2$i = {\n key: 1,\n id: \"rooms-list\",\n class: \"vac-room-list\"\n};\nconst _hoisted_3$f = [\"id\", \"onClick\"];\nconst _hoisted_4$e = {\n key: 0,\n id: \"infinite-loader-rooms\"\n};\nfunction _sfc_render$l(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_rooms_search = resolveComponent(\"rooms-search\");\n const _component_loader = resolveComponent(\"loader\");\n const _component_room_content = resolveComponent(\"room-content\");\n return withDirectives((openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"vac-rooms-container\", {\n \"vac-rooms-container-full\": $props.isMobile,\n \"vac-app-border-r\": !$props.isMobile\n }])\n }, [\n renderSlot(_ctx.$slots, \"rooms-header\"),\n renderSlot(_ctx.$slots, \"rooms-list-search\", {}, () => [\n createVNode(_component_rooms_search, {\n rooms: $props.rooms,\n \"loading-rooms\": $props.loadingRooms,\n \"text-messages\": $props.textMessages,\n \"show-search\": $props.showSearch,\n \"show-add-room\": $props.showAddRoom,\n onSearchRoom: $options.searchRoom,\n onAddRoom: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"add-room\"))\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"rooms\", \"loading-rooms\", \"text-messages\", \"show-search\", \"show-add-room\", \"onSearchRoom\"])\n ]),\n createVNode(_component_loader, {\n show: $props.loadingRooms,\n type: \"rooms\"\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"show\"]),\n !$props.loadingRooms && !$props.rooms.length ? (openBlock(), createElementBlock(\"div\", _hoisted_1$l, [\n renderSlot(_ctx.$slots, \"rooms-empty\", {}, () => [\n createTextVNode(toDisplayString($props.textMessages.ROOMS_EMPTY), 1)\n ])\n ])) : createCommentVNode(\"\", true),\n !$props.loadingRooms ? (openBlock(), createElementBlock(\"div\", _hoisted_2$i, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($data.filteredRooms, (fRoom) => {\n return openBlock(), createElementBlock(\"div\", {\n id: fRoom.roomId,\n key: fRoom.roomId,\n class: normalizeClass([\"vac-room-item\", { \"vac-room-selected\": $data.selectedRoomId === fRoom.roomId }]),\n onClick: ($event) => $options.openRoom(fRoom)\n }, [\n createVNode(_component_room_content, {\n \"current-user-id\": $props.currentUserId,\n room: fRoom,\n \"text-formatting\": $props.textFormatting,\n \"link-options\": $props.linkOptions,\n \"text-messages\": $props.textMessages,\n \"room-actions\": $props.roomActions,\n onRoomActionHandler: _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"room-action-handler\", $event))\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"current-user-id\", \"room\", \"text-formatting\", \"link-options\", \"text-messages\", \"room-actions\"])\n ], 10, _hoisted_3$f);\n }), 128)),\n createVNode(Transition, { name: \"vac-fade-message\" }, {\n default: withCtx(() => [\n $props.rooms.length && !$props.loadingRooms ? (openBlock(), createElementBlock(\"div\", _hoisted_4$e, [\n createVNode(_component_loader, {\n show: $data.showLoader,\n infinite: true,\n type: \"infinite-rooms\"\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"show\"])\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 3\n })\n ])) : createCommentVNode(\"\", true)\n ], 2)), [\n [vShow, $props.showRoomsList]\n ]);\n}\nvar RoomsList = /* @__PURE__ */ _export_sfc(_sfc_main$l, [[\"render\", _sfc_render$l]]);\nconst _sfc_main$k = {\n name: \"RoomHeader\",\n components: {\n SvgIcon\n },\n directives: {\n clickOutside: vClickOutside\n },\n props: {\n currentUserId: { type: [String, Number], required: true },\n textMessages: { type: Object, required: true },\n singleRoom: { type: Boolean, required: true },\n showRoomsList: { type: Boolean, required: true },\n isMobile: { type: Boolean, required: true },\n roomInfoEnabled: { type: Boolean, required: true },\n menuActions: { type: Array, required: true },\n room: { type: Object, required: true },\n messageSelectionEnabled: { type: Boolean, required: true },\n messageSelectionActions: { type: Array, required: true },\n selectedMessagesTotal: { type: Number, required: true }\n },\n emits: [\n \"toggle-rooms-list\",\n \"room-info\",\n \"menu-action-handler\",\n \"cancel-message-selection\",\n \"message-selection-action-handler\"\n ],\n data() {\n return {\n menuOpened: false,\n messageSelectionAnimationEnded: true\n };\n },\n computed: {\n typingUsers() {\n return typingText(this.room, this.currentUserId, this.textMessages);\n },\n userStatus() {\n if (!this.room.users || this.room.users.length !== 2)\n return;\n const user = this.room.users.find((u) => u._id !== this.currentUserId);\n if (!(user == null ? void 0 : user.status))\n return;\n let text2 = \"\";\n if (user.status.state === \"online\") {\n text2 = this.textMessages.IS_ONLINE;\n } else if (user.status.lastChanged) {\n text2 = this.textMessages.LAST_SEEN + user.status.lastChanged;\n }\n return text2;\n }\n },\n watch: {\n messageSelectionEnabled(val) {\n if (val) {\n this.messageSelectionAnimationEnded = false;\n } else {\n setTimeout(() => {\n this.messageSelectionAnimationEnded = true;\n }, 300);\n }\n }\n },\n methods: {\n menuActionHandler(action) {\n this.closeMenu();\n this.$emit(\"menu-action-handler\", action);\n },\n closeMenu() {\n this.menuOpened = false;\n },\n messageSelectionActionHandler(action) {\n this.$emit(\"message-selection-action-handler\", action);\n }\n }\n};\nconst _hoisted_1$k = { class: \"vac-room-header vac-app-border-b\" };\nconst _hoisted_2$h = { class: \"vac-room-wrapper\" };\nconst _hoisted_3$e = {\n key: 0,\n class: \"vac-room-selection\"\n};\nconst _hoisted_4$d = [\"id\"];\nconst _hoisted_5$9 = [\"onClick\"];\nconst _hoisted_6$5 = { class: \"vac-selection-button-count\" };\nconst _hoisted_7$5 = { class: \"vac-text-ellipsis\" };\nconst _hoisted_8$3 = { class: \"vac-room-name vac-text-ellipsis\" };\nconst _hoisted_9$3 = {\n key: 0,\n class: \"vac-room-info vac-text-ellipsis\"\n};\nconst _hoisted_10$3 = {\n key: 1,\n class: \"vac-room-info vac-text-ellipsis\"\n};\nconst _hoisted_11$2 = {\n key: 0,\n class: \"vac-menu-options\"\n};\nconst _hoisted_12$2 = { class: \"vac-menu-list\" };\nconst _hoisted_13 = [\"onClick\"];\nfunction _sfc_render$k(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n const _directive_click_outside = resolveDirective(\"click-outside\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$k, [\n renderSlot(_ctx.$slots, \"room-header\", {}, () => [\n createBaseVNode(\"div\", _hoisted_2$h, [\n createVNode(Transition, { name: \"vac-slide-up\" }, {\n default: withCtx(() => [\n $props.messageSelectionEnabled ? (openBlock(), createElementBlock(\"div\", _hoisted_3$e, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($props.messageSelectionActions, (action) => {\n return openBlock(), createElementBlock(\"div\", {\n id: action.name,\n key: action.name\n }, [\n createBaseVNode(\"div\", {\n class: \"vac-selection-button\",\n onClick: ($event) => $options.messageSelectionActionHandler(action)\n }, [\n createTextVNode(toDisplayString(action.title) + \" \", 1),\n createBaseVNode(\"span\", _hoisted_6$5, toDisplayString($props.selectedMessagesTotal), 1)\n ], 8, _hoisted_5$9)\n ], 8, _hoisted_4$d);\n }), 128)),\n createBaseVNode(\"div\", {\n class: \"vac-selection-cancel vac-item-clickable\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"cancel-message-selection\"))\n }, toDisplayString($props.textMessages.CANCEL_SELECT_MESSAGE), 1)\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n !$props.messageSelectionEnabled && $data.messageSelectionAnimationEnded ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n !$props.singleRoom ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"vac-svg-button vac-toggle-button\", {\n \"vac-rotate-icon-init\": !$props.isMobile,\n \"vac-rotate-icon\": !$props.showRoomsList && !$props.isMobile\n }]),\n onClick: _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"toggle-rooms-list\"))\n }, [\n renderSlot(_ctx.$slots, \"toggle-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"toggle\" })\n ])\n ], 2)) : createCommentVNode(\"\", true),\n createBaseVNode(\"div\", {\n class: normalizeClass([\"vac-info-wrapper\", { \"vac-item-clickable\": $props.roomInfoEnabled }]),\n onClick: _cache[2] || (_cache[2] = ($event) => _ctx.$emit(\"room-info\"))\n }, [\n renderSlot(_ctx.$slots, \"room-header-avatar\", {}, () => [\n $props.room.avatar ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: \"vac-avatar\",\n style: normalizeStyle({ \"background-image\": `url('${$props.room.avatar}')` })\n }, null, 4)) : createCommentVNode(\"\", true)\n ]),\n renderSlot(_ctx.$slots, \"room-header-info\", {}, () => [\n createBaseVNode(\"div\", _hoisted_7$5, [\n createBaseVNode(\"div\", _hoisted_8$3, toDisplayString($props.room.roomName), 1),\n $options.typingUsers ? (openBlock(), createElementBlock(\"div\", _hoisted_9$3, toDisplayString($options.typingUsers), 1)) : (openBlock(), createElementBlock(\"div\", _hoisted_10$3, toDisplayString($options.userStatus), 1))\n ])\n ])\n ], 2),\n $props.room.roomId ? renderSlot(_ctx.$slots, \"room-options\", { key: 1 }, () => [\n $props.menuActions.length ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: \"vac-svg-button vac-room-options\",\n onClick: _cache[3] || (_cache[3] = ($event) => $data.menuOpened = !$data.menuOpened)\n }, [\n renderSlot(_ctx.$slots, \"menu-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"menu\" })\n ])\n ])) : createCommentVNode(\"\", true),\n $props.menuActions.length ? (openBlock(), createBlock(Transition, {\n key: 1,\n name: \"vac-slide-left\"\n }, {\n default: withCtx(() => [\n $data.menuOpened ? withDirectives((openBlock(), createElementBlock(\"div\", _hoisted_11$2, [\n createBaseVNode(\"div\", _hoisted_12$2, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($props.menuActions, (action) => {\n return openBlock(), createElementBlock(\"div\", {\n key: action.name\n }, [\n createBaseVNode(\"div\", {\n class: \"vac-menu-item\",\n onClick: ($event) => $options.menuActionHandler(action)\n }, toDisplayString(action.title), 9, _hoisted_13)\n ]);\n }), 128))\n ])\n ])), [\n [_directive_click_outside, $options.closeMenu]\n ]) : createCommentVNode(\"\", true)\n ]),\n _: 1\n })) : createCommentVNode(\"\", true)\n ]) : createCommentVNode(\"\", true)\n ], 64)) : createCommentVNode(\"\", true)\n ])\n ])\n ]);\n}\nvar RoomHeader = /* @__PURE__ */ _export_sfc(_sfc_main$k, [[\"render\", _sfc_render$k]]);\nfunction assertNonEmptyString(str) {\n if (typeof str !== \"string\" || !str) {\n throw new Error(\"expected a non-empty string, got: \" + str);\n }\n}\nfunction assertNumber(number) {\n if (typeof number !== \"number\") {\n throw new Error(\"expected a number, got: \" + number);\n }\n}\nconst DB_VERSION_CURRENT = 1;\nconst DB_VERSION_INITIAL = 1;\nconst STORE_EMOJI = \"emoji\";\nconst STORE_KEYVALUE = \"keyvalue\";\nconst STORE_FAVORITES = \"favorites\";\nconst FIELD_TOKENS = \"tokens\";\nconst INDEX_TOKENS = \"tokens\";\nconst FIELD_UNICODE = \"unicode\";\nconst INDEX_COUNT = \"count\";\nconst FIELD_GROUP = \"group\";\nconst FIELD_ORDER = \"order\";\nconst INDEX_GROUP_AND_ORDER = \"group-order\";\nconst KEY_ETAG = \"eTag\";\nconst KEY_URL = \"url\";\nconst KEY_PREFERRED_SKINTONE = \"skinTone\";\nconst MODE_READONLY = \"readonly\";\nconst MODE_READWRITE = \"readwrite\";\nconst INDEX_SKIN_UNICODE = \"skinUnicodes\";\nconst FIELD_SKIN_UNICODE = \"skinUnicodes\";\nconst DEFAULT_DATA_SOURCE$1 = \"https://cdn.jsdelivr.net/npm/emoji-picker-element-data@^1/en/emojibase/data.json\";\nconst DEFAULT_LOCALE$1 = \"en\";\nfunction uniqBy$1(arr, func) {\n const set2 = /* @__PURE__ */ new Set();\n const res = [];\n for (const item of arr) {\n const key = func(item);\n if (!set2.has(key)) {\n set2.add(key);\n res.push(item);\n }\n }\n return res;\n}\nfunction uniqEmoji(emojis) {\n return uniqBy$1(emojis, (_) => _.unicode);\n}\nfunction initialMigration(db) {\n function createObjectStore(name, keyPath, indexes) {\n const store = keyPath ? db.createObjectStore(name, { keyPath }) : db.createObjectStore(name);\n if (indexes) {\n for (const [indexName, [keyPath2, multiEntry]] of Object.entries(indexes)) {\n store.createIndex(indexName, keyPath2, { multiEntry });\n }\n }\n return store;\n }\n createObjectStore(STORE_KEYVALUE);\n createObjectStore(STORE_EMOJI, FIELD_UNICODE, {\n [INDEX_TOKENS]: [FIELD_TOKENS, true],\n [INDEX_GROUP_AND_ORDER]: [[FIELD_GROUP, FIELD_ORDER]],\n [INDEX_SKIN_UNICODE]: [FIELD_SKIN_UNICODE, true]\n });\n createObjectStore(STORE_FAVORITES, void 0, {\n [INDEX_COUNT]: [\"\"]\n });\n}\nconst openReqs = {};\nconst databaseCache = {};\nconst onCloseListeners = {};\nfunction handleOpenOrDeleteReq(resolve2, reject, req) {\n req.onerror = () => reject(req.error);\n req.onblocked = () => reject(new Error(\"IDB blocked\"));\n req.onsuccess = () => resolve2(req.result);\n}\nasync function createDatabase(dbName) {\n const db = await new Promise((resolve2, reject) => {\n const req = indexedDB.open(dbName, DB_VERSION_CURRENT);\n openReqs[dbName] = req;\n req.onupgradeneeded = (e) => {\n if (e.oldVersion < DB_VERSION_INITIAL) {\n initialMigration(req.result);\n }\n };\n handleOpenOrDeleteReq(resolve2, reject, req);\n });\n db.onclose = () => closeDatabase(dbName);\n return db;\n}\nfunction openDatabase(dbName) {\n if (!databaseCache[dbName]) {\n databaseCache[dbName] = createDatabase(dbName);\n }\n return databaseCache[dbName];\n}\nfunction dbPromise(db, storeName, readOnlyOrReadWrite, cb) {\n return new Promise((resolve2, reject) => {\n const txn = db.transaction(storeName, readOnlyOrReadWrite, { durability: \"relaxed\" });\n const store = typeof storeName === \"string\" ? txn.objectStore(storeName) : storeName.map((name) => txn.objectStore(name));\n let res;\n cb(store, txn, (result) => {\n res = result;\n });\n txn.oncomplete = () => resolve2(res);\n txn.onerror = () => reject(txn.error);\n });\n}\nfunction closeDatabase(dbName) {\n const req = openReqs[dbName];\n const db = req && req.result;\n if (db) {\n db.close();\n const listeners = onCloseListeners[dbName];\n if (listeners) {\n for (const listener of listeners) {\n listener();\n }\n }\n }\n delete openReqs[dbName];\n delete databaseCache[dbName];\n delete onCloseListeners[dbName];\n}\nfunction deleteDatabase(dbName) {\n return new Promise((resolve2, reject) => {\n closeDatabase(dbName);\n const req = indexedDB.deleteDatabase(dbName);\n handleOpenOrDeleteReq(resolve2, reject, req);\n });\n}\nfunction addOnCloseListener(dbName, listener) {\n let listeners = onCloseListeners[dbName];\n if (!listeners) {\n listeners = onCloseListeners[dbName] = [];\n }\n listeners.push(listener);\n}\nconst irregularEmoticons = /* @__PURE__ */ new Set([\n \":D\",\n \"XD\",\n \":'D\",\n \"O:)\",\n \":X\",\n \":P\",\n \";P\",\n \"XP\",\n \":L\",\n \":Z\",\n \":j\",\n \"8D\",\n \"XO\",\n \"8)\",\n \":B\",\n \":O\",\n \":S\",\n \":'o\",\n \"Dx\",\n \"X(\",\n \"D:\",\n \":C\",\n \">0)\",\n \":3\",\n \"</3\",\n \"<3\",\n \"\\\\M/\",\n \":E\",\n \"8#\"\n]);\nfunction extractTokens(str) {\n return str.split(/[\\s_]+/).map((word) => {\n if (!word.match(/\\w/) || irregularEmoticons.has(word)) {\n return word.toLowerCase();\n }\n return word.replace(/[)(:,]/g, \"\").replace(/’/g, \"'\").toLowerCase();\n }).filter(Boolean);\n}\nconst MIN_SEARCH_TEXT_LENGTH$1 = 2;\nfunction normalizeTokens(str) {\n return str.filter(Boolean).map((_) => _.toLowerCase()).filter((_) => _.length >= MIN_SEARCH_TEXT_LENGTH$1);\n}\nfunction transformEmojiData(emojiData) {\n const res = emojiData.map(({ annotation, emoticon, group, order, shortcodes, skins, tags, emoji, version: version2 }) => {\n const tokens = [...new Set(\n normalizeTokens([\n ...(shortcodes || []).map(extractTokens).flat(),\n ...tags.map(extractTokens).flat(),\n ...extractTokens(annotation),\n emoticon\n ])\n )].sort();\n const res2 = {\n annotation,\n group,\n order,\n tags,\n tokens,\n unicode: emoji,\n version: version2\n };\n if (emoticon) {\n res2.emoticon = emoticon;\n }\n if (shortcodes) {\n res2.shortcodes = shortcodes;\n }\n if (skins) {\n res2.skinTones = [];\n res2.skinUnicodes = [];\n res2.skinVersions = [];\n for (const { tone, emoji: emoji2, version: version3 } of skins) {\n res2.skinTones.push(tone);\n res2.skinUnicodes.push(emoji2);\n res2.skinVersions.push(version3);\n }\n }\n return res2;\n });\n return res;\n}\nfunction callStore(store, method, key, cb) {\n store[method](key).onsuccess = (e) => cb && cb(e.target.result);\n}\nfunction getIDB(store, key, cb) {\n callStore(store, \"get\", key, cb);\n}\nfunction getAllIDB(store, key, cb) {\n callStore(store, \"getAll\", key, cb);\n}\nfunction commit(txn) {\n if (txn.commit) {\n txn.commit();\n }\n}\nfunction minBy(array, func) {\n let minItem = array[0];\n for (let i = 1; i < array.length; i++) {\n const item = array[i];\n if (func(minItem) > func(item)) {\n minItem = item;\n }\n }\n return minItem;\n}\nfunction findCommonMembers(arrays, uniqByFunc) {\n const shortestArray = minBy(arrays, (_) => _.length);\n const results = [];\n for (const item of shortestArray) {\n if (!arrays.some((array) => array.findIndex((_) => uniqByFunc(_) === uniqByFunc(item)) === -1)) {\n results.push(item);\n }\n }\n return results;\n}\nasync function isEmpty(db) {\n return !await get(db, STORE_KEYVALUE, KEY_URL);\n}\nasync function hasData(db, url, eTag) {\n const [oldETag, oldUrl] = await Promise.all([KEY_ETAG, KEY_URL].map((key) => get(db, STORE_KEYVALUE, key)));\n return oldETag === eTag && oldUrl === url;\n}\nasync function doFullDatabaseScanForSingleResult(db, predicate) {\n const BATCH_SIZE = 50;\n return dbPromise(db, STORE_EMOJI, MODE_READONLY, (emojiStore, txn, cb) => {\n let lastKey;\n const processNextBatch = () => {\n emojiStore.getAll(lastKey && IDBKeyRange.lowerBound(lastKey, true), BATCH_SIZE).onsuccess = (e) => {\n const results = e.target.result;\n for (const result of results) {\n lastKey = result.unicode;\n if (predicate(result)) {\n return cb(result);\n }\n }\n if (results.length < BATCH_SIZE) {\n return cb();\n }\n processNextBatch();\n };\n };\n processNextBatch();\n });\n}\nasync function loadData(db, emojiData, url, eTag) {\n try {\n const transformedData = transformEmojiData(emojiData);\n await dbPromise(db, [STORE_EMOJI, STORE_KEYVALUE], MODE_READWRITE, ([emojiStore, metaStore], txn) => {\n let oldETag;\n let oldUrl;\n let todo = 0;\n function checkFetched() {\n if (++todo === 2) {\n onFetched();\n }\n }\n function onFetched() {\n if (oldETag === eTag && oldUrl === url) {\n return;\n }\n emojiStore.clear();\n for (const data of transformedData) {\n emojiStore.put(data);\n }\n metaStore.put(eTag, KEY_ETAG);\n metaStore.put(url, KEY_URL);\n commit(txn);\n }\n getIDB(metaStore, KEY_ETAG, (result) => {\n oldETag = result;\n checkFetched();\n });\n getIDB(metaStore, KEY_URL, (result) => {\n oldUrl = result;\n checkFetched();\n });\n });\n } finally {\n }\n}\nasync function getEmojiByGroup(db, group) {\n return dbPromise(db, STORE_EMOJI, MODE_READONLY, (emojiStore, txn, cb) => {\n const range = IDBKeyRange.bound([group, 0], [group + 1, 0], false, true);\n getAllIDB(emojiStore.index(INDEX_GROUP_AND_ORDER), range, cb);\n });\n}\nasync function getEmojiBySearchQuery(db, query) {\n const tokens = normalizeTokens(extractTokens(query));\n if (!tokens.length) {\n return [];\n }\n return dbPromise(db, STORE_EMOJI, MODE_READONLY, (emojiStore, txn, cb) => {\n const intermediateResults = [];\n const checkDone = () => {\n if (intermediateResults.length === tokens.length) {\n onDone();\n }\n };\n const onDone = () => {\n const results = findCommonMembers(intermediateResults, (_) => _.unicode);\n cb(results.sort((a, b) => a.order < b.order ? -1 : 1));\n };\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n const range = i === tokens.length - 1 ? IDBKeyRange.bound(token, token + \"\\uFFFF\", false, true) : IDBKeyRange.only(token);\n getAllIDB(emojiStore.index(INDEX_TOKENS), range, (result) => {\n intermediateResults.push(result);\n checkDone();\n });\n }\n });\n}\nasync function getEmojiByShortcode(db, shortcode) {\n const emojis = await getEmojiBySearchQuery(db, shortcode);\n if (!emojis.length) {\n const predicate = (_) => (_.shortcodes || []).includes(shortcode.toLowerCase());\n return await doFullDatabaseScanForSingleResult(db, predicate) || null;\n }\n return emojis.filter((_) => {\n const lowerShortcodes = (_.shortcodes || []).map((_2) => _2.toLowerCase());\n return lowerShortcodes.includes(shortcode.toLowerCase());\n })[0] || null;\n}\nasync function getEmojiByUnicode(db, unicode) {\n return dbPromise(db, STORE_EMOJI, MODE_READONLY, (emojiStore, txn, cb) => getIDB(emojiStore, unicode, (result) => {\n if (result) {\n return cb(result);\n }\n getIDB(emojiStore.index(INDEX_SKIN_UNICODE), unicode, (result2) => cb(result2 || null));\n }));\n}\nfunction get(db, storeName, key) {\n return dbPromise(db, storeName, MODE_READONLY, (store, txn, cb) => getIDB(store, key, cb));\n}\nfunction set(db, storeName, key, value) {\n return dbPromise(db, storeName, MODE_READWRITE, (store, txn) => {\n store.put(value, key);\n commit(txn);\n });\n}\nfunction incrementFavoriteEmojiCount(db, unicode) {\n return dbPromise(db, STORE_FAVORITES, MODE_READWRITE, (store, txn) => getIDB(store, unicode, (result) => {\n store.put((result || 0) + 1, unicode);\n commit(txn);\n }));\n}\nfunction getTopFavoriteEmoji(db, customEmojiIndex2, limit) {\n if (limit === 0) {\n return [];\n }\n return dbPromise(db, [STORE_FAVORITES, STORE_EMOJI], MODE_READONLY, ([favoritesStore, emojiStore], txn, cb) => {\n const results = [];\n favoritesStore.index(INDEX_COUNT).openCursor(void 0, \"prev\").onsuccess = (e) => {\n const cursor = e.target.result;\n if (!cursor) {\n return cb(results);\n }\n function addResult(result) {\n results.push(result);\n if (results.length === limit) {\n return cb(results);\n }\n cursor.continue();\n }\n const unicodeOrName = cursor.primaryKey;\n const custom = customEmojiIndex2.byName(unicodeOrName);\n if (custom) {\n return addResult(custom);\n }\n getIDB(emojiStore, unicodeOrName, (emoji) => {\n if (emoji) {\n return addResult(emoji);\n }\n cursor.continue();\n });\n };\n });\n}\nconst CODA_MARKER = \"\";\nfunction trie(arr, itemToTokens) {\n const map = /* @__PURE__ */ new Map();\n for (const item of arr) {\n const tokens = itemToTokens(item);\n for (const token of tokens) {\n let currentMap = map;\n for (let i = 0; i < token.length; i++) {\n const char = token.charAt(i);\n let nextMap = currentMap.get(char);\n if (!nextMap) {\n nextMap = /* @__PURE__ */ new Map();\n currentMap.set(char, nextMap);\n }\n currentMap = nextMap;\n }\n let valuesAtCoda = currentMap.get(CODA_MARKER);\n if (!valuesAtCoda) {\n valuesAtCoda = [];\n currentMap.set(CODA_MARKER, valuesAtCoda);\n }\n valuesAtCoda.push(item);\n }\n }\n const search2 = (query, exact) => {\n let currentMap = map;\n for (let i = 0; i < query.length; i++) {\n const char = query.charAt(i);\n const nextMap = currentMap.get(char);\n if (nextMap) {\n currentMap = nextMap;\n } else {\n return [];\n }\n }\n if (exact) {\n const results2 = currentMap.get(CODA_MARKER);\n return results2 || [];\n }\n const results = [];\n const queue2 = [currentMap];\n while (queue2.length) {\n const currentMap2 = queue2.shift();\n const entriesSortedByKey = [...currentMap2.entries()].sort((a, b) => a[0] < b[0] ? -1 : 1);\n for (const [key, value] of entriesSortedByKey) {\n if (key === CODA_MARKER) {\n results.push(...value);\n } else {\n queue2.push(value);\n }\n }\n }\n return results;\n };\n return search2;\n}\nconst requiredKeys$1 = [\n \"name\",\n \"url\"\n];\nfunction assertCustomEmojis(customEmojis) {\n const isArray2 = customEmojis && Array.isArray(customEmojis);\n const firstItemIsFaulty = isArray2 && customEmojis.length && (!customEmojis[0] || requiredKeys$1.some((key) => !(key in customEmojis[0])));\n if (!isArray2 || firstItemIsFaulty) {\n throw new Error(\"Custom emojis are in the wrong format\");\n }\n}\nfunction customEmojiIndex(customEmojis) {\n assertCustomEmojis(customEmojis);\n const sortByName = (a, b) => a.name.toLowerCase() < b.name.toLowerCase() ? -1 : 1;\n const all = customEmojis.sort(sortByName);\n const emojiToTokens = (emoji) => [...new Set((emoji.shortcodes || []).map((shortcode) => extractTokens(shortcode)).flat())];\n const searchTrie = trie(customEmojis, emojiToTokens);\n const searchByExactMatch = (_) => searchTrie(_, true);\n const searchByPrefix = (_) => searchTrie(_, false);\n const search2 = (query) => {\n const tokens = extractTokens(query);\n const intermediateResults = tokens.map((token, i) => (i < tokens.length - 1 ? searchByExactMatch : searchByPrefix)(token));\n return findCommonMembers(intermediateResults, (_) => _.name).sort(sortByName);\n };\n const shortcodeToEmoji = /* @__PURE__ */ new Map();\n const nameToEmoji = /* @__PURE__ */ new Map();\n for (const customEmoji of customEmojis) {\n nameToEmoji.set(customEmoji.name.toLowerCase(), customEmoji);\n for (const shortcode of customEmoji.shortcodes || []) {\n shortcodeToEmoji.set(shortcode.toLowerCase(), customEmoji);\n }\n }\n const byShortcode = (shortcode) => shortcodeToEmoji.get(shortcode.toLowerCase());\n const byName = (name) => nameToEmoji.get(name.toLowerCase());\n return {\n all,\n search: search2,\n byShortcode,\n byName\n };\n}\nfunction cleanEmoji(emoji) {\n if (!emoji) {\n return emoji;\n }\n delete emoji.tokens;\n if (emoji.skinTones) {\n const len = emoji.skinTones.length;\n emoji.skins = Array(len);\n for (let i = 0; i < len; i++) {\n emoji.skins[i] = {\n tone: emoji.skinTones[i],\n unicode: emoji.skinUnicodes[i],\n version: emoji.skinVersions[i]\n };\n }\n delete emoji.skinTones;\n delete emoji.skinUnicodes;\n delete emoji.skinVersions;\n }\n return emoji;\n}\nfunction warnETag(eTag) {\n if (!eTag) {\n console.warn(\"emoji-picker-element is more efficient if the dataSource server exposes an ETag header.\");\n }\n}\nconst requiredKeys = [\n \"annotation\",\n \"emoji\",\n \"group\",\n \"order\",\n \"tags\",\n \"version\"\n];\nfunction assertEmojiData(emojiData) {\n if (!emojiData || !Array.isArray(emojiData) || !emojiData[0] || typeof emojiData[0] !== \"object\" || requiredKeys.some((key) => !(key in emojiData[0]))) {\n throw new Error(\"Emoji data is in the wrong format\");\n }\n}\nfunction assertStatus(response, dataSource) {\n if (Math.floor(response.status / 100) !== 2) {\n throw new Error(\"Failed to fetch: \" + dataSource + \": \" + response.status);\n }\n}\nasync function getETag(dataSource) {\n const response = await fetch(dataSource, { method: \"HEAD\" });\n assertStatus(response, dataSource);\n const eTag = response.headers.get(\"etag\");\n warnETag(eTag);\n return eTag;\n}\nasync function getETagAndData(dataSource) {\n const response = await fetch(dataSource);\n assertStatus(response, dataSource);\n const eTag = response.headers.get(\"etag\");\n warnETag(eTag);\n const emojiData = await response.json();\n assertEmojiData(emojiData);\n return [eTag, emojiData];\n}\nfunction arrayBufferToBinaryString(buffer) {\n var binary = \"\";\n var bytes = new Uint8Array(buffer);\n var length = bytes.byteLength;\n var i = -1;\n while (++i < length) {\n binary += String.fromCharCode(bytes[i]);\n }\n return binary;\n}\nfunction binaryStringToArrayBuffer(binary) {\n var length = binary.length;\n var buf = new ArrayBuffer(length);\n var arr = new Uint8Array(buf);\n var i = -1;\n while (++i < length) {\n arr[i] = binary.charCodeAt(i);\n }\n return buf;\n}\nasync function jsonChecksum(object) {\n const inString = JSON.stringify(object);\n const inBuffer = binaryStringToArrayBuffer(inString);\n const outBuffer = await crypto.subtle.digest(\"SHA-1\", inBuffer);\n const outBinString = arrayBufferToBinaryString(outBuffer);\n const res = btoa(outBinString);\n return res;\n}\nasync function checkForUpdates(db, dataSource) {\n let emojiData;\n let eTag = await getETag(dataSource);\n if (!eTag) {\n const eTagAndData = await getETagAndData(dataSource);\n eTag = eTagAndData[0];\n emojiData = eTagAndData[1];\n if (!eTag) {\n eTag = await jsonChecksum(emojiData);\n }\n }\n if (await hasData(db, dataSource, eTag))\n ;\n else {\n if (!emojiData) {\n const eTagAndData = await getETagAndData(dataSource);\n emojiData = eTagAndData[1];\n }\n await loadData(db, emojiData, dataSource, eTag);\n }\n}\nasync function loadDataForFirstTime(db, dataSource) {\n let [eTag, emojiData] = await getETagAndData(dataSource);\n if (!eTag) {\n eTag = await jsonChecksum(emojiData);\n }\n await loadData(db, emojiData, dataSource, eTag);\n}\nclass Database {\n constructor({ dataSource = DEFAULT_DATA_SOURCE$1, locale = DEFAULT_LOCALE$1, customEmoji = [] } = {}) {\n this.dataSource = dataSource;\n this.locale = locale;\n this._dbName = `emoji-picker-element-${this.locale}`;\n this._db = void 0;\n this._lazyUpdate = void 0;\n this._custom = customEmojiIndex(customEmoji);\n this._clear = this._clear.bind(this);\n this._ready = this._init();\n }\n async _init() {\n const db = this._db = await openDatabase(this._dbName);\n addOnCloseListener(this._dbName, this._clear);\n const dataSource = this.dataSource;\n const empty = await isEmpty(db);\n if (empty) {\n await loadDataForFirstTime(db, dataSource);\n } else {\n this._lazyUpdate = checkForUpdates(db, dataSource);\n }\n }\n async ready() {\n const checkReady = async () => {\n if (!this._ready) {\n this._ready = this._init();\n }\n return this._ready;\n };\n await checkReady();\n if (!this._db) {\n await checkReady();\n }\n }\n async getEmojiByGroup(group) {\n assertNumber(group);\n await this.ready();\n return uniqEmoji(await getEmojiByGroup(this._db, group)).map(cleanEmoji);\n }\n async getEmojiBySearchQuery(query) {\n assertNonEmptyString(query);\n await this.ready();\n const customs = this._custom.search(query);\n const natives = uniqEmoji(await getEmojiBySearchQuery(this._db, query)).map(cleanEmoji);\n return [\n ...customs,\n ...natives\n ];\n }\n async getEmojiByShortcode(shortcode) {\n assertNonEmptyString(shortcode);\n await this.ready();\n const custom = this._custom.byShortcode(shortcode);\n if (custom) {\n return custom;\n }\n return cleanEmoji(await getEmojiByShortcode(this._db, shortcode));\n }\n async getEmojiByUnicodeOrName(unicodeOrName) {\n assertNonEmptyString(unicodeOrName);\n await this.ready();\n const custom = this._custom.byName(unicodeOrName);\n if (custom) {\n return custom;\n }\n return cleanEmoji(await getEmojiByUnicode(this._db, unicodeOrName));\n }\n async getPreferredSkinTone() {\n await this.ready();\n return await get(this._db, STORE_KEYVALUE, KEY_PREFERRED_SKINTONE) || 0;\n }\n async setPreferredSkinTone(skinTone) {\n assertNumber(skinTone);\n await this.ready();\n return set(this._db, STORE_KEYVALUE, KEY_PREFERRED_SKINTONE, skinTone);\n }\n async incrementFavoriteEmojiCount(unicodeOrName) {\n assertNonEmptyString(unicodeOrName);\n await this.ready();\n return incrementFavoriteEmojiCount(this._db, unicodeOrName);\n }\n async getTopFavoriteEmoji(limit) {\n assertNumber(limit);\n await this.ready();\n return (await getTopFavoriteEmoji(this._db, this._custom, limit)).map(cleanEmoji);\n }\n set customEmoji(customEmojis) {\n this._custom = customEmojiIndex(customEmojis);\n }\n get customEmoji() {\n return this._custom.all;\n }\n async _shutdown() {\n await this.ready();\n try {\n await this._lazyUpdate;\n } catch (err) {\n }\n }\n _clear() {\n this._db = this._ready = this._lazyUpdate = void 0;\n }\n async close() {\n await this._shutdown();\n await closeDatabase(this._dbName);\n }\n async delete() {\n await this._shutdown();\n await deleteDatabase(this._dbName);\n }\n}\nfunction noop() {\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return /* @__PURE__ */ Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === \"function\";\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || (a && typeof a === \"object\" || typeof a === \"function\");\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement(\"a\");\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction detach(node) {\n node.parentNode.removeChild(node);\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_data(text2, data) {\n data = \"\" + data;\n if (text2.wholeText !== data)\n text2.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? \"\" : value;\n}\nfunction set_style(node, key, value, important) {\n if (value === null) {\n node.style.removeProperty(key);\n } else {\n node.style.setProperty(key, value, important ? \"important\" : \"\");\n }\n}\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nconst dirty_components = [];\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nconst seen_callbacks = /* @__PURE__ */ new Set();\nlet flushidx = 0;\nfunction flush() {\n const saved_component = current_component;\n do {\n while (flushidx < dirty_components.length) {\n const component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n seen_callbacks.clear();\n set_current_component(saved_component);\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\nconst outroing = /* @__PURE__ */ new Set();\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nconst globals = typeof window !== \"undefined\" ? window : typeof globalThis !== \"undefined\" ? globalThis : global;\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list2, lookup, node, destroy, create_each_block2, next, get_context) {\n let o = old_blocks.length;\n let n = list2.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = /* @__PURE__ */ new Map();\n const deltas = /* @__PURE__ */ new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list2, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block2(key, child_ctx);\n block.c();\n } else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = /* @__PURE__ */ new Set();\n const did_move = /* @__PURE__ */ new Set();\n function insert2(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n next = new_block.first;\n o--;\n n--;\n } else if (!new_lookup.has(old_key)) {\n destroy(old_block, lookup);\n o--;\n } else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert2(new_block);\n } else if (did_move.has(old_key)) {\n o--;\n } else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert2(new_block);\n } else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert2(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, on_mount, on_destroy, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n add_render_callback(() => {\n const new_on_destroy = on_mount.map(run).filter(is_function);\n if (on_destroy) {\n on_destroy.push(...new_on_destroy);\n } else {\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[i / 31 | 0] |= 1 << i % 31;\n}\nfunction init(component, options, instance2, create_fragment2, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: null,\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(parent_component ? parent_component.$$.context : []),\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance2 ? instance2(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n }) : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n $$.fragment = create_fragment2 ? create_fragment2($$.ctx) : false;\n if (options.target) {\n {\n $$.fragment && $$.fragment.c();\n }\n mount_component(component, options.target, void 0, void 0);\n flush();\n }\n set_current_component(parent_component);\n}\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = this.$$.callbacks[type] || (this.$$.callbacks[type] = []);\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\nconst allGroups = [\n [-1, \"\\u2728\", \"custom\"],\n [0, \"\\u{1F600}\", \"smileys-emotion\"],\n [1, \"\\u{1F44B}\", \"people-body\"],\n [3, \"\\u{1F431}\", \"animals-nature\"],\n [4, \"\\u{1F34E}\", \"food-drink\"],\n [5, \"\\u{1F3E0}\\uFE0F\", \"travel-places\"],\n [6, \"\\u26BD\", \"activities\"],\n [7, \"\\u{1F4DD}\", \"objects\"],\n [8, \"\\u26D4\\uFE0F\", \"symbols\"],\n [9, \"\\u{1F3C1}\", \"flags\"]\n].map(([id, emoji, name]) => ({ id, emoji, name }));\nconst groups = allGroups.slice(1);\nconst customGroup = allGroups[0];\nconst MIN_SEARCH_TEXT_LENGTH = 2;\nconst NUM_SKIN_TONES = 6;\nconst rIC = typeof requestIdleCallback === \"function\" ? requestIdleCallback : setTimeout;\nfunction hasZwj(emoji) {\n return emoji.unicode.includes(\"\\u200D\");\n}\nconst versionsAndTestEmoji = {\n \"\\u{1FAE0}\": 14,\n \"\\u{1F972}\": 13.1,\n \"\\u{1F97B}\": 12.1,\n \"\\u{1F970}\": 11,\n \"\\u{1F929}\": 5,\n \"\\u{1F471}\\u200D\\u2640\\uFE0F\": 4,\n \"\\u{1F923}\": 3,\n \"\\u{1F441}\\uFE0F\\u200D\\u{1F5E8}\\uFE0F\": 2,\n \"\\u{1F600}\": 1,\n \"\\u{1F610}\\uFE0F\": 0.7,\n \"\\u{1F603}\": 0.6\n};\nconst TIMEOUT_BEFORE_LOADING_MESSAGE = 1e3;\nconst DEFAULT_SKIN_TONE_EMOJI = \"\\u{1F590}\\uFE0F\";\nconst DEFAULT_NUM_COLUMNS = 8;\nconst MOST_COMMONLY_USED_EMOJI = [\n \"\\u{1F60A}\",\n \"\\u{1F612}\",\n \"\\u2665\\uFE0F\",\n \"\\u{1F44D}\\uFE0F\",\n \"\\u{1F60D}\",\n \"\\u{1F602}\",\n \"\\u{1F62D}\",\n \"\\u263A\\uFE0F\",\n \"\\u{1F614}\",\n \"\\u{1F629}\",\n \"\\u{1F60F}\",\n \"\\u{1F495}\",\n \"\\u{1F64C}\",\n \"\\u{1F618}\"\n];\nconst FONT_FAMILY = '\"Twemoji Mozilla\",\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\",\"EmojiOne Color\",\"Android Emoji\",sans-serif';\nconst DEFAULT_CATEGORY_SORTING = (a, b) => a < b ? -1 : a > b ? 1 : 0;\nconst getTextFeature = (text2, color) => {\n const canvas = document.createElement(\"canvas\");\n canvas.width = canvas.height = 1;\n const ctx = canvas.getContext(\"2d\");\n ctx.textBaseline = \"top\";\n ctx.font = `100px ${FONT_FAMILY}`;\n ctx.fillStyle = color;\n ctx.scale(0.01, 0.01);\n ctx.fillText(text2, 0, 0);\n return ctx.getImageData(0, 0, 1, 1).data;\n};\nconst compareFeatures = (feature1, feature2) => {\n const feature1Str = [...feature1].join(\",\");\n const feature2Str = [...feature2].join(\",\");\n return feature1Str === feature2Str && !feature1Str.startsWith(\"0,0,0,\");\n};\nfunction testColorEmojiSupported(text2) {\n const feature1 = getTextFeature(text2, \"#000\");\n const feature2 = getTextFeature(text2, \"#fff\");\n return feature1 && feature2 && compareFeatures(feature1, feature2);\n}\nfunction determineEmojiSupportLevel() {\n const entries = Object.entries(versionsAndTestEmoji);\n try {\n for (const [emoji, version2] of entries) {\n if (testColorEmojiSupported(emoji)) {\n return version2;\n }\n }\n } catch (e) {\n } finally {\n }\n return entries[0][1];\n}\nconst emojiSupportLevelPromise = new Promise((resolve2) => rIC(() => resolve2(determineEmojiSupportLevel())));\nconst supportedZwjEmojis = /* @__PURE__ */ new Map();\nconst VARIATION_SELECTOR = \"\\uFE0F\";\nconst SKINTONE_MODIFIER = \"\\uD83C\";\nconst ZWJ = \"\\u200D\";\nconst LIGHT_SKIN_TONE = 127995;\nconst LIGHT_SKIN_TONE_MODIFIER = 57339;\nfunction applySkinTone(str, skinTone) {\n if (skinTone === 0) {\n return str;\n }\n const zwjIndex = str.indexOf(ZWJ);\n if (zwjIndex !== -1) {\n return str.substring(0, zwjIndex) + String.fromCodePoint(LIGHT_SKIN_TONE + skinTone - 1) + str.substring(zwjIndex);\n }\n if (str.endsWith(VARIATION_SELECTOR)) {\n str = str.substring(0, str.length - 1);\n }\n return str + SKINTONE_MODIFIER + String.fromCodePoint(LIGHT_SKIN_TONE_MODIFIER + skinTone - 1);\n}\nfunction halt(event) {\n event.preventDefault();\n event.stopPropagation();\n}\nfunction incrementOrDecrement(decrement, val, arr) {\n val += decrement ? -1 : 1;\n if (val < 0) {\n val = arr.length - 1;\n } else if (val >= arr.length) {\n val = 0;\n }\n return val;\n}\nfunction uniqBy(arr, func) {\n const set2 = /* @__PURE__ */ new Set();\n const res = [];\n for (const item of arr) {\n const key = func(item);\n if (!set2.has(key)) {\n set2.add(key);\n res.push(item);\n }\n }\n return res;\n}\nfunction summarizeEmojisForUI(emojis, emojiSupportLevel) {\n const toSimpleSkinsMap = (skins) => {\n const res = {};\n for (const skin of skins) {\n if (typeof skin.tone === \"number\" && skin.version <= emojiSupportLevel) {\n res[skin.tone] = skin.unicode;\n }\n }\n return res;\n };\n return emojis.map(({ unicode, skins, shortcodes, url, name, category }) => ({\n unicode,\n name,\n shortcodes,\n url,\n category,\n id: unicode || name,\n skins: skins && toSimpleSkinsMap(skins),\n title: (shortcodes || []).join(\", \")\n }));\n}\nconst rAF = requestAnimationFrame;\nlet resizeObserverSupported = typeof ResizeObserver === \"function\";\nfunction calculateWidth(node, onUpdate) {\n let resizeObserver;\n if (resizeObserverSupported) {\n resizeObserver = new ResizeObserver((entries) => onUpdate(entries[0].contentRect.width));\n resizeObserver.observe(node);\n } else {\n rAF(() => onUpdate(node.getBoundingClientRect().width));\n }\n return {\n destroy() {\n if (resizeObserver) {\n resizeObserver.disconnect();\n }\n }\n };\n}\nfunction calculateTextWidth(node) {\n {\n const range = document.createRange();\n range.selectNode(node.firstChild);\n return range.getBoundingClientRect().width;\n }\n}\nlet baselineEmojiWidth;\nfunction checkZwjSupport(zwjEmojisToCheck, baselineEmoji, emojiToDomNode) {\n for (const emoji of zwjEmojisToCheck) {\n const domNode = emojiToDomNode(emoji);\n const emojiWidth = calculateTextWidth(domNode);\n if (typeof baselineEmojiWidth === \"undefined\") {\n baselineEmojiWidth = calculateTextWidth(baselineEmoji);\n }\n const supported = emojiWidth / 1.8 < baselineEmojiWidth;\n supportedZwjEmojis.set(emoji.unicode, supported);\n }\n}\nfunction uniq(arr) {\n return uniqBy(arr, (_) => _);\n}\nconst { Map: Map_1 } = globals;\nfunction get_each_context(ctx, list2, i) {\n const child_ctx = ctx.slice();\n child_ctx[63] = list2[i];\n child_ctx[65] = i;\n return child_ctx;\n}\nfunction get_each_context_1(ctx, list2, i) {\n const child_ctx = ctx.slice();\n child_ctx[66] = list2[i];\n child_ctx[65] = i;\n return child_ctx;\n}\nfunction get_each_context_2(ctx, list2, i) {\n const child_ctx = ctx.slice();\n child_ctx[63] = list2[i];\n child_ctx[65] = i;\n return child_ctx;\n}\nfunction get_each_context_3(ctx, list2, i) {\n const child_ctx = ctx.slice();\n child_ctx[69] = list2[i];\n return child_ctx;\n}\nfunction get_each_context_4(ctx, list2, i) {\n const child_ctx = ctx.slice();\n child_ctx[72] = list2[i];\n child_ctx[65] = i;\n return child_ctx;\n}\nfunction create_each_block_4(key_1, ctx) {\n let div;\n let t_value = ctx[72] + \"\";\n let t;\n let div_id_value;\n let div_class_value;\n let div_aria_selected_value;\n let div_title_value;\n let div_aria_label_value;\n return {\n key: key_1,\n first: null,\n c() {\n div = element(\"div\");\n t = text(t_value);\n attr(div, \"id\", div_id_value = \"skintone-\" + ctx[65]);\n attr(div, \"class\", div_class_value = \"emoji hide-focus \" + (ctx[65] === ctx[20] ? \"active\" : \"\"));\n attr(div, \"aria-selected\", div_aria_selected_value = ctx[65] === ctx[20]);\n attr(div, \"role\", \"option\");\n attr(div, \"title\", div_title_value = ctx[0].skinTones[ctx[65]]);\n attr(div, \"tabindex\", \"-1\");\n attr(div, \"aria-label\", div_aria_label_value = ctx[0].skinTones[ctx[65]]);\n this.first = div;\n },\n m(target, anchor) {\n insert(target, div, anchor);\n append(div, t);\n },\n p(new_ctx, dirty) {\n ctx = new_ctx;\n if (dirty[0] & 512 && t_value !== (t_value = ctx[72] + \"\"))\n set_data(t, t_value);\n if (dirty[0] & 512 && div_id_value !== (div_id_value = \"skintone-\" + ctx[65])) {\n attr(div, \"id\", div_id_value);\n }\n if (dirty[0] & 1049088 && div_class_value !== (div_class_value = \"emoji hide-focus \" + (ctx[65] === ctx[20] ? \"active\" : \"\"))) {\n attr(div, \"class\", div_class_value);\n }\n if (dirty[0] & 1049088 && div_aria_selected_value !== (div_aria_selected_value = ctx[65] === ctx[20])) {\n attr(div, \"aria-selected\", div_aria_selected_value);\n }\n if (dirty[0] & 513 && div_title_value !== (div_title_value = ctx[0].skinTones[ctx[65]])) {\n attr(div, \"title\", div_title_value);\n }\n if (dirty[0] & 513 && div_aria_label_value !== (div_aria_label_value = ctx[0].skinTones[ctx[65]])) {\n attr(div, \"aria-label\", div_aria_label_value);\n }\n },\n d(detaching) {\n if (detaching)\n detach(div);\n }\n };\n}\nfunction create_each_block_3(key_1, ctx) {\n let button;\n let div;\n let t_value = ctx[69].emoji + \"\";\n let t;\n let button_aria_controls_value;\n let button_aria_label_value;\n let button_aria_selected_value;\n let button_title_value;\n let mounted;\n let dispose;\n function click_handler() {\n return ctx[49](ctx[69]);\n }\n return {\n key: key_1,\n first: null,\n c() {\n button = element(\"button\");\n div = element(\"div\");\n t = text(t_value);\n attr(div, \"class\", \"nav-emoji emoji\");\n attr(button, \"role\", \"tab\");\n attr(button, \"class\", \"nav-button\");\n attr(button, \"aria-controls\", button_aria_controls_value = \"tab-\" + ctx[69].id);\n attr(button, \"aria-label\", button_aria_label_value = ctx[0].categories[ctx[69].name]);\n attr(button, \"aria-selected\", button_aria_selected_value = !ctx[4] && ctx[13].id === ctx[69].id);\n attr(button, \"title\", button_title_value = ctx[0].categories[ctx[69].name]);\n this.first = button;\n },\n m(target, anchor) {\n insert(target, button, anchor);\n append(button, div);\n append(div, t);\n if (!mounted) {\n dispose = listen(button, \"click\", click_handler);\n mounted = true;\n }\n },\n p(new_ctx, dirty) {\n ctx = new_ctx;\n if (dirty[0] & 4096 && t_value !== (t_value = ctx[69].emoji + \"\"))\n set_data(t, t_value);\n if (dirty[0] & 4096 && button_aria_controls_value !== (button_aria_controls_value = \"tab-\" + ctx[69].id)) {\n attr(button, \"aria-controls\", button_aria_controls_value);\n }\n if (dirty[0] & 4097 && button_aria_label_value !== (button_aria_label_value = ctx[0].categories[ctx[69].name])) {\n attr(button, \"aria-label\", button_aria_label_value);\n }\n if (dirty[0] & 12304 && button_aria_selected_value !== (button_aria_selected_value = !ctx[4] && ctx[13].id === ctx[69].id)) {\n attr(button, \"aria-selected\", button_aria_selected_value);\n }\n if (dirty[0] & 4097 && button_title_value !== (button_title_value = ctx[0].categories[ctx[69].name])) {\n attr(button, \"title\", button_title_value);\n }\n },\n d(detaching) {\n if (detaching)\n detach(button);\n mounted = false;\n dispose();\n }\n };\n}\nfunction create_else_block_1(ctx) {\n let img;\n let img_src_value;\n return {\n c() {\n img = element(\"img\");\n attr(img, \"class\", \"custom-emoji\");\n if (!src_url_equal(img.src, img_src_value = ctx[63].url))\n attr(img, \"src\", img_src_value);\n attr(img, \"alt\", \"\");\n attr(img, \"loading\", \"lazy\");\n },\n m(target, anchor) {\n insert(target, img, anchor);\n },\n p(ctx2, dirty) {\n if (dirty[0] & 32768 && !src_url_equal(img.src, img_src_value = ctx2[63].url)) {\n attr(img, \"src\", img_src_value);\n }\n },\n d(detaching) {\n if (detaching)\n detach(img);\n }\n };\n}\nfunction create_if_block_1(ctx) {\n let t_value = ctx[27](ctx[63], ctx[8]) + \"\";\n let t;\n return {\n c() {\n t = text(t_value);\n },\n m(target, anchor) {\n insert(target, t, anchor);\n },\n p(ctx2, dirty) {\n if (dirty[0] & 33024 && t_value !== (t_value = ctx2[27](ctx2[63], ctx2[8]) + \"\"))\n set_data(t, t_value);\n },\n d(detaching) {\n if (detaching)\n detach(t);\n }\n };\n}\nfunction create_each_block_2(key_1, ctx) {\n let button;\n let button_role_value;\n let button_aria_selected_value;\n let button_aria_label_value;\n let button_title_value;\n let button_class_value;\n let button_id_value;\n function select_block_type(ctx2, dirty) {\n if (ctx2[63].unicode)\n return create_if_block_1;\n return create_else_block_1;\n }\n let current_block_type = select_block_type(ctx);\n let if_block = current_block_type(ctx);\n return {\n key: key_1,\n first: null,\n c() {\n button = element(\"button\");\n if_block.c();\n attr(button, \"role\", button_role_value = ctx[4] ? \"option\" : \"menuitem\");\n attr(button, \"aria-selected\", button_aria_selected_value = ctx[4] ? ctx[65] == ctx[5] : \"\");\n attr(button, \"aria-label\", button_aria_label_value = ctx[28](ctx[63], ctx[8]));\n attr(button, \"title\", button_title_value = ctx[63].title);\n attr(button, \"class\", button_class_value = \"emoji \" + (ctx[4] && ctx[65] === ctx[5] ? \"active\" : \"\"));\n attr(button, \"id\", button_id_value = \"emo-\" + ctx[63].id);\n this.first = button;\n },\n m(target, anchor) {\n insert(target, button, anchor);\n if_block.m(button, null);\n },\n p(new_ctx, dirty) {\n ctx = new_ctx;\n if (current_block_type === (current_block_type = select_block_type(ctx)) && if_block) {\n if_block.p(ctx, dirty);\n } else {\n if_block.d(1);\n if_block = current_block_type(ctx);\n if (if_block) {\n if_block.c();\n if_block.m(button, null);\n }\n }\n if (dirty[0] & 16 && button_role_value !== (button_role_value = ctx[4] ? \"option\" : \"menuitem\")) {\n attr(button, \"role\", button_role_value);\n }\n if (dirty[0] & 32816 && button_aria_selected_value !== (button_aria_selected_value = ctx[4] ? ctx[65] == ctx[5] : \"\")) {\n attr(button, \"aria-selected\", button_aria_selected_value);\n }\n if (dirty[0] & 33024 && button_aria_label_value !== (button_aria_label_value = ctx[28](ctx[63], ctx[8]))) {\n attr(button, \"aria-label\", button_aria_label_value);\n }\n if (dirty[0] & 32768 && button_title_value !== (button_title_value = ctx[63].title)) {\n attr(button, \"title\", button_title_value);\n }\n if (dirty[0] & 32816 && button_class_value !== (button_class_value = \"emoji \" + (ctx[4] && ctx[65] === ctx[5] ? \"active\" : \"\"))) {\n attr(button, \"class\", button_class_value);\n }\n if (dirty[0] & 32768 && button_id_value !== (button_id_value = \"emo-\" + ctx[63].id)) {\n attr(button, \"id\", button_id_value);\n }\n },\n d(detaching) {\n if (detaching)\n detach(button);\n if_block.d();\n }\n };\n}\nfunction create_each_block_1(key_1, ctx) {\n let div0;\n let t_value = (ctx[4] ? ctx[0].searchResultsLabel : ctx[66].category ? ctx[66].category : ctx[15].length > 1 ? ctx[0].categories.custom : ctx[0].categories[ctx[13].name]) + \"\";\n let t;\n let div0_id_value;\n let div0_class_value;\n let div1;\n let each_blocks = [];\n let each_1_lookup = new Map_1();\n let div1_role_value;\n let div1_aria_labelledby_value;\n let div1_id_value;\n let each_value_2 = ctx[66].emojis;\n const get_key = (ctx2) => ctx2[63].id;\n for (let i = 0; i < each_value_2.length; i += 1) {\n let child_ctx = get_each_context_2(ctx, each_value_2, i);\n let key = get_key(child_ctx);\n each_1_lookup.set(key, each_blocks[i] = create_each_block_2(key, child_ctx));\n }\n return {\n key: key_1,\n first: null,\n c() {\n div0 = element(\"div\");\n t = text(t_value);\n div1 = element(\"div\");\n for (let i = 0; i < each_blocks.length; i += 1) {\n each_blocks[i].c();\n }\n attr(div0, \"id\", div0_id_value = \"menu-label-\" + ctx[65]);\n attr(div0, \"class\", div0_class_value = \"category \" + (ctx[15].length === 1 && ctx[15][0].category === \"\" ? \"gone\" : \"\"));\n attr(div0, \"aria-hidden\", \"true\");\n attr(div1, \"class\", \"emoji-menu\");\n attr(div1, \"role\", div1_role_value = ctx[4] ? \"listbox\" : \"menu\");\n attr(div1, \"aria-labelledby\", div1_aria_labelledby_value = \"menu-label-\" + ctx[65]);\n attr(div1, \"id\", div1_id_value = ctx[4] ? \"search-results\" : \"\");\n this.first = div0;\n },\n m(target, anchor) {\n insert(target, div0, anchor);\n append(div0, t);\n insert(target, div1, anchor);\n for (let i = 0; i < each_blocks.length; i += 1) {\n each_blocks[i].m(div1, null);\n }\n },\n p(new_ctx, dirty) {\n ctx = new_ctx;\n if (dirty[0] & 40977 && t_value !== (t_value = (ctx[4] ? ctx[0].searchResultsLabel : ctx[66].category ? ctx[66].category : ctx[15].length > 1 ? ctx[0].categories.custom : ctx[0].categories[ctx[13].name]) + \"\"))\n set_data(t, t_value);\n if (dirty[0] & 32768 && div0_id_value !== (div0_id_value = \"menu-label-\" + ctx[65])) {\n attr(div0, \"id\", div0_id_value);\n }\n if (dirty[0] & 32768 && div0_class_value !== (div0_class_value = \"category \" + (ctx[15].length === 1 && ctx[15][0].category === \"\" ? \"gone\" : \"\"))) {\n attr(div0, \"class\", div0_class_value);\n }\n if (dirty[0] & 402686256) {\n each_value_2 = ctx[66].emojis;\n each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx, each_value_2, each_1_lookup, div1, destroy_block, create_each_block_2, null, get_each_context_2);\n }\n if (dirty[0] & 16 && div1_role_value !== (div1_role_value = ctx[4] ? \"listbox\" : \"menu\")) {\n attr(div1, \"role\", div1_role_value);\n }\n if (dirty[0] & 32768 && div1_aria_labelledby_value !== (div1_aria_labelledby_value = \"menu-label-\" + ctx[65])) {\n attr(div1, \"aria-labelledby\", div1_aria_labelledby_value);\n }\n if (dirty[0] & 16 && div1_id_value !== (div1_id_value = ctx[4] ? \"search-results\" : \"\")) {\n attr(div1, \"id\", div1_id_value);\n }\n },\n d(detaching) {\n if (detaching)\n detach(div0);\n if (detaching)\n detach(div1);\n for (let i = 0; i < each_blocks.length; i += 1) {\n each_blocks[i].d();\n }\n }\n };\n}\nfunction create_else_block(ctx) {\n let img;\n let img_src_value;\n return {\n c() {\n img = element(\"img\");\n attr(img, \"class\", \"custom-emoji\");\n if (!src_url_equal(img.src, img_src_value = ctx[63].url))\n attr(img, \"src\", img_src_value);\n attr(img, \"alt\", \"\");\n attr(img, \"loading\", \"lazy\");\n },\n m(target, anchor) {\n insert(target, img, anchor);\n },\n p(ctx2, dirty) {\n if (dirty[0] & 1024 && !src_url_equal(img.src, img_src_value = ctx2[63].url)) {\n attr(img, \"src\", img_src_value);\n }\n },\n d(detaching) {\n if (detaching)\n detach(img);\n }\n };\n}\nfunction create_if_block(ctx) {\n let t_value = ctx[27](ctx[63], ctx[8]) + \"\";\n let t;\n return {\n c() {\n t = text(t_value);\n },\n m(target, anchor) {\n insert(target, t, anchor);\n },\n p(ctx2, dirty) {\n if (dirty[0] & 1280 && t_value !== (t_value = ctx2[27](ctx2[63], ctx2[8]) + \"\"))\n set_data(t, t_value);\n },\n d(detaching) {\n if (detaching)\n detach(t);\n }\n };\n}\nfunction create_each_block(key_1, ctx) {\n let button;\n let button_aria_label_value;\n let button_title_value;\n let button_id_value;\n function select_block_type_1(ctx2, dirty) {\n if (ctx2[63].unicode)\n return create_if_block;\n return create_else_block;\n }\n let current_block_type = select_block_type_1(ctx);\n let if_block = current_block_type(ctx);\n return {\n key: key_1,\n first: null,\n c() {\n button = element(\"button\");\n if_block.c();\n attr(button, \"role\", \"menuitem\");\n attr(button, \"aria-label\", button_aria_label_value = ctx[28](ctx[63], ctx[8]));\n attr(button, \"title\", button_title_value = ctx[63].title);\n attr(button, \"class\", \"emoji\");\n attr(button, \"id\", button_id_value = \"fav-\" + ctx[63].id);\n this.first = button;\n },\n m(target, anchor) {\n insert(target, button, anchor);\n if_block.m(button, null);\n },\n p(new_ctx, dirty) {\n ctx = new_ctx;\n if (current_block_type === (current_block_type = select_block_type_1(ctx)) && if_block) {\n if_block.p(ctx, dirty);\n } else {\n if_block.d(1);\n if_block = current_block_type(ctx);\n if (if_block) {\n if_block.c();\n if_block.m(button, null);\n }\n }\n if (dirty[0] & 1280 && button_aria_label_value !== (button_aria_label_value = ctx[28](ctx[63], ctx[8]))) {\n attr(button, \"aria-label\", button_aria_label_value);\n }\n if (dirty[0] & 1024 && button_title_value !== (button_title_value = ctx[63].title)) {\n attr(button, \"title\", button_title_value);\n }\n if (dirty[0] & 1024 && button_id_value !== (button_id_value = \"fav-\" + ctx[63].id)) {\n attr(button, \"id\", button_id_value);\n }\n },\n d(detaching) {\n if (detaching)\n detach(button);\n if_block.d();\n }\n };\n}\nfunction create_fragment(ctx) {\n let section;\n let div0;\n let div4;\n let div1;\n let input;\n let input_placeholder_value;\n let input_aria_expanded_value;\n let input_aria_activedescendant_value;\n let label;\n let t0_value = ctx[0].searchLabel + \"\";\n let t0;\n let span0;\n let t1_value = ctx[0].searchDescription + \"\";\n let t1;\n let div2;\n let button0;\n let t2;\n let button0_class_value;\n let div2_class_value;\n let span1;\n let t3_value = ctx[0].skinToneDescription + \"\";\n let t3;\n let div3;\n let each_blocks_3 = [];\n let each0_lookup = new Map_1();\n let div3_class_value;\n let div3_aria_label_value;\n let div3_aria_activedescendant_value;\n let div3_aria_hidden_value;\n let div5;\n let each_blocks_2 = [];\n let each1_lookup = new Map_1();\n let div5_aria_label_value;\n let div7;\n let div6;\n let div8;\n let t4;\n let div8_class_value;\n let div10;\n let div9;\n let each_blocks_1 = [];\n let each2_lookup = new Map_1();\n let div10_class_value;\n let div10_role_value;\n let div10_aria_label_value;\n let div10_id_value;\n let div11;\n let each_blocks = [];\n let each3_lookup = new Map_1();\n let div11_class_value;\n let div11_aria_label_value;\n let button1;\n let section_aria_label_value;\n let mounted;\n let dispose;\n let each_value_4 = ctx[9];\n const get_key = (ctx2) => ctx2[72];\n for (let i = 0; i < each_value_4.length; i += 1) {\n let child_ctx = get_each_context_4(ctx, each_value_4, i);\n let key = get_key(child_ctx);\n each0_lookup.set(key, each_blocks_3[i] = create_each_block_4(key, child_ctx));\n }\n let each_value_3 = ctx[12];\n const get_key_1 = (ctx2) => ctx2[69].id;\n for (let i = 0; i < each_value_3.length; i += 1) {\n let child_ctx = get_each_context_3(ctx, each_value_3, i);\n let key = get_key_1(child_ctx);\n each1_lookup.set(key, each_blocks_2[i] = create_each_block_3(key, child_ctx));\n }\n let each_value_1 = ctx[15];\n const get_key_2 = (ctx2) => ctx2[66].category;\n for (let i = 0; i < each_value_1.length; i += 1) {\n let child_ctx = get_each_context_1(ctx, each_value_1, i);\n let key = get_key_2(child_ctx);\n each2_lookup.set(key, each_blocks_1[i] = create_each_block_1(key, child_ctx));\n }\n let each_value = ctx[10];\n const get_key_3 = (ctx2) => ctx2[63].id;\n for (let i = 0; i < each_value.length; i += 1) {\n let child_ctx = get_each_context(ctx, each_value, i);\n let key = get_key_3(child_ctx);\n each3_lookup.set(key, each_blocks[i] = create_each_block(key, child_ctx));\n }\n return {\n c() {\n section = element(\"section\");\n div0 = element(\"div\");\n div4 = element(\"div\");\n div1 = element(\"div\");\n input = element(\"input\");\n label = element(\"label\");\n t0 = text(t0_value);\n span0 = element(\"span\");\n t1 = text(t1_value);\n div2 = element(\"div\");\n button0 = element(\"button\");\n t2 = text(ctx[21]);\n span1 = element(\"span\");\n t3 = text(t3_value);\n div3 = element(\"div\");\n for (let i = 0; i < each_blocks_3.length; i += 1) {\n each_blocks_3[i].c();\n }\n div5 = element(\"div\");\n for (let i = 0; i < each_blocks_2.length; i += 1) {\n each_blocks_2[i].c();\n }\n div7 = element(\"div\");\n div6 = element(\"div\");\n div8 = element(\"div\");\n t4 = text(ctx[18]);\n div10 = element(\"div\");\n div9 = element(\"div\");\n for (let i = 0; i < each_blocks_1.length; i += 1) {\n each_blocks_1[i].c();\n }\n div11 = element(\"div\");\n for (let i = 0; i < each_blocks.length; i += 1) {\n each_blocks[i].c();\n }\n button1 = element(\"button\");\n button1.textContent = \"\\u{1F600}\";\n attr(div0, \"class\", \"pad-top\");\n attr(input, \"id\", \"search\");\n attr(input, \"class\", \"search\");\n attr(input, \"type\", \"search\");\n attr(input, \"role\", \"combobox\");\n attr(input, \"enterkeyhint\", \"search\");\n attr(input, \"placeholder\", input_placeholder_value = ctx[0].searchLabel);\n attr(input, \"autocapitalize\", \"none\");\n attr(input, \"autocomplete\", \"off\");\n attr(input, \"spellcheck\", \"true\");\n attr(input, \"aria-expanded\", input_aria_expanded_value = !!(ctx[4] && ctx[1].length));\n attr(input, \"aria-controls\", \"search-results\");\n attr(input, \"aria-describedby\", \"search-description\");\n attr(input, \"aria-autocomplete\", \"list\");\n attr(input, \"aria-activedescendant\", input_aria_activedescendant_value = ctx[26] ? `emo-${ctx[26]}` : \"\");\n attr(label, \"class\", \"sr-only\");\n attr(label, \"for\", \"search\");\n attr(span0, \"id\", \"search-description\");\n attr(span0, \"class\", \"sr-only\");\n attr(div1, \"class\", \"search-wrapper\");\n attr(button0, \"id\", \"skintone-button\");\n attr(button0, \"class\", button0_class_value = \"emoji \" + (ctx[6] ? \"hide-focus\" : \"\"));\n attr(button0, \"aria-label\", ctx[23]);\n attr(button0, \"title\", ctx[23]);\n attr(button0, \"aria-describedby\", \"skintone-description\");\n attr(button0, \"aria-haspopup\", \"listbox\");\n attr(button0, \"aria-expanded\", ctx[6]);\n attr(button0, \"aria-controls\", \"skintone-list\");\n attr(div2, \"class\", div2_class_value = \"skintone-button-wrapper \" + (ctx[19] ? \"expanded\" : \"\"));\n attr(span1, \"id\", \"skintone-description\");\n attr(span1, \"class\", \"sr-only\");\n attr(div3, \"id\", \"skintone-list\");\n attr(div3, \"class\", div3_class_value = \"skintone-list \" + (ctx[6] ? \"\" : \"hidden no-animate\"));\n set_style(div3, \"transform\", \"translateY(\" + (ctx[6] ? 0 : \"calc(-1 * var(--num-skintones) * var(--total-emoji-size))\") + \")\");\n attr(div3, \"role\", \"listbox\");\n attr(div3, \"aria-label\", div3_aria_label_value = ctx[0].skinTonesLabel);\n attr(div3, \"aria-activedescendant\", div3_aria_activedescendant_value = \"skintone-\" + ctx[20]);\n attr(div3, \"aria-hidden\", div3_aria_hidden_value = !ctx[6]);\n attr(div4, \"class\", \"search-row\");\n attr(div5, \"class\", \"nav\");\n attr(div5, \"role\", \"tablist\");\n set_style(div5, \"grid-template-columns\", \"repeat(\" + ctx[12].length + \", 1fr)\");\n attr(div5, \"aria-label\", div5_aria_label_value = ctx[0].categoriesLabel);\n attr(div6, \"class\", \"indicator\");\n set_style(div6, \"transform\", \"translateX(\" + (ctx[24] ? -1 : 1) * ctx[11] * 100 + \"%)\");\n attr(div7, \"class\", \"indicator-wrapper\");\n attr(div8, \"class\", div8_class_value = \"message \" + (ctx[18] ? \"\" : \"gone\"));\n attr(div8, \"role\", \"alert\");\n attr(div8, \"aria-live\", \"polite\");\n attr(div10, \"class\", div10_class_value = \"tabpanel \" + (!ctx[14] || ctx[18] ? \"gone\" : \"\"));\n attr(div10, \"role\", div10_role_value = ctx[4] ? \"region\" : \"tabpanel\");\n attr(div10, \"aria-label\", div10_aria_label_value = ctx[4] ? ctx[0].searchResultsLabel : ctx[0].categories[ctx[13].name]);\n attr(div10, \"id\", div10_id_value = ctx[4] ? \"\" : `tab-${ctx[13].id}`);\n attr(div10, \"tabindex\", \"0\");\n attr(div11, \"class\", div11_class_value = \"favorites emoji-menu \" + (ctx[18] ? \"gone\" : \"\"));\n attr(div11, \"role\", \"menu\");\n attr(div11, \"aria-label\", div11_aria_label_value = ctx[0].favoritesLabel);\n set_style(div11, \"padding-inline-end\", ctx[25] + \"px\");\n attr(button1, \"aria-hidden\", \"true\");\n attr(button1, \"tabindex\", \"-1\");\n attr(button1, \"class\", \"abs-pos hidden emoji\");\n attr(section, \"class\", \"picker\");\n attr(section, \"aria-label\", section_aria_label_value = ctx[0].regionLabel);\n attr(section, \"style\", ctx[22]);\n },\n m(target, anchor) {\n insert(target, section, anchor);\n append(section, div0);\n append(section, div4);\n append(div4, div1);\n append(div1, input);\n set_input_value(input, ctx[2]);\n append(div1, label);\n append(label, t0);\n append(div1, span0);\n append(span0, t1);\n append(div4, div2);\n append(div2, button0);\n append(button0, t2);\n append(div4, span1);\n append(span1, t3);\n append(div4, div3);\n for (let i = 0; i < each_blocks_3.length; i += 1) {\n each_blocks_3[i].m(div3, null);\n }\n ctx[48](div3);\n append(section, div5);\n for (let i = 0; i < each_blocks_2.length; i += 1) {\n each_blocks_2[i].m(div5, null);\n }\n append(section, div7);\n append(div7, div6);\n append(section, div8);\n append(div8, t4);\n append(section, div10);\n append(div10, div9);\n for (let i = 0; i < each_blocks_1.length; i += 1) {\n each_blocks_1[i].m(div9, null);\n }\n ctx[50](div10);\n append(section, div11);\n for (let i = 0; i < each_blocks.length; i += 1) {\n each_blocks[i].m(div11, null);\n }\n append(section, button1);\n ctx[51](button1);\n ctx[52](section);\n if (!mounted) {\n dispose = [\n listen(input, \"input\", ctx[47]),\n listen(input, \"keydown\", ctx[30]),\n listen(button0, \"click\", ctx[35]),\n listen(div3, \"focusout\", ctx[38]),\n listen(div3, \"click\", ctx[34]),\n listen(div3, \"keydown\", ctx[36]),\n listen(div3, \"keyup\", ctx[37]),\n listen(div5, \"keydown\", ctx[32]),\n action_destroyer(ctx[29].call(null, div9)),\n listen(div10, \"click\", ctx[33]),\n listen(div11, \"click\", ctx[33])\n ];\n mounted = true;\n }\n },\n p(ctx2, dirty) {\n if (dirty[0] & 1 && input_placeholder_value !== (input_placeholder_value = ctx2[0].searchLabel)) {\n attr(input, \"placeholder\", input_placeholder_value);\n }\n if (dirty[0] & 18 && input_aria_expanded_value !== (input_aria_expanded_value = !!(ctx2[4] && ctx2[1].length))) {\n attr(input, \"aria-expanded\", input_aria_expanded_value);\n }\n if (dirty[0] & 67108864 && input_aria_activedescendant_value !== (input_aria_activedescendant_value = ctx2[26] ? `emo-${ctx2[26]}` : \"\")) {\n attr(input, \"aria-activedescendant\", input_aria_activedescendant_value);\n }\n if (dirty[0] & 4) {\n set_input_value(input, ctx2[2]);\n }\n if (dirty[0] & 1 && t0_value !== (t0_value = ctx2[0].searchLabel + \"\"))\n set_data(t0, t0_value);\n if (dirty[0] & 1 && t1_value !== (t1_value = ctx2[0].searchDescription + \"\"))\n set_data(t1, t1_value);\n if (dirty[0] & 2097152)\n set_data(t2, ctx2[21]);\n if (dirty[0] & 64 && button0_class_value !== (button0_class_value = \"emoji \" + (ctx2[6] ? \"hide-focus\" : \"\"))) {\n attr(button0, \"class\", button0_class_value);\n }\n if (dirty[0] & 8388608) {\n attr(button0, \"aria-label\", ctx2[23]);\n }\n if (dirty[0] & 8388608) {\n attr(button0, \"title\", ctx2[23]);\n }\n if (dirty[0] & 64) {\n attr(button0, \"aria-expanded\", ctx2[6]);\n }\n if (dirty[0] & 524288 && div2_class_value !== (div2_class_value = \"skintone-button-wrapper \" + (ctx2[19] ? \"expanded\" : \"\"))) {\n attr(div2, \"class\", div2_class_value);\n }\n if (dirty[0] & 1 && t3_value !== (t3_value = ctx2[0].skinToneDescription + \"\"))\n set_data(t3, t3_value);\n if (dirty[0] & 1049089) {\n each_value_4 = ctx2[9];\n each_blocks_3 = update_keyed_each(each_blocks_3, dirty, get_key, 1, ctx2, each_value_4, each0_lookup, div3, destroy_block, create_each_block_4, null, get_each_context_4);\n }\n if (dirty[0] & 64 && div3_class_value !== (div3_class_value = \"skintone-list \" + (ctx2[6] ? \"\" : \"hidden no-animate\"))) {\n attr(div3, \"class\", div3_class_value);\n }\n if (dirty[0] & 64) {\n set_style(div3, \"transform\", \"translateY(\" + (ctx2[6] ? 0 : \"calc(-1 * var(--num-skintones) * var(--total-emoji-size))\") + \")\");\n }\n if (dirty[0] & 1 && div3_aria_label_value !== (div3_aria_label_value = ctx2[0].skinTonesLabel)) {\n attr(div3, \"aria-label\", div3_aria_label_value);\n }\n if (dirty[0] & 1048576 && div3_aria_activedescendant_value !== (div3_aria_activedescendant_value = \"skintone-\" + ctx2[20])) {\n attr(div3, \"aria-activedescendant\", div3_aria_activedescendant_value);\n }\n if (dirty[0] & 64 && div3_aria_hidden_value !== (div3_aria_hidden_value = !ctx2[6])) {\n attr(div3, \"aria-hidden\", div3_aria_hidden_value);\n }\n if (dirty[0] & 12305 | dirty[1] & 1) {\n each_value_3 = ctx2[12];\n each_blocks_2 = update_keyed_each(each_blocks_2, dirty, get_key_1, 1, ctx2, each_value_3, each1_lookup, div5, destroy_block, create_each_block_3, null, get_each_context_3);\n }\n if (dirty[0] & 4096) {\n set_style(div5, \"grid-template-columns\", \"repeat(\" + ctx2[12].length + \", 1fr)\");\n }\n if (dirty[0] & 1 && div5_aria_label_value !== (div5_aria_label_value = ctx2[0].categoriesLabel)) {\n attr(div5, \"aria-label\", div5_aria_label_value);\n }\n if (dirty[0] & 16779264) {\n set_style(div6, \"transform\", \"translateX(\" + (ctx2[24] ? -1 : 1) * ctx2[11] * 100 + \"%)\");\n }\n if (dirty[0] & 262144)\n set_data(t4, ctx2[18]);\n if (dirty[0] & 262144 && div8_class_value !== (div8_class_value = \"message \" + (ctx2[18] ? \"\" : \"gone\"))) {\n attr(div8, \"class\", div8_class_value);\n }\n if (dirty[0] & 402694449) {\n each_value_1 = ctx2[15];\n each_blocks_1 = update_keyed_each(each_blocks_1, dirty, get_key_2, 1, ctx2, each_value_1, each2_lookup, div9, destroy_block, create_each_block_1, null, get_each_context_1);\n }\n if (dirty[0] & 278528 && div10_class_value !== (div10_class_value = \"tabpanel \" + (!ctx2[14] || ctx2[18] ? \"gone\" : \"\"))) {\n attr(div10, \"class\", div10_class_value);\n }\n if (dirty[0] & 16 && div10_role_value !== (div10_role_value = ctx2[4] ? \"region\" : \"tabpanel\")) {\n attr(div10, \"role\", div10_role_value);\n }\n if (dirty[0] & 8209 && div10_aria_label_value !== (div10_aria_label_value = ctx2[4] ? ctx2[0].searchResultsLabel : ctx2[0].categories[ctx2[13].name])) {\n attr(div10, \"aria-label\", div10_aria_label_value);\n }\n if (dirty[0] & 8208 && div10_id_value !== (div10_id_value = ctx2[4] ? \"\" : `tab-${ctx2[13].id}`)) {\n attr(div10, \"id\", div10_id_value);\n }\n if (dirty[0] & 402654464) {\n each_value = ctx2[10];\n each_blocks = update_keyed_each(each_blocks, dirty, get_key_3, 1, ctx2, each_value, each3_lookup, div11, destroy_block, create_each_block, null, get_each_context);\n }\n if (dirty[0] & 262144 && div11_class_value !== (div11_class_value = \"favorites emoji-menu \" + (ctx2[18] ? \"gone\" : \"\"))) {\n attr(div11, \"class\", div11_class_value);\n }\n if (dirty[0] & 1 && div11_aria_label_value !== (div11_aria_label_value = ctx2[0].favoritesLabel)) {\n attr(div11, \"aria-label\", div11_aria_label_value);\n }\n if (dirty[0] & 33554432) {\n set_style(div11, \"padding-inline-end\", ctx2[25] + \"px\");\n }\n if (dirty[0] & 1 && section_aria_label_value !== (section_aria_label_value = ctx2[0].regionLabel)) {\n attr(section, \"aria-label\", section_aria_label_value);\n }\n if (dirty[0] & 4194304) {\n attr(section, \"style\", ctx2[22]);\n }\n },\n i: noop,\n o: noop,\n d(detaching) {\n if (detaching)\n detach(section);\n for (let i = 0; i < each_blocks_3.length; i += 1) {\n each_blocks_3[i].d();\n }\n ctx[48](null);\n for (let i = 0; i < each_blocks_2.length; i += 1) {\n each_blocks_2[i].d();\n }\n for (let i = 0; i < each_blocks_1.length; i += 1) {\n each_blocks_1[i].d();\n }\n ctx[50](null);\n for (let i = 0; i < each_blocks.length; i += 1) {\n each_blocks[i].d();\n }\n ctx[51](null);\n ctx[52](null);\n mounted = false;\n run_all(dispose);\n }\n };\n}\nfunction instance($$self, $$props, $$invalidate) {\n let { skinToneEmoji } = $$props;\n let { i18n } = $$props;\n let { database } = $$props;\n let { customEmoji } = $$props;\n let { customCategorySorting } = $$props;\n let initialLoad = true;\n let currentEmojis = [];\n let currentEmojisWithCategories = [];\n let rawSearchText = \"\";\n let searchText = \"\";\n let rootElement;\n let baselineEmoji;\n let tabpanelElement;\n let searchMode = false;\n let activeSearchItem = -1;\n let message;\n let skinTonePickerExpanded = false;\n let skinTonePickerExpandedAfterAnimation = false;\n let skinToneDropdown;\n let currentSkinTone = 0;\n let activeSkinTone = 0;\n let skinToneButtonText;\n let pickerStyle;\n let skinToneButtonLabel = \"\";\n let skinTones = [];\n let currentFavorites = [];\n let defaultFavoriteEmojis;\n let numColumns = DEFAULT_NUM_COLUMNS;\n let isRtl = false;\n let scrollbarWidth = 0;\n let currentGroupIndex = 0;\n let groups$1 = groups;\n let currentGroup;\n let databaseLoaded = false;\n let activeSearchItemId;\n const focus = (id) => {\n rootElement.getRootNode().getElementById(id).focus();\n };\n const fireEvent = (name, detail) => {\n rootElement.dispatchEvent(new CustomEvent(name, { detail, bubbles: true, composed: true }));\n };\n const unicodeWithSkin = (emoji, currentSkinTone2) => currentSkinTone2 && emoji.skins && emoji.skins[currentSkinTone2] || emoji.unicode;\n const labelWithSkin = (emoji, currentSkinTone2) => uniq([\n emoji.name || unicodeWithSkin(emoji, currentSkinTone2),\n ...emoji.shortcodes || []\n ]).join(\", \");\n const isSkinToneOption = (element2) => /^skintone-/.test(element2.id);\n emojiSupportLevelPromise.then((level) => {\n if (!level) {\n $$invalidate(18, message = i18n.emojiUnsupportedMessage);\n }\n });\n function calculateEmojiGridStyle(node) {\n return calculateWidth(node, (width) => {\n {\n const style = getComputedStyle(rootElement);\n const newNumColumns = parseInt(style.getPropertyValue(\"--num-columns\"), 10);\n const newIsRtl = style.getPropertyValue(\"direction\") === \"rtl\";\n const parentWidth = node.parentElement.getBoundingClientRect().width;\n const newScrollbarWidth = parentWidth - width;\n $$invalidate(46, numColumns = newNumColumns);\n $$invalidate(25, scrollbarWidth = newScrollbarWidth);\n $$invalidate(24, isRtl = newIsRtl);\n }\n });\n }\n function checkZwjSupportAndUpdate(zwjEmojisToCheck) {\n const rootNode = rootElement.getRootNode();\n const emojiToDomNode = (emoji) => rootNode.getElementById(`emo-${emoji.id}`);\n checkZwjSupport(zwjEmojisToCheck, baselineEmoji, emojiToDomNode);\n $$invalidate(1, currentEmojis = currentEmojis);\n }\n function isZwjSupported(emoji) {\n return !emoji.unicode || !hasZwj(emoji) || supportedZwjEmojis.get(emoji.unicode);\n }\n async function filterEmojisByVersion(emojis) {\n const emojiSupportLevel = await emojiSupportLevelPromise;\n return emojis.filter(({ version: version2 }) => !version2 || version2 <= emojiSupportLevel);\n }\n async function summarizeEmojis(emojis) {\n return summarizeEmojisForUI(emojis, await emojiSupportLevelPromise);\n }\n async function getEmojisByGroup(group) {\n if (typeof group === \"undefined\") {\n return [];\n }\n const emoji = group === -1 ? customEmoji : await database.getEmojiByGroup(group);\n return summarizeEmojis(await filterEmojisByVersion(emoji));\n }\n async function getEmojisBySearchQuery(query) {\n return summarizeEmojis(await filterEmojisByVersion(await database.getEmojiBySearchQuery(query)));\n }\n function onSearchKeydown(event) {\n if (!searchMode || !currentEmojis.length) {\n return;\n }\n const goToNextOrPrevious = (previous2) => {\n halt(event);\n $$invalidate(5, activeSearchItem = incrementOrDecrement(previous2, activeSearchItem, currentEmojis));\n };\n switch (event.key) {\n case \"ArrowDown\":\n return goToNextOrPrevious(false);\n case \"ArrowUp\":\n return goToNextOrPrevious(true);\n case \"Enter\":\n if (activeSearchItem !== -1) {\n halt(event);\n return clickEmoji(currentEmojis[activeSearchItem].id);\n } else if (currentEmojis.length) {\n $$invalidate(5, activeSearchItem = 0);\n }\n }\n }\n function onNavClick(group) {\n $$invalidate(2, rawSearchText = \"\");\n $$invalidate(44, searchText = \"\");\n $$invalidate(5, activeSearchItem = -1);\n $$invalidate(11, currentGroupIndex = groups$1.findIndex((_) => _.id === group.id));\n }\n function onNavKeydown(event) {\n const { target, key } = event;\n const doFocus = (el) => {\n if (el) {\n halt(event);\n el.focus();\n }\n };\n switch (key) {\n case \"ArrowLeft\":\n return doFocus(target.previousSibling);\n case \"ArrowRight\":\n return doFocus(target.nextSibling);\n case \"Home\":\n return doFocus(target.parentElement.firstChild);\n case \"End\":\n return doFocus(target.parentElement.lastChild);\n }\n }\n async function clickEmoji(unicodeOrName) {\n const emoji = await database.getEmojiByUnicodeOrName(unicodeOrName);\n const emojiSummary = [...currentEmojis, ...currentFavorites].find((_) => _.id === unicodeOrName);\n const skinTonedUnicode = emojiSummary.unicode && unicodeWithSkin(emojiSummary, currentSkinTone);\n await database.incrementFavoriteEmojiCount(unicodeOrName);\n fireEvent(\"emoji-click\", {\n emoji,\n skinTone: currentSkinTone,\n ...skinTonedUnicode && { unicode: skinTonedUnicode },\n ...emojiSummary.name && { name: emojiSummary.name }\n });\n }\n async function onEmojiClick(event) {\n const { target } = event;\n if (!target.classList.contains(\"emoji\")) {\n return;\n }\n halt(event);\n const id = target.id.substring(4);\n clickEmoji(id);\n }\n async function onSkinToneOptionsClick(event) {\n const { target } = event;\n if (!isSkinToneOption(target)) {\n return;\n }\n halt(event);\n const skinTone = parseInt(target.id.slice(9), 10);\n $$invalidate(8, currentSkinTone = skinTone);\n $$invalidate(6, skinTonePickerExpanded = false);\n focus(\"skintone-button\");\n fireEvent(\"skin-tone-change\", { skinTone });\n database.setPreferredSkinTone(skinTone);\n }\n async function onClickSkinToneButton(event) {\n $$invalidate(6, skinTonePickerExpanded = !skinTonePickerExpanded);\n $$invalidate(20, activeSkinTone = currentSkinTone);\n if (skinTonePickerExpanded) {\n halt(event);\n rAF(() => focus(`skintone-${activeSkinTone}`));\n }\n }\n function onSkinToneOptionsKeydown(event) {\n if (!skinTonePickerExpanded) {\n return;\n }\n const changeActiveSkinTone = async (nextSkinTone) => {\n halt(event);\n $$invalidate(20, activeSkinTone = nextSkinTone);\n await tick();\n focus(`skintone-${activeSkinTone}`);\n };\n switch (event.key) {\n case \"ArrowUp\":\n return changeActiveSkinTone(incrementOrDecrement(true, activeSkinTone, skinTones));\n case \"ArrowDown\":\n return changeActiveSkinTone(incrementOrDecrement(false, activeSkinTone, skinTones));\n case \"Home\":\n return changeActiveSkinTone(0);\n case \"End\":\n return changeActiveSkinTone(skinTones.length - 1);\n case \"Enter\":\n return onSkinToneOptionsClick(event);\n case \"Escape\":\n halt(event);\n $$invalidate(6, skinTonePickerExpanded = false);\n return focus(\"skintone-button\");\n }\n }\n function onSkinToneOptionsKeyup(event) {\n if (!skinTonePickerExpanded) {\n return;\n }\n switch (event.key) {\n case \" \":\n return onSkinToneOptionsClick(event);\n }\n }\n async function onSkinToneOptionsFocusOut(event) {\n const { relatedTarget } = event;\n if (!relatedTarget || !isSkinToneOption(relatedTarget)) {\n $$invalidate(6, skinTonePickerExpanded = false);\n }\n }\n function input_input_handler() {\n rawSearchText = this.value;\n $$invalidate(2, rawSearchText);\n }\n function div3_binding($$value) {\n binding_callbacks[$$value ? \"unshift\" : \"push\"](() => {\n skinToneDropdown = $$value;\n $$invalidate(7, skinToneDropdown);\n });\n }\n const click_handler = (group) => onNavClick(group);\n function div10_binding($$value) {\n binding_callbacks[$$value ? \"unshift\" : \"push\"](() => {\n tabpanelElement = $$value;\n $$invalidate(3, tabpanelElement);\n });\n }\n function button1_binding($$value) {\n binding_callbacks[$$value ? \"unshift\" : \"push\"](() => {\n baselineEmoji = $$value;\n $$invalidate(17, baselineEmoji);\n });\n }\n function section_binding($$value) {\n binding_callbacks[$$value ? \"unshift\" : \"push\"](() => {\n rootElement = $$value;\n $$invalidate(16, rootElement);\n });\n }\n $$self.$$set = ($$props2) => {\n if (\"skinToneEmoji\" in $$props2)\n $$invalidate(40, skinToneEmoji = $$props2.skinToneEmoji);\n if (\"i18n\" in $$props2)\n $$invalidate(0, i18n = $$props2.i18n);\n if (\"database\" in $$props2)\n $$invalidate(39, database = $$props2.database);\n if (\"customEmoji\" in $$props2)\n $$invalidate(41, customEmoji = $$props2.customEmoji);\n if (\"customCategorySorting\" in $$props2)\n $$invalidate(42, customCategorySorting = $$props2.customCategorySorting);\n };\n $$self.$$.update = () => {\n if ($$self.$$.dirty[1] & 1280) {\n {\n if (customEmoji && database) {\n $$invalidate(39, database.customEmoji = customEmoji, database);\n }\n }\n }\n if ($$self.$$.dirty[0] & 1 | $$self.$$.dirty[1] & 256) {\n {\n async function handleDatabaseLoading() {\n let showingLoadingMessage = false;\n const timeoutHandle = setTimeout(\n () => {\n showingLoadingMessage = true;\n $$invalidate(18, message = i18n.loadingMessage);\n },\n TIMEOUT_BEFORE_LOADING_MESSAGE\n );\n try {\n await database.ready();\n $$invalidate(14, databaseLoaded = true);\n } catch (err) {\n console.error(err);\n $$invalidate(18, message = i18n.networkErrorMessage);\n } finally {\n clearTimeout(timeoutHandle);\n if (showingLoadingMessage) {\n showingLoadingMessage = false;\n $$invalidate(18, message = \"\");\n }\n }\n }\n if (database) {\n handleDatabaseLoading();\n }\n }\n }\n if ($$self.$$.dirty[0] & 6144 | $$self.$$.dirty[1] & 1024) {\n {\n if (customEmoji && customEmoji.length) {\n $$invalidate(12, groups$1 = [customGroup, ...groups]);\n } else if (groups$1 !== groups) {\n if (currentGroupIndex) {\n $$invalidate(11, currentGroupIndex--, currentGroupIndex);\n }\n $$invalidate(12, groups$1 = groups);\n }\n }\n }\n if ($$self.$$.dirty[0] & 4) {\n {\n rIC(() => {\n $$invalidate(44, searchText = (rawSearchText || \"\").trim());\n $$invalidate(5, activeSearchItem = -1);\n });\n }\n }\n if ($$self.$$.dirty[0] & 6144) {\n $$invalidate(13, currentGroup = groups$1[currentGroupIndex]);\n }\n if ($$self.$$.dirty[0] & 24576 | $$self.$$.dirty[1] & 8192) {\n {\n async function updateEmojis() {\n if (!databaseLoaded) {\n $$invalidate(1, currentEmojis = []);\n $$invalidate(4, searchMode = false);\n } else if (searchText.length >= MIN_SEARCH_TEXT_LENGTH) {\n const currentSearchText = searchText;\n const newEmojis = await getEmojisBySearchQuery(currentSearchText);\n if (currentSearchText === searchText) {\n $$invalidate(1, currentEmojis = newEmojis);\n $$invalidate(4, searchMode = true);\n }\n } else if (currentGroup) {\n const currentGroupId = currentGroup.id;\n const newEmojis = await getEmojisByGroup(currentGroupId);\n if (currentGroupId === currentGroup.id) {\n $$invalidate(1, currentEmojis = newEmojis);\n $$invalidate(4, searchMode = false);\n }\n }\n }\n updateEmojis();\n }\n }\n if ($$self.$$.dirty[0] & 4112) {\n $$invalidate(22, pickerStyle = `\n --font-family: ${FONT_FAMILY};\n --num-groups: ${groups$1.length}; \n --indicator-opacity: ${searchMode ? 0 : 1}; \n --num-skintones: ${NUM_SKIN_TONES};`);\n }\n if ($$self.$$.dirty[0] & 16384 | $$self.$$.dirty[1] & 256) {\n {\n async function updatePreferredSkinTone() {\n if (databaseLoaded) {\n $$invalidate(8, currentSkinTone = await database.getPreferredSkinTone());\n }\n }\n updatePreferredSkinTone();\n }\n }\n if ($$self.$$.dirty[1] & 512) {\n $$invalidate(9, skinTones = Array(NUM_SKIN_TONES).fill().map((_, i) => applySkinTone(skinToneEmoji, i)));\n }\n if ($$self.$$.dirty[0] & 768) {\n $$invalidate(21, skinToneButtonText = skinTones[currentSkinTone]);\n }\n if ($$self.$$.dirty[0] & 257) {\n $$invalidate(23, skinToneButtonLabel = i18n.skinToneLabel.replace(\"{skinTone}\", i18n.skinTones[currentSkinTone]));\n }\n if ($$self.$$.dirty[0] & 16384 | $$self.$$.dirty[1] & 256) {\n {\n async function updateDefaultFavoriteEmojis() {\n $$invalidate(45, defaultFavoriteEmojis = (await Promise.all(MOST_COMMONLY_USED_EMOJI.map((unicode) => database.getEmojiByUnicodeOrName(unicode)))).filter(Boolean));\n }\n if (databaseLoaded) {\n updateDefaultFavoriteEmojis();\n }\n }\n }\n if ($$self.$$.dirty[0] & 16384 | $$self.$$.dirty[1] & 49408) {\n {\n async function updateFavorites() {\n const dbFavorites = await database.getTopFavoriteEmoji(numColumns);\n const favorites = await summarizeEmojis(uniqBy([...dbFavorites, ...defaultFavoriteEmojis], (_) => _.unicode || _.name).slice(0, numColumns));\n $$invalidate(10, currentFavorites = favorites);\n }\n if (databaseLoaded && defaultFavoriteEmojis) {\n updateFavorites();\n }\n }\n }\n if ($$self.$$.dirty[0] & 10) {\n {\n const zwjEmojisToCheck = currentEmojis.filter((emoji) => emoji.unicode).filter((emoji) => hasZwj(emoji) && !supportedZwjEmojis.has(emoji.unicode));\n if (zwjEmojisToCheck.length) {\n rAF(() => checkZwjSupportAndUpdate(zwjEmojisToCheck));\n } else {\n $$invalidate(1, currentEmojis = currentEmojis.filter(isZwjSupported));\n rAF(() => {\n (tabpanelElement || {}).scrollTop = 0;\n });\n }\n }\n }\n if ($$self.$$.dirty[0] & 1026 | $$self.$$.dirty[1] & 4096)\n ;\n if ($$self.$$.dirty[0] & 18 | $$self.$$.dirty[1] & 2048) {\n {\n let calculateCurrentEmojisWithCategories = function() {\n if (searchMode) {\n return [{ category: \"\", emojis: currentEmojis }];\n }\n const categoriesToEmoji = /* @__PURE__ */ new Map();\n for (const emoji of currentEmojis) {\n const category = emoji.category || \"\";\n let emojis = categoriesToEmoji.get(category);\n if (!emojis) {\n emojis = [];\n categoriesToEmoji.set(category, emojis);\n }\n emojis.push(emoji);\n }\n return [...categoriesToEmoji.entries()].map(([category, emojis]) => ({ category, emojis })).sort((a, b) => customCategorySorting(a.category, b.category));\n };\n $$invalidate(15, currentEmojisWithCategories = calculateCurrentEmojisWithCategories());\n }\n }\n if ($$self.$$.dirty[0] & 34) {\n $$invalidate(26, activeSearchItemId = activeSearchItem !== -1 && currentEmojis[activeSearchItem].id);\n }\n if ($$self.$$.dirty[0] & 192) {\n {\n if (skinTonePickerExpanded) {\n skinToneDropdown.addEventListener(\n \"transitionend\",\n () => {\n $$invalidate(19, skinTonePickerExpandedAfterAnimation = true);\n },\n { once: true }\n );\n } else {\n $$invalidate(19, skinTonePickerExpandedAfterAnimation = false);\n }\n }\n }\n };\n return [\n i18n,\n currentEmojis,\n rawSearchText,\n tabpanelElement,\n searchMode,\n activeSearchItem,\n skinTonePickerExpanded,\n skinToneDropdown,\n currentSkinTone,\n skinTones,\n currentFavorites,\n currentGroupIndex,\n groups$1,\n currentGroup,\n databaseLoaded,\n currentEmojisWithCategories,\n rootElement,\n baselineEmoji,\n message,\n skinTonePickerExpandedAfterAnimation,\n activeSkinTone,\n skinToneButtonText,\n pickerStyle,\n skinToneButtonLabel,\n isRtl,\n scrollbarWidth,\n activeSearchItemId,\n unicodeWithSkin,\n labelWithSkin,\n calculateEmojiGridStyle,\n onSearchKeydown,\n onNavClick,\n onNavKeydown,\n onEmojiClick,\n onSkinToneOptionsClick,\n onClickSkinToneButton,\n onSkinToneOptionsKeydown,\n onSkinToneOptionsKeyup,\n onSkinToneOptionsFocusOut,\n database,\n skinToneEmoji,\n customEmoji,\n customCategorySorting,\n initialLoad,\n searchText,\n defaultFavoriteEmojis,\n numColumns,\n input_input_handler,\n div3_binding,\n click_handler,\n div10_binding,\n button1_binding,\n section_binding\n ];\n}\nclass Picker extends SvelteComponent {\n constructor(options) {\n super();\n init(\n this,\n options,\n instance,\n create_fragment,\n safe_not_equal,\n {\n skinToneEmoji: 40,\n i18n: 0,\n database: 39,\n customEmoji: 41,\n customCategorySorting: 42\n },\n null,\n [-1, -1, -1]\n );\n }\n}\nconst DEFAULT_DATA_SOURCE = \"https://cdn.jsdelivr.net/npm/emoji-picker-element-data@^1/en/emojibase/data.json\";\nconst DEFAULT_LOCALE = \"en\";\nvar enI18n = {\n categoriesLabel: \"Categories\",\n emojiUnsupportedMessage: \"Your browser does not support color emoji.\",\n favoritesLabel: \"Favorites\",\n loadingMessage: \"Loading\\u2026\",\n networkErrorMessage: \"Could not load emoji.\",\n regionLabel: \"Emoji picker\",\n searchDescription: \"When search results are available, press up or down to select and enter to choose.\",\n searchLabel: \"Search\",\n searchResultsLabel: \"Search results\",\n skinToneDescription: \"When expanded, press up or down to select and enter to choose.\",\n skinToneLabel: \"Choose a skin tone (currently {skinTone})\",\n skinTonesLabel: \"Skin tones\",\n skinTones: [\n \"Default\",\n \"Light\",\n \"Medium-Light\",\n \"Medium\",\n \"Medium-Dark\",\n \"Dark\"\n ],\n categories: {\n custom: \"Custom\",\n \"smileys-emotion\": \"Smileys and emoticons\",\n \"people-body\": \"People and body\",\n \"animals-nature\": \"Animals and nature\",\n \"food-drink\": \"Food and drink\",\n \"travel-places\": \"Travel and places\",\n activities: \"Activities\",\n objects: \"Objects\",\n symbols: \"Symbols\",\n flags: \"Flags\"\n }\n};\nconst PROPS = [\n \"customEmoji\",\n \"customCategorySorting\",\n \"database\",\n \"dataSource\",\n \"i18n\",\n \"locale\",\n \"skinToneEmoji\"\n];\nclass PickerElement extends HTMLElement {\n constructor(props) {\n super();\n this.attachShadow({ mode: \"open\" });\n const style = document.createElement(\"style\");\n style.textContent = \":host{--emoji-size:1.375rem;--emoji-padding:0.5rem;--category-emoji-size:var(--emoji-size);--category-emoji-padding:var(--emoji-padding);--indicator-height:3px;--input-border-radius:0.5rem;--input-border-size:1px;--input-font-size:1rem;--input-line-height:1.5;--input-padding:0.25rem;--num-columns:8;--outline-size:2px;--border-size:1px;--skintone-border-radius:1rem;--category-font-size:1rem;display:flex;width:min-content;height:400px}:host,:host(.light){--background:#fff;--border-color:#e0e0e0;--indicator-color:#385ac1;--input-border-color:#999;--input-font-color:#111;--input-placeholder-color:#999;--outline-color:#999;--category-font-color:#111;--button-active-background:#e6e6e6;--button-hover-background:#d9d9d9}:host(.dark){--background:#222;--border-color:#444;--indicator-color:#5373ec;--input-border-color:#ccc;--input-font-color:#efefef;--input-placeholder-color:#ccc;--outline-color:#fff;--category-font-color:#efefef;--button-active-background:#555555;--button-hover-background:#484848}@media (prefers-color-scheme:dark){:host{--background:#222;--border-color:#444;--indicator-color:#5373ec;--input-border-color:#ccc;--input-font-color:#efefef;--input-placeholder-color:#ccc;--outline-color:#fff;--category-font-color:#efefef;--button-active-background:#555555;--button-hover-background:#484848}}:host([hidden]){display:none}button{margin:0;padding:0;border:0;background:0 0;box-shadow:none;-webkit-tap-highlight-color:transparent}button::-moz-focus-inner{border:0}input{padding:0;margin:0;line-height:1.15;font-family:inherit}input[type=search]{-webkit-appearance:none}:focus{outline:var(--outline-color) solid var(--outline-size);outline-offset:calc(-1*var(--outline-size))}:host([data-js-focus-visible]) :focus:not([data-focus-visible-added]){outline:0}:focus:not(:focus-visible){outline:0}.hide-focus{outline:0}*{box-sizing:border-box}.picker{contain:content;display:flex;flex-direction:column;background:var(--background);border:var(--border-size) solid var(--border-color);width:100%;height:100%;overflow:hidden;--total-emoji-size:calc(var(--emoji-size) + (2 * var(--emoji-padding)));--total-category-emoji-size:calc(var(--category-emoji-size) + (2 * var(--category-emoji-padding)))}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.hidden{opacity:0;pointer-events:none}.abs-pos{position:absolute;left:0;top:0}.gone{display:none!important}.skintone-button-wrapper,.skintone-list{background:var(--background);z-index:3}.skintone-button-wrapper.expanded{z-index:1}.skintone-list{position:absolute;inset-inline-end:0;top:0;z-index:2;overflow:visible;border-bottom:var(--border-size) solid var(--border-color);border-radius:0 0 var(--skintone-border-radius) var(--skintone-border-radius);will-change:transform;transition:transform .2s ease-in-out;transform-origin:center 0}@media (prefers-reduced-motion:reduce){.skintone-list{transition-duration:.001s}}@supports not (inset-inline-end:0){.skintone-list{right:0}}.skintone-list.no-animate{transition:none}.tabpanel{overflow-y:auto;-webkit-overflow-scrolling:touch;will-change:transform;min-height:0;flex:1;contain:content}.emoji-menu{display:grid;grid-template-columns:repeat(var(--num-columns),var(--total-emoji-size));justify-content:space-around;align-items:flex-start;width:100%}.category{padding:var(--emoji-padding);font-size:var(--category-font-size);color:var(--category-font-color)}.custom-emoji,.emoji,button.emoji{height:var(--total-emoji-size);width:var(--total-emoji-size)}.emoji,button.emoji{font-size:var(--emoji-size);display:flex;align-items:center;justify-content:center;border-radius:100%;line-height:1;overflow:hidden;font-family:var(--font-family);cursor:pointer}@media (hover:hover) and (pointer:fine){.emoji:hover,button.emoji:hover{background:var(--button-hover-background)}}.emoji.active,.emoji:active,button.emoji.active,button.emoji:active{background:var(--button-active-background)}.custom-emoji{padding:var(--emoji-padding);object-fit:contain;pointer-events:none;background-repeat:no-repeat;background-position:center center;background-size:var(--emoji-size) var(--emoji-size)}.nav,.nav-button{align-items:center}.nav{display:grid;justify-content:space-between;contain:content}.nav-button{display:flex;justify-content:center}.nav-emoji{font-size:var(--category-emoji-size);width:var(--total-category-emoji-size);height:var(--total-category-emoji-size)}.indicator-wrapper{display:flex;border-bottom:1px solid var(--border-color)}.indicator{width:calc(100%/var(--num-groups));height:var(--indicator-height);opacity:var(--indicator-opacity);background-color:var(--indicator-color);will-change:transform,opacity;transition:opacity .1s linear,transform .25s ease-in-out}@media (prefers-reduced-motion:reduce){.indicator{will-change:opacity;transition:opacity .1s linear}}.pad-top,input.search{background:var(--background);width:100%}.pad-top{height:var(--emoji-padding);z-index:3}.search-row{display:flex;align-items:center;position:relative;padding-inline-start:var(--emoji-padding);padding-bottom:var(--emoji-padding)}.search-wrapper{flex:1;min-width:0}input.search{padding:var(--input-padding);border-radius:var(--input-border-radius);border:var(--input-border-size) solid var(--input-border-color);color:var(--input-font-color);font-size:var(--input-font-size);line-height:var(--input-line-height)}input.search::placeholder{color:var(--input-placeholder-color)}.favorites{display:flex;flex-direction:row;border-top:var(--border-size) solid var(--border-color);contain:content}.message{padding:var(--emoji-padding)}\";\n this.shadowRoot.appendChild(style);\n this._ctx = {\n locale: DEFAULT_LOCALE,\n dataSource: DEFAULT_DATA_SOURCE,\n skinToneEmoji: DEFAULT_SKIN_TONE_EMOJI,\n customCategorySorting: DEFAULT_CATEGORY_SORTING,\n customEmoji: null,\n i18n: enI18n,\n ...props\n };\n for (const prop of PROPS) {\n if (prop !== \"database\" && Object.prototype.hasOwnProperty.call(this, prop)) {\n this._ctx[prop] = this[prop];\n delete this[prop];\n }\n }\n this._dbFlush();\n }\n connectedCallback() {\n this._cmp = new Picker({\n target: this.shadowRoot,\n props: this._ctx\n });\n }\n disconnectedCallback() {\n this._cmp.$destroy();\n this._cmp = void 0;\n const { database } = this._ctx;\n if (database) {\n database.close().catch((err) => console.error(err));\n }\n }\n static get observedAttributes() {\n return [\"locale\", \"data-source\", \"skin-tone-emoji\"];\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n this._set(\n attrName.replace(/-([a-z])/g, (_, up) => up.toUpperCase()),\n newValue\n );\n }\n _set(prop, newValue) {\n this._ctx[prop] = newValue;\n if (this._cmp) {\n this._cmp.$set({ [prop]: newValue });\n }\n if ([\"locale\", \"dataSource\"].includes(prop)) {\n this._dbFlush();\n }\n }\n _dbCreate() {\n const { locale, dataSource, database } = this._ctx;\n if (!database || database.locale !== locale || database.dataSource !== dataSource) {\n this._set(\"database\", new Database({ locale, dataSource }));\n }\n }\n _dbFlush() {\n Promise.resolve().then(() => this._dbCreate());\n }\n}\nconst definitions = {};\nfor (const prop of PROPS) {\n definitions[prop] = {\n get() {\n if (prop === \"database\") {\n this._dbCreate();\n }\n return this._ctx[prop];\n },\n set(val) {\n if (prop === \"database\") {\n throw new Error(\"database is read-only\");\n }\n this._set(prop, val);\n }\n };\n}\nObject.defineProperties(PickerElement.prototype, definitions);\nif (!customElements.get(\"emoji-picker\")) {\n customElements.define(\"emoji-picker\", PickerElement);\n}\nfunction findParentBySelector(node, selector) {\n while (node && !node.querySelector(selector)) {\n node = node.parentNode;\n const element2 = node.querySelector(selector);\n if (element2)\n return element2;\n }\n return null;\n}\nconst _sfc_main$j = {\n name: \"EmojiPickerContainer\",\n components: {\n SvgIcon\n },\n props: {\n emojiOpened: { type: Boolean, default: false },\n emojiReaction: { type: Boolean, default: false },\n positionTop: { type: Boolean, default: false },\n positionRight: { type: Boolean, default: false },\n messageId: { type: String, default: \"\" },\n emojiDataSource: { type: String, default: void 0 }\n },\n emits: [\"add-emoji\", \"open-emoji\"],\n data() {\n return {\n emojiPickerHeight: 320,\n emojiPickerTop: 0,\n emojiPickerRight: \"\"\n };\n },\n watch: {\n emojiOpened(val) {\n if (val) {\n setTimeout(() => {\n this.addCustomStyling();\n this.$refs.emojiPicker.shadowRoot.addEventListener(\n \"emoji-click\",\n ({ detail }) => {\n this.$emit(\"add-emoji\", {\n unicode: detail.unicode\n });\n }\n );\n }, 0);\n }\n }\n },\n methods: {\n addCustomStyling() {\n const picker = `.picker {\n\t\t\t\tborder: none;\n\t\t\t}`;\n const nav = `.nav {\n\t\t\t\toverflow-x: auto;\n\t\t\t}`;\n const searchBox = `.search-wrapper {\n\t\t\t\tpadding-right: 2px;\n\t\t\t\tpadding-left: 2px;\n\t\t\t}`;\n const search2 = `input.search {\n\t\t\t\theight: 32px;\n\t\t\t\tfont-size: 14px;\n\t\t\t\tborder-radius: 10rem;\n\t\t\t\tborder: var(--chat-border-style);\n\t\t\t\tpadding: 5px 10px;\n\t\t\t\toutline: none;\n\t\t\t\tbackground: var(--chat-bg-color-input);\n\t\t\t\tcolor: var(--chat-color);\n\t\t\t}`;\n const style = document.createElement(\"style\");\n style.textContent = picker + nav + searchBox + search2;\n this.$refs.emojiPicker.shadowRoot.appendChild(style);\n },\n openEmoji(ev) {\n this.$emit(\"open-emoji\", !this.emojiOpened);\n this.setEmojiPickerPosition(\n ev.clientY,\n ev.view.innerWidth,\n ev.view.innerHeight\n );\n },\n setEmojiPickerPosition(clientY, innerWidth, innerHeight) {\n const mobileSize = innerWidth < 500 || innerHeight < 700;\n const roomFooterRef = findParentBySelector(this.$el, \"#room-footer\");\n if (!roomFooterRef) {\n if (mobileSize)\n this.emojiPickerRight = \"-50px\";\n return;\n }\n if (mobileSize) {\n this.emojiPickerRight = innerWidth / 2 - (this.positionTop ? 200 : 150) + \"px\";\n this.emojiPickerTop = 100;\n this.emojiPickerHeight = innerHeight - 200;\n } else {\n const roomFooterTop = roomFooterRef.getBoundingClientRect().top;\n const pickerTopPosition = roomFooterTop - clientY > this.emojiPickerHeight - 50;\n if (pickerTopPosition)\n this.emojiPickerTop = clientY + 10;\n else\n this.emojiPickerTop = clientY - this.emojiPickerHeight - 10;\n this.emojiPickerRight = this.positionTop ? \"0px\" : this.positionRight ? \"60px\" : \"\";\n }\n }\n }\n};\nconst _hoisted_1$j = { class: \"vac-emoji-wrapper\" };\nfunction _sfc_render$j(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n const _component_emoji_picker = resolveComponent(\"emoji-picker\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$j, [\n createBaseVNode(\"div\", {\n class: normalizeClass([\"vac-svg-button\", { \"vac-emoji-reaction\": $props.emojiReaction }]),\n onClick: _cache[0] || (_cache[0] = (...args) => $options.openEmoji && $options.openEmoji(...args))\n }, [\n renderSlot(\n _ctx.$slots,\n $props.messageId ? \"emoji-picker-reaction-icon_\" + $props.messageId : \"emoji-picker-icon\",\n {},\n () => [\n createVNode(_component_svg_icon, {\n name: \"emoji\",\n param: $props.emojiReaction ? \"reaction\" : \"\"\n }, null, 8, [\"param\"])\n ]\n )\n ], 2),\n $props.emojiOpened ? (openBlock(), createBlock(Transition, {\n key: 0,\n name: \"vac-slide-up\",\n appear: \"\"\n }, {\n default: withCtx(() => [\n createBaseVNode(\"div\", {\n class: normalizeClass([\"vac-emoji-picker\", { \"vac-picker-reaction\": $props.emojiReaction }]),\n style: normalizeStyle({\n height: `${$data.emojiPickerHeight}px`,\n top: $props.positionTop ? $data.emojiPickerHeight : `${$data.emojiPickerTop}px`,\n right: $data.emojiPickerRight,\n display: $data.emojiPickerTop || !$props.emojiReaction ? \"initial\" : \"none\"\n })\n }, [\n $props.emojiOpened ? (openBlock(), createBlock(_component_emoji_picker, {\n key: 0,\n ref: \"emojiPicker\",\n \"data-source\": $props.emojiDataSource\n }, null, 8, [\"data-source\"])) : createCommentVNode(\"\", true)\n ], 6)\n ]),\n _: 1\n })) : createCommentVNode(\"\", true)\n ]);\n}\nvar EmojiPickerContainer = /* @__PURE__ */ _export_sfc(_sfc_main$j, [[\"render\", _sfc_render$j]]);\nconst _sfc_main$i = {\n name: \"RoomFiles\",\n components: {\n Loader,\n SvgIcon\n },\n props: {\n file: { type: Object, required: true },\n index: { type: Number, required: true }\n },\n emits: [\"remove-file\"],\n computed: {\n isImage() {\n return isImageFile(this.file);\n },\n isVideo() {\n return isVideoFile(this.file);\n }\n }\n};\nconst _hoisted_1$i = { class: \"vac-room-file-container\" };\nconst _hoisted_2$g = [\"src\"];\nconst _hoisted_3$d = { class: \"vac-text-ellipsis\" };\nconst _hoisted_4$c = {\n key: 0,\n class: \"vac-text-ellipsis vac-text-extension\"\n};\nfunction _sfc_render$i(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_loader = resolveComponent(\"loader\");\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$i, [\n createVNode(_component_loader, {\n show: $props.file.loading,\n type: \"room-file\"\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"show\"]),\n createBaseVNode(\"div\", {\n class: \"vac-svg-button vac-icon-remove\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"remove-file\", $props.index))\n }, [\n renderSlot(_ctx.$slots, \"image-close-icon\", {}, () => [\n createVNode(_component_svg_icon, {\n name: \"close\",\n param: \"image\"\n })\n ])\n ]),\n $options.isImage ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"vac-message-image\", { \"vac-blur-loading\": $props.file.loading }]),\n style: normalizeStyle({\n \"background-image\": `url('${$props.file.localUrl || $props.file.url}')`\n })\n }, null, 6)) : $options.isVideo ? (openBlock(), createElementBlock(\"video\", {\n key: 1,\n controls: \"\",\n class: normalizeClass({ \"vac-blur-loading\": $props.file.loading })\n }, [\n createBaseVNode(\"source\", {\n src: $props.file.localUrl || $props.file.url\n }, null, 8, _hoisted_2$g)\n ], 2)) : (openBlock(), createElementBlock(\"div\", {\n key: 2,\n class: normalizeClass([\"vac-file-container\", { \"vac-blur-loading\": $props.file.loading }])\n }, [\n createBaseVNode(\"div\", null, [\n renderSlot(_ctx.$slots, \"file-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"file\" })\n ])\n ]),\n createBaseVNode(\"div\", _hoisted_3$d, toDisplayString($props.file.name), 1),\n $props.file.extension ? (openBlock(), createElementBlock(\"div\", _hoisted_4$c, toDisplayString($props.file.extension), 1)) : createCommentVNode(\"\", true)\n ], 2))\n ]);\n}\nvar RoomFile = /* @__PURE__ */ _export_sfc(_sfc_main$i, [[\"render\", _sfc_render$i]]);\nconst _sfc_main$h = {\n name: \"RoomFiles\",\n components: {\n SvgIcon,\n RoomFile\n },\n props: {\n files: { type: Array, required: true }\n },\n emits: [\"remove-file\", \"reset-message\"],\n computed: {}\n};\nconst _hoisted_1$h = {\n key: 0,\n class: \"vac-room-files-container\"\n};\nconst _hoisted_2$f = { class: \"vac-files-box\" };\nconst _hoisted_3$c = { class: \"vac-icon-close\" };\nfunction _sfc_render$h(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_room_file = resolveComponent(\"room-file\");\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n return openBlock(), createBlock(Transition, { name: \"vac-slide-up\" }, {\n default: withCtx(() => [\n $props.files.length ? (openBlock(), createElementBlock(\"div\", _hoisted_1$h, [\n createBaseVNode(\"div\", _hoisted_2$f, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($props.files, (file, i) => {\n return openBlock(), createElementBlock(\"div\", { key: i }, [\n createVNode(_component_room_file, {\n file,\n index: i,\n onRemoveFile: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"remove-file\", $event))\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"file\", \"index\"])\n ]);\n }), 128))\n ]),\n createBaseVNode(\"div\", _hoisted_3$c, [\n createBaseVNode(\"div\", {\n class: \"vac-svg-button\",\n onClick: _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"reset-message\"))\n }, [\n renderSlot(_ctx.$slots, \"files-close-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"close-outline\" })\n ])\n ])\n ])\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 3\n });\n}\nvar RoomFiles = /* @__PURE__ */ _export_sfc(_sfc_main$h, [[\"render\", _sfc_render$h]]);\nconst _sfc_main$g = {\n props: {\n percentage: { type: Number, default: 0 },\n messageSelectionEnabled: { type: Boolean, required: true }\n },\n emits: [\"hover-audio-progress\", \"change-linehead\"],\n data() {\n return {\n isMouseDown: false\n };\n },\n methods: {\n onMouseDown(ev) {\n if (this.messageSelectionEnabled)\n return;\n this.isMouseDown = true;\n const seekPos = this.calculateLineHeadPosition(ev, this.$refs.progress);\n this.$emit(\"change-linehead\", seekPos);\n document.addEventListener(\"mousemove\", this.onMouseMove);\n document.addEventListener(\"mouseup\", this.onMouseUp);\n },\n onMouseUp(ev) {\n if (this.messageSelectionEnabled)\n return;\n this.isMouseDown = false;\n document.removeEventListener(\"mouseup\", this.onMouseUp);\n document.removeEventListener(\"mousemove\", this.onMouseMove);\n const seekPos = this.calculateLineHeadPosition(ev, this.$refs.progress);\n this.$emit(\"change-linehead\", seekPos);\n },\n onMouseMove(ev) {\n if (this.messageSelectionEnabled)\n return;\n const seekPos = this.calculateLineHeadPosition(ev, this.$refs.progress);\n this.$emit(\"change-linehead\", seekPos);\n },\n calculateLineHeadPosition(ev, element2) {\n const progressWidth = element2.getBoundingClientRect().width;\n const leftPosition = element2.getBoundingClientRect().left;\n let pos = (ev.clientX - leftPosition) / progressWidth;\n pos = pos < 0 ? 0 : pos;\n pos = pos > 1 ? 1 : pos;\n return pos;\n }\n }\n};\nconst _hoisted_1$g = { class: \"vac-player-progress\" };\nconst _hoisted_2$e = { class: \"vac-line-container\" };\nfunction _sfc_render$g(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", {\n ref: \"progress\",\n class: \"vac-player-bar\",\n onMousedown: _cache[0] || (_cache[0] = (...args) => $options.onMouseDown && $options.onMouseDown(...args)),\n onMouseover: _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"hover-audio-progress\", true)),\n onMouseout: _cache[2] || (_cache[2] = ($event) => _ctx.$emit(\"hover-audio-progress\", false))\n }, [\n createBaseVNode(\"div\", _hoisted_1$g, [\n createBaseVNode(\"div\", _hoisted_2$e, [\n createBaseVNode(\"div\", {\n class: \"vac-line-progress\",\n style: normalizeStyle({ width: `${$props.percentage}%` })\n }, null, 4),\n createBaseVNode(\"div\", {\n class: normalizeClass([\"vac-line-dot\", { \"vac-line-dot__active\": $data.isMouseDown }]),\n style: normalizeStyle({ left: `${$props.percentage}%` })\n }, null, 6)\n ])\n ])\n ], 544);\n}\nvar AudioControl = /* @__PURE__ */ _export_sfc(_sfc_main$g, [[\"render\", _sfc_render$g]]);\nconst _sfc_main$f = {\n name: \"AudioPlayer\",\n components: {\n SvgIcon,\n AudioControl\n },\n props: {\n messageId: { type: [String, Number], default: null },\n src: { type: String, default: null },\n messageSelectionEnabled: { type: Boolean, required: true }\n },\n emits: [\"hover-audio-progress\", \"update-progress-time\"],\n data() {\n return {\n isPlaying: false,\n duration: this.convertTimeMMSS(0),\n playedTime: this.convertTimeMMSS(0),\n progress: 0\n };\n },\n computed: {\n playerUniqId() {\n return `audio-player${this.messageId}`;\n },\n audioSource() {\n if (this.src)\n return this.src;\n this.resetProgress();\n return null;\n }\n },\n mounted() {\n this.player = this.$el.querySelector(\"#\" + this.playerUniqId);\n this.player.addEventListener(\"ended\", () => {\n this.isPlaying = false;\n });\n this.player.addEventListener(\"loadeddata\", () => {\n this.resetProgress();\n this.duration = this.convertTimeMMSS(this.player.duration);\n this.updateProgressTime();\n });\n this.player.addEventListener(\"timeupdate\", this.onTimeUpdate);\n },\n methods: {\n convertTimeMMSS(seconds) {\n return new Date(seconds * 1e3).toISOString().substr(14, 5);\n },\n playback() {\n if (this.messageSelectionEnabled || !this.audioSource)\n return;\n if (this.isPlaying)\n this.player.pause();\n else\n setTimeout(() => this.player.play());\n this.isPlaying = !this.isPlaying;\n },\n resetProgress() {\n if (this.isPlaying)\n this.player.pause();\n this.duration = this.convertTimeMMSS(0);\n this.playedTime = this.convertTimeMMSS(0);\n this.progress = 0;\n this.isPlaying = false;\n this.updateProgressTime();\n },\n onTimeUpdate() {\n this.playedTime = this.convertTimeMMSS(this.player.currentTime);\n this.progress = this.player.currentTime / this.player.duration * 100;\n this.updateProgressTime();\n },\n onUpdateProgress(pos) {\n if (pos)\n this.player.currentTime = pos * this.player.duration;\n },\n updateProgressTime() {\n this.$emit(\n \"update-progress-time\",\n this.progress > 1 ? this.playedTime : this.duration\n );\n }\n }\n};\nconst _hoisted_1$f = { class: \"vac-audio-player\" };\nconst _hoisted_2$d = [\"id\", \"src\"];\nfunction _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n const _component_audio_control = resolveComponent(\"audio-control\");\n return openBlock(), createElementBlock(\"div\", null, [\n createBaseVNode(\"div\", _hoisted_1$f, [\n createBaseVNode(\"div\", {\n class: \"vac-svg-button\",\n onClick: _cache[0] || (_cache[0] = (...args) => $options.playback && $options.playback(...args))\n }, [\n $data.isPlaying ? renderSlot(_ctx.$slots, \"audio-pause-icon_\" + $props.messageId, { key: 0 }, () => [\n createVNode(_component_svg_icon, { name: \"audio-pause\" })\n ]) : renderSlot(_ctx.$slots, \"audio-play-icon_\" + $props.messageId, { key: 1 }, () => [\n createVNode(_component_svg_icon, { name: \"audio-play\" })\n ])\n ]),\n createVNode(_component_audio_control, {\n percentage: $data.progress,\n \"message-selection-enabled\": $props.messageSelectionEnabled,\n onChangeLinehead: $options.onUpdateProgress,\n onHoverAudioProgress: _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"hover-audio-progress\", $event))\n }, null, 8, [\"percentage\", \"message-selection-enabled\", \"onChangeLinehead\"]),\n createBaseVNode(\"audio\", {\n id: $options.playerUniqId,\n src: $options.audioSource\n }, null, 8, _hoisted_2$d)\n ])\n ]);\n}\nvar AudioPlayer = /* @__PURE__ */ _export_sfc(_sfc_main$f, [[\"render\", _sfc_render$f]]);\nconst _sfc_main$e = {\n name: \"RoomMessageReply\",\n components: {\n SvgIcon,\n FormatMessage,\n AudioPlayer\n },\n props: {\n room: { type: Object, required: true },\n messageReply: { type: Object, default: null },\n textFormatting: { type: Object, required: true },\n linkOptions: { type: Object, required: true }\n },\n emits: [\"reset-message\"],\n computed: {\n firstFile() {\n var _a, _b;\n return ((_b = (_a = this.messageReply) == null ? void 0 : _a.files) == null ? void 0 : _b.length) ? this.messageReply.files[0] : {};\n },\n isImage() {\n return isImageFile(this.firstFile);\n },\n isVideo() {\n return isVideoFile(this.firstFile);\n },\n isAudio() {\n return isAudioFile(this.firstFile);\n },\n isOtherFile() {\n var _a, _b;\n return ((_b = (_a = this.messageReply) == null ? void 0 : _a.files) == null ? void 0 : _b.length) && !this.isAudio && !this.isVideo && !this.isImage;\n }\n }\n};\nconst _hoisted_1$e = {\n key: 0,\n class: \"vac-reply-container\"\n};\nconst _hoisted_2$c = { class: \"vac-reply-box\" };\nconst _hoisted_3$b = { class: \"vac-reply-info\" };\nconst _hoisted_4$b = { class: \"vac-reply-username\" };\nconst _hoisted_5$8 = { class: \"vac-reply-content\" };\nconst _hoisted_6$4 = [\"src\"];\nconst _hoisted_7$4 = {\n key: 1,\n controls: \"\",\n class: \"vac-image-reply\"\n};\nconst _hoisted_8$2 = [\"src\"];\nconst _hoisted_9$2 = {\n key: 3,\n class: \"vac-image-reply vac-file-container\"\n};\nconst _hoisted_10$2 = { class: \"vac-text-ellipsis\" };\nconst _hoisted_11$1 = {\n key: 0,\n class: \"vac-text-ellipsis vac-text-extension\"\n};\nconst _hoisted_12$1 = { class: \"vac-icon-reply\" };\nfunction _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_format_message = resolveComponent(\"format-message\");\n const _component_audio_player = resolveComponent(\"audio-player\");\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n return openBlock(), createBlock(Transition, { name: \"vac-slide-up\" }, {\n default: withCtx(() => [\n $props.messageReply ? (openBlock(), createElementBlock(\"div\", _hoisted_1$e, [\n createBaseVNode(\"div\", _hoisted_2$c, [\n createBaseVNode(\"div\", _hoisted_3$b, [\n createBaseVNode(\"div\", _hoisted_4$b, toDisplayString($props.messageReply.username), 1),\n createBaseVNode(\"div\", _hoisted_5$8, [\n createVNode(_component_format_message, {\n \"message-id\": $props.messageReply._id,\n content: $props.messageReply.content,\n users: $props.room.users,\n \"text-formatting\": $props.textFormatting,\n \"link-options\": $props.linkOptions,\n reply: true\n }, null, 8, [\"message-id\", \"content\", \"users\", \"text-formatting\", \"link-options\"])\n ])\n ]),\n $options.isImage ? (openBlock(), createElementBlock(\"img\", {\n key: 0,\n src: $options.firstFile.url,\n class: \"vac-image-reply\"\n }, null, 8, _hoisted_6$4)) : $options.isVideo ? (openBlock(), createElementBlock(\"video\", _hoisted_7$4, [\n createBaseVNode(\"source\", {\n src: $options.firstFile.url\n }, null, 8, _hoisted_8$2)\n ])) : $options.isAudio ? (openBlock(), createBlock(_component_audio_player, {\n key: 2,\n src: $options.firstFile.url,\n \"message-selection-enabled\": false,\n class: \"vac-audio-reply\"\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"src\"])) : $options.isOtherFile ? (openBlock(), createElementBlock(\"div\", _hoisted_9$2, [\n createBaseVNode(\"div\", null, [\n renderSlot(_ctx.$slots, \"file-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"file\" })\n ])\n ]),\n createBaseVNode(\"div\", _hoisted_10$2, toDisplayString($options.firstFile.name), 1),\n $options.firstFile.extension ? (openBlock(), createElementBlock(\"div\", _hoisted_11$1, toDisplayString($options.firstFile.extension), 1)) : createCommentVNode(\"\", true)\n ])) : createCommentVNode(\"\", true)\n ]),\n createBaseVNode(\"div\", _hoisted_12$1, [\n createBaseVNode(\"div\", {\n class: \"vac-svg-button\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"reset-message\"))\n }, [\n renderSlot(_ctx.$slots, \"reply-close-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"close-outline\" })\n ])\n ])\n ])\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 3\n });\n}\nvar RoomMessageReply = /* @__PURE__ */ _export_sfc(_sfc_main$e, [[\"render\", _sfc_render$e]]);\nconst _sfc_main$d = {\n name: \"RoomUsersTag\",\n props: {\n filteredUsersTag: { type: Array, required: true },\n selectItem: { type: Boolean, default: null },\n activeUpOrDown: { type: Number, default: null }\n },\n emits: [\"select-user-tag\", \"activate-item\"],\n data() {\n return {\n activeItem: null\n };\n },\n watch: {\n filteredUsersTag(val, oldVal) {\n if (!oldVal.length || val.length !== oldVal.length) {\n this.activeItem = 0;\n }\n },\n selectItem(val) {\n if (val) {\n this.$emit(\"select-user-tag\", this.filteredUsersTag[this.activeItem]);\n }\n },\n activeUpOrDown() {\n if (this.activeUpOrDown > 0 && this.activeItem < this.filteredUsersTag.length - 1) {\n this.activeItem++;\n } else if (this.activeUpOrDown < 0 && this.activeItem > 0) {\n this.activeItem--;\n }\n this.$emit(\"activate-item\");\n }\n }\n};\nconst _hoisted_1$d = {\n key: 0,\n class: \"vac-tags-container\"\n};\nconst _hoisted_2$b = [\"onMouseover\", \"onClick\"];\nconst _hoisted_3$a = { class: \"vac-tags-info\" };\nconst _hoisted_4$a = { class: \"vac-tags-username\" };\nfunction _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createBlock(Transition, { name: \"vac-slide-up\" }, {\n default: withCtx(() => [\n $props.filteredUsersTag.length ? (openBlock(), createElementBlock(\"div\", _hoisted_1$d, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($props.filteredUsersTag, (user, index) => {\n return openBlock(), createElementBlock(\"div\", {\n key: user._id,\n class: normalizeClass([\"vac-tags-box\", { \"vac-tags-box-active\": index === $data.activeItem }]),\n onMouseover: ($event) => $data.activeItem = index,\n onClick: ($event) => _ctx.$emit(\"select-user-tag\", user)\n }, [\n createBaseVNode(\"div\", _hoisted_3$a, [\n user.avatar ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: \"vac-avatar vac-tags-avatar\",\n style: normalizeStyle({ \"background-image\": `url('${user.avatar}')` })\n }, null, 4)) : createCommentVNode(\"\", true),\n createBaseVNode(\"div\", _hoisted_4$a, toDisplayString(user.username), 1)\n ])\n ], 42, _hoisted_2$b);\n }), 128))\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 1\n });\n}\nvar RoomUsersTag = /* @__PURE__ */ _export_sfc(_sfc_main$d, [[\"render\", _sfc_render$d]]);\nconst _sfc_main$c = {\n name: \"RoomEmojis\",\n props: {\n filteredEmojis: { type: Array, required: true },\n selectItem: { type: Boolean, default: null },\n activeUpOrDown: { type: Number, default: null }\n },\n emits: [\"select-emoji\", \"activate-item\"],\n data() {\n return {\n activeItem: null\n };\n },\n watch: {\n filteredEmojis(val, oldVal) {\n if (!oldVal.length || val.length !== oldVal.length) {\n this.activeItem = 0;\n }\n },\n selectItem(val) {\n if (val) {\n this.$emit(\"select-emoji\", this.filteredEmojis[this.activeItem]);\n }\n },\n activeUpOrDown() {\n if (this.activeUpOrDown > 0 && this.activeItem < this.filteredEmojis.length - 1) {\n this.activeItem++;\n } else if (this.activeUpOrDown < 0 && this.activeItem > 0) {\n this.activeItem--;\n }\n this.$emit(\"activate-item\");\n }\n }\n};\nconst _hoisted_1$c = {\n key: 0,\n class: \"vac-emojis-container\"\n};\nconst _hoisted_2$a = [\"onMouseover\", \"onClick\"];\nfunction _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createBlock(Transition, { name: \"vac-slide-up\" }, {\n default: withCtx(() => [\n $props.filteredEmojis.length ? (openBlock(), createElementBlock(\"div\", _hoisted_1$c, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($props.filteredEmojis, (emoji, index) => {\n return openBlock(), createElementBlock(\"div\", {\n key: emoji,\n class: normalizeClass([\"vac-emoji-element\", { \"vac-emoji-element-active\": index === $data.activeItem }]),\n onMouseover: ($event) => $data.activeItem = index,\n onClick: ($event) => _ctx.$emit(\"select-emoji\", emoji)\n }, toDisplayString(emoji), 43, _hoisted_2$a);\n }), 128))\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 1\n });\n}\nvar RoomEmojis = /* @__PURE__ */ _export_sfc(_sfc_main$c, [[\"render\", _sfc_render$c]]);\nconst _sfc_main$b = {\n name: \"RoomTemplatesText\",\n props: {\n filteredTemplatesText: { type: Array, required: true },\n selectItem: { type: Boolean, default: null },\n activeUpOrDown: { type: Number, default: null }\n },\n emits: [\"select-template-text\", \"activate-item\"],\n data() {\n return {\n activeItem: null\n };\n },\n watch: {\n filteredTemplatesText(val, oldVal) {\n if (!oldVal.length || val.length !== oldVal.length) {\n this.activeItem = 0;\n }\n },\n selectItem(val) {\n if (val) {\n this.$emit(\n \"select-template-text\",\n this.filteredTemplatesText[this.activeItem]\n );\n }\n },\n activeUpOrDown() {\n if (this.activeUpOrDown > 0 && this.activeItem < this.filteredTemplatesText.length - 1) {\n this.activeItem++;\n } else if (this.activeUpOrDown < 0 && this.activeItem > 0) {\n this.activeItem--;\n }\n this.$emit(\"activate-item\");\n }\n }\n};\nconst _hoisted_1$b = {\n key: 0,\n class: \"vac-template-container vac-app-box-shadow\"\n};\nconst _hoisted_2$9 = [\"onMouseover\", \"onClick\"];\nconst _hoisted_3$9 = { class: \"vac-template-info\" };\nconst _hoisted_4$9 = { class: \"vac-template-tag\" };\nconst _hoisted_5$7 = { class: \"vac-template-text\" };\nfunction _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createBlock(Transition, { name: \"vac-slide-up\" }, {\n default: withCtx(() => [\n $props.filteredTemplatesText.length ? (openBlock(), createElementBlock(\"div\", _hoisted_1$b, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($props.filteredTemplatesText, (template, index) => {\n return openBlock(), createElementBlock(\"div\", {\n key: index,\n class: normalizeClass([\"vac-template-box\", { \"vac-template-active\": index === $data.activeItem }]),\n onMouseover: ($event) => $data.activeItem = index,\n onClick: ($event) => _ctx.$emit(\"select-template-text\", template)\n }, [\n createBaseVNode(\"div\", _hoisted_3$9, [\n createBaseVNode(\"div\", _hoisted_4$9, \" /\" + toDisplayString(template.tag), 1),\n createBaseVNode(\"div\", _hoisted_5$7, toDisplayString(template.text), 1)\n ])\n ], 42, _hoisted_2$9);\n }), 128))\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 1\n });\n}\nvar RoomTemplatesText = /* @__PURE__ */ _export_sfc(_sfc_main$b, [[\"render\", _sfc_render$b]]);\nfunction new_byte$4(count) {\n return new Int8Array(count);\n}\nfunction new_short(count) {\n return new Int16Array(count);\n}\nfunction new_int$d(count) {\n return new Int32Array(count);\n}\nfunction new_float$f(count) {\n return new Float32Array(count);\n}\nfunction new_double$1(count) {\n return new Float64Array(count);\n}\nfunction new_float_n$6(args) {\n if (args.length == 1) {\n return new_float$f(args[0]);\n }\n var sz = args[0];\n args = args.slice(1);\n var A = [];\n for (var i = 0; i < sz; i++) {\n A.push(new_float_n$6(args));\n }\n return A;\n}\nfunction new_int_n$2(args) {\n if (args.length == 1) {\n return new_int$d(args[0]);\n }\n var sz = args[0];\n args = args.slice(1);\n var A = [];\n for (var i = 0; i < sz; i++) {\n A.push(new_int_n$2(args));\n }\n return A;\n}\nfunction new_short_n$1(args) {\n if (args.length == 1) {\n return new_short(args[0]);\n }\n var sz = args[0];\n args = args.slice(1);\n var A = [];\n for (var i = 0; i < sz; i++) {\n A.push(new_short_n$1(args));\n }\n return A;\n}\nfunction new_array_n$1(args) {\n if (args.length == 1) {\n return new Array(args[0]);\n }\n var sz = args[0];\n args = args.slice(1);\n var A = [];\n for (var i = 0; i < sz; i++) {\n A.push(new_array_n$1(args));\n }\n return A;\n}\nvar Arrays$7 = {};\nArrays$7.fill = function(a, fromIndex, toIndex, val) {\n if (arguments.length == 2) {\n for (var i = 0; i < a.length; i++) {\n a[i] = arguments[1];\n }\n } else {\n for (var i = fromIndex; i < toIndex; i++) {\n a[i] = val;\n }\n }\n};\nvar System$a = {};\nSystem$a.arraycopy = function(src, srcPos, dest, destPos, length) {\n var srcEnd = srcPos + length;\n while (srcPos < srcEnd)\n dest[destPos++] = src[srcPos++];\n};\nSystem$a.out = {};\nSystem$a.out.println = function(message) {\n console.log(message);\n};\nSystem$a.out.printf = function() {\n console.log.apply(console, arguments);\n};\nvar Util$5 = {};\nUtil$5.SQRT2 = 1.4142135623730951;\nUtil$5.FAST_LOG10 = function(x) {\n return Math.log10(x);\n};\nUtil$5.FAST_LOG10_X = function(x, y) {\n return Math.log10(x) * y;\n};\nfunction ShortBlock$3(ordinal) {\n this.ordinal = ordinal;\n}\nShortBlock$3.short_block_allowed = new ShortBlock$3(0);\nShortBlock$3.short_block_coupled = new ShortBlock$3(1);\nShortBlock$3.short_block_dispensed = new ShortBlock$3(2);\nShortBlock$3.short_block_forced = new ShortBlock$3(3);\nvar Float$2 = {};\nFloat$2.MAX_VALUE = 34028235e31;\nfunction VbrMode$7(ordinal) {\n this.ordinal = ordinal;\n}\nVbrMode$7.vbr_off = new VbrMode$7(0);\nVbrMode$7.vbr_mt = new VbrMode$7(1);\nVbrMode$7.vbr_rh = new VbrMode$7(2);\nVbrMode$7.vbr_abr = new VbrMode$7(3);\nVbrMode$7.vbr_mtrh = new VbrMode$7(4);\nVbrMode$7.vbr_default = VbrMode$7.vbr_mtrh;\nvar assert$b = function(x) {\n};\nvar common = {\n System: System$a,\n VbrMode: VbrMode$7,\n Float: Float$2,\n ShortBlock: ShortBlock$3,\n Util: Util$5,\n Arrays: Arrays$7,\n new_array_n: new_array_n$1,\n new_byte: new_byte$4,\n new_double: new_double$1,\n new_float: new_float$f,\n new_float_n: new_float_n$6,\n new_int: new_int$d,\n new_int_n: new_int_n$2,\n new_short,\n new_short_n: new_short_n$1,\n assert: assert$b\n};\nvar System$9 = common.System;\nvar Util$4 = common.Util;\nvar Arrays$6 = common.Arrays;\nvar new_float$e = common.new_float;\nfunction NewMDCT() {\n var enwindow = [\n -477e-9 * 0.740951125354959 / 2384e-9,\n 103951e-9 * 0.740951125354959 / 2384e-9,\n 953674e-9 * 0.740951125354959 / 2384e-9,\n 2841473e-9 * 0.740951125354959 / 2384e-9,\n 0.035758972 * 0.740951125354959 / 2384e-9,\n 3401756e-9 * 0.740951125354959 / 2384e-9,\n 983715e-9 * 0.740951125354959 / 2384e-9,\n 99182e-9 * 0.740951125354959 / 2384e-9,\n 12398e-9 * 0.740951125354959 / 2384e-9,\n 191212e-9 * 0.740951125354959 / 2384e-9,\n 2283096e-9 * 0.740951125354959 / 2384e-9,\n 0.016994476 * 0.740951125354959 / 2384e-9,\n -0.018756866 * 0.740951125354959 / 2384e-9,\n -2630711e-9 * 0.740951125354959 / 2384e-9,\n -247478e-9 * 0.740951125354959 / 2384e-9,\n -14782e-9 * 0.740951125354959 / 2384e-9,\n 0.9063471690191471,\n 0.1960342806591213,\n -477e-9 * 0.773010453362737 / 2384e-9,\n 105858e-9 * 0.773010453362737 / 2384e-9,\n 930786e-9 * 0.773010453362737 / 2384e-9,\n 2521515e-9 * 0.773010453362737 / 2384e-9,\n 0.035694122 * 0.773010453362737 / 2384e-9,\n 3643036e-9 * 0.773010453362737 / 2384e-9,\n 991821e-9 * 0.773010453362737 / 2384e-9,\n 96321e-9 * 0.773010453362737 / 2384e-9,\n 11444e-9 * 0.773010453362737 / 2384e-9,\n 165462e-9 * 0.773010453362737 / 2384e-9,\n 2110004e-9 * 0.773010453362737 / 2384e-9,\n 0.016112804 * 0.773010453362737 / 2384e-9,\n -0.019634247 * 0.773010453362737 / 2384e-9,\n -2803326e-9 * 0.773010453362737 / 2384e-9,\n -277042e-9 * 0.773010453362737 / 2384e-9,\n -16689e-9 * 0.773010453362737 / 2384e-9,\n 0.8206787908286602,\n 0.3901806440322567,\n -477e-9 * 0.803207531480645 / 2384e-9,\n 107288e-9 * 0.803207531480645 / 2384e-9,\n 902653e-9 * 0.803207531480645 / 2384e-9,\n 2174854e-9 * 0.803207531480645 / 2384e-9,\n 0.035586357 * 0.803207531480645 / 2384e-9,\n 3858566e-9 * 0.803207531480645 / 2384e-9,\n 995159e-9 * 0.803207531480645 / 2384e-9,\n 9346e-8 * 0.803207531480645 / 2384e-9,\n 10014e-9 * 0.803207531480645 / 2384e-9,\n 14019e-8 * 0.803207531480645 / 2384e-9,\n 1937389e-9 * 0.803207531480645 / 2384e-9,\n 0.015233517 * 0.803207531480645 / 2384e-9,\n -0.020506859 * 0.803207531480645 / 2384e-9,\n -2974033e-9 * 0.803207531480645 / 2384e-9,\n -30756e-8 * 0.803207531480645 / 2384e-9,\n -1812e-8 * 0.803207531480645 / 2384e-9,\n 0.7416505462720353,\n 0.5805693545089249,\n -477e-9 * 0.831469612302545 / 2384e-9,\n 108242e-9 * 0.831469612302545 / 2384e-9,\n 868797e-9 * 0.831469612302545 / 2384e-9,\n 1800537e-9 * 0.831469612302545 / 2384e-9,\n 0.0354352 * 0.831469612302545 / 2384e-9,\n 4049301e-9 * 0.831469612302545 / 2384e-9,\n 994205e-9 * 0.831469612302545 / 2384e-9,\n 90599e-9 * 0.831469612302545 / 2384e-9,\n 906e-8 * 0.831469612302545 / 2384e-9,\n 116348e-9 * 0.831469612302545 / 2384e-9,\n 1766682e-9 * 0.831469612302545 / 2384e-9,\n 0.014358521 * 0.831469612302545 / 2384e-9,\n -0.021372318 * 0.831469612302545 / 2384e-9,\n -314188e-8 * 0.831469612302545 / 2384e-9,\n -339031e-9 * 0.831469612302545 / 2384e-9,\n -1955e-8 * 0.831469612302545 / 2384e-9,\n 0.6681786379192989,\n 0.7653668647301797,\n -477e-9 * 0.857728610000272 / 2384e-9,\n 108719e-9 * 0.857728610000272 / 2384e-9,\n 82922e-8 * 0.857728610000272 / 2384e-9,\n 1399517e-9 * 0.857728610000272 / 2384e-9,\n 0.035242081 * 0.857728610000272 / 2384e-9,\n 421524e-8 * 0.857728610000272 / 2384e-9,\n 989437e-9 * 0.857728610000272 / 2384e-9,\n 87261e-9 * 0.857728610000272 / 2384e-9,\n 8106e-9 * 0.857728610000272 / 2384e-9,\n 93937e-9 * 0.857728610000272 / 2384e-9,\n 1597881e-9 * 0.857728610000272 / 2384e-9,\n 0.013489246 * 0.857728610000272 / 2384e-9,\n -0.022228718 * 0.857728610000272 / 2384e-9,\n -3306866e-9 * 0.857728610000272 / 2384e-9,\n -371456e-9 * 0.857728610000272 / 2384e-9,\n -21458e-9 * 0.857728610000272 / 2384e-9,\n 0.5993769336819237,\n 0.9427934736519954,\n -477e-9 * 0.881921264348355 / 2384e-9,\n 108719e-9 * 0.881921264348355 / 2384e-9,\n 78392e-8 * 0.881921264348355 / 2384e-9,\n 971317e-9 * 0.881921264348355 / 2384e-9,\n 0.035007 * 0.881921264348355 / 2384e-9,\n 4357815e-9 * 0.881921264348355 / 2384e-9,\n 980854e-9 * 0.881921264348355 / 2384e-9,\n 83923e-9 * 0.881921264348355 / 2384e-9,\n 7629e-9 * 0.881921264348355 / 2384e-9,\n 72956e-9 * 0.881921264348355 / 2384e-9,\n 1432419e-9 * 0.881921264348355 / 2384e-9,\n 0.012627602 * 0.881921264348355 / 2384e-9,\n -0.02307415 * 0.881921264348355 / 2384e-9,\n -3467083e-9 * 0.881921264348355 / 2384e-9,\n -404358e-9 * 0.881921264348355 / 2384e-9,\n -23365e-9 * 0.881921264348355 / 2384e-9,\n 0.5345111359507916,\n 1.111140466039205,\n -954e-9 * 0.903989293123443 / 2384e-9,\n 108242e-9 * 0.903989293123443 / 2384e-9,\n 731945e-9 * 0.903989293123443 / 2384e-9,\n 515938e-9 * 0.903989293123443 / 2384e-9,\n 0.034730434 * 0.903989293123443 / 2384e-9,\n 4477024e-9 * 0.903989293123443 / 2384e-9,\n 968933e-9 * 0.903989293123443 / 2384e-9,\n 80585e-9 * 0.903989293123443 / 2384e-9,\n 6676e-9 * 0.903989293123443 / 2384e-9,\n 52929e-9 * 0.903989293123443 / 2384e-9,\n 1269817e-9 * 0.903989293123443 / 2384e-9,\n 0.011775017 * 0.903989293123443 / 2384e-9,\n -0.023907185 * 0.903989293123443 / 2384e-9,\n -3622532e-9 * 0.903989293123443 / 2384e-9,\n -438213e-9 * 0.903989293123443 / 2384e-9,\n -25272e-9 * 0.903989293123443 / 2384e-9,\n 0.4729647758913199,\n 1.268786568327291,\n -954e-9 * 0.9238795325112867 / 2384e-9,\n 106812e-9 * 0.9238795325112867 / 2384e-9,\n 674248e-9 * 0.9238795325112867 / 2384e-9,\n 33379e-9 * 0.9238795325112867 / 2384e-9,\n 0.034412861 * 0.9238795325112867 / 2384e-9,\n 4573822e-9 * 0.9238795325112867 / 2384e-9,\n 954151e-9 * 0.9238795325112867 / 2384e-9,\n 76771e-9 * 0.9238795325112867 / 2384e-9,\n 6199e-9 * 0.9238795325112867 / 2384e-9,\n 34332e-9 * 0.9238795325112867 / 2384e-9,\n 1111031e-9 * 0.9238795325112867 / 2384e-9,\n 0.010933399 * 0.9238795325112867 / 2384e-9,\n -0.024725437 * 0.9238795325112867 / 2384e-9,\n -3771782e-9 * 0.9238795325112867 / 2384e-9,\n -472546e-9 * 0.9238795325112867 / 2384e-9,\n -27657e-9 * 0.9238795325112867 / 2384e-9,\n 0.41421356237309503,\n 1.414213562373095,\n -954e-9 * 0.941544065183021 / 2384e-9,\n 105381e-9 * 0.941544065183021 / 2384e-9,\n 610352e-9 * 0.941544065183021 / 2384e-9,\n -475883e-9 * 0.941544065183021 / 2384e-9,\n 0.03405571 * 0.941544065183021 / 2384e-9,\n 4649162e-9 * 0.941544065183021 / 2384e-9,\n 935555e-9 * 0.941544065183021 / 2384e-9,\n 73433e-9 * 0.941544065183021 / 2384e-9,\n 5245e-9 * 0.941544065183021 / 2384e-9,\n 17166e-9 * 0.941544065183021 / 2384e-9,\n 956535e-9 * 0.941544065183021 / 2384e-9,\n 0.010103703 * 0.941544065183021 / 2384e-9,\n -0.025527 * 0.941544065183021 / 2384e-9,\n -3914356e-9 * 0.941544065183021 / 2384e-9,\n -507355e-9 * 0.941544065183021 / 2384e-9,\n -30041e-9 * 0.941544065183021 / 2384e-9,\n 0.3578057213145241,\n 1.546020906725474,\n -954e-9 * 0.956940335732209 / 2384e-9,\n 10252e-8 * 0.956940335732209 / 2384e-9,\n 539303e-9 * 0.956940335732209 / 2384e-9,\n -1011848e-9 * 0.956940335732209 / 2384e-9,\n 0.033659935 * 0.956940335732209 / 2384e-9,\n 4703045e-9 * 0.956940335732209 / 2384e-9,\n 915051e-9 * 0.956940335732209 / 2384e-9,\n 70095e-9 * 0.956940335732209 / 2384e-9,\n 4768e-9 * 0.956940335732209 / 2384e-9,\n 954e-9 * 0.956940335732209 / 2384e-9,\n 806808e-9 * 0.956940335732209 / 2384e-9,\n 9287834e-9 * 0.956940335732209 / 2384e-9,\n -0.026310921 * 0.956940335732209 / 2384e-9,\n -4048824e-9 * 0.956940335732209 / 2384e-9,\n -542164e-9 * 0.956940335732209 / 2384e-9,\n -32425e-9 * 0.956940335732209 / 2384e-9,\n 0.3033466836073424,\n 1.66293922460509,\n -1431e-9 * 0.970031253194544 / 2384e-9,\n 99182e-9 * 0.970031253194544 / 2384e-9,\n 462532e-9 * 0.970031253194544 / 2384e-9,\n -1573563e-9 * 0.970031253194544 / 2384e-9,\n 0.033225536 * 0.970031253194544 / 2384e-9,\n 4737377e-9 * 0.970031253194544 / 2384e-9,\n 891685e-9 * 0.970031253194544 / 2384e-9,\n 6628e-8 * 0.970031253194544 / 2384e-9,\n 4292e-9 * 0.970031253194544 / 2384e-9,\n -13828e-9 * 0.970031253194544 / 2384e-9,\n 66185e-8 * 0.970031253194544 / 2384e-9,\n 8487225e-9 * 0.970031253194544 / 2384e-9,\n -0.02707386 * 0.970031253194544 / 2384e-9,\n -4174709e-9 * 0.970031253194544 / 2384e-9,\n -576973e-9 * 0.970031253194544 / 2384e-9,\n -34809e-9 * 0.970031253194544 / 2384e-9,\n 0.2504869601913055,\n 1.76384252869671,\n -1431e-9 * 0.98078528040323 / 2384e-9,\n 95367e-9 * 0.98078528040323 / 2384e-9,\n 378609e-9 * 0.98078528040323 / 2384e-9,\n -2161503e-9 * 0.98078528040323 / 2384e-9,\n 0.032754898 * 0.98078528040323 / 2384e-9,\n 4752159e-9 * 0.98078528040323 / 2384e-9,\n 866413e-9 * 0.98078528040323 / 2384e-9,\n 62943e-9 * 0.98078528040323 / 2384e-9,\n 3815e-9 * 0.98078528040323 / 2384e-9,\n -2718e-8 * 0.98078528040323 / 2384e-9,\n 522137e-9 * 0.98078528040323 / 2384e-9,\n 7703304e-9 * 0.98078528040323 / 2384e-9,\n -0.027815342 * 0.98078528040323 / 2384e-9,\n -4290581e-9 * 0.98078528040323 / 2384e-9,\n -611782e-9 * 0.98078528040323 / 2384e-9,\n -3767e-8 * 0.98078528040323 / 2384e-9,\n 0.198912367379658,\n 1.847759065022573,\n -1907e-9 * 0.989176509964781 / 2384e-9,\n 90122e-9 * 0.989176509964781 / 2384e-9,\n 288486e-9 * 0.989176509964781 / 2384e-9,\n -2774239e-9 * 0.989176509964781 / 2384e-9,\n 0.03224802 * 0.989176509964781 / 2384e-9,\n 4748821e-9 * 0.989176509964781 / 2384e-9,\n 838757e-9 * 0.989176509964781 / 2384e-9,\n 59605e-9 * 0.989176509964781 / 2384e-9,\n 3338e-9 * 0.989176509964781 / 2384e-9,\n -39577e-9 * 0.989176509964781 / 2384e-9,\n 388145e-9 * 0.989176509964781 / 2384e-9,\n 6937027e-9 * 0.989176509964781 / 2384e-9,\n -0.028532982 * 0.989176509964781 / 2384e-9,\n -4395962e-9 * 0.989176509964781 / 2384e-9,\n -646591e-9 * 0.989176509964781 / 2384e-9,\n -40531e-9 * 0.989176509964781 / 2384e-9,\n 0.1483359875383474,\n 1.913880671464418,\n -1907e-9 * 0.995184726672197 / 2384e-9,\n 844e-7 * 0.995184726672197 / 2384e-9,\n 191689e-9 * 0.995184726672197 / 2384e-9,\n -3411293e-9 * 0.995184726672197 / 2384e-9,\n 0.03170681 * 0.995184726672197 / 2384e-9,\n 4728317e-9 * 0.995184726672197 / 2384e-9,\n 809669e-9 * 0.995184726672197 / 2384e-9,\n 5579e-8 * 0.995184726672197 / 2384e-9,\n 3338e-9 * 0.995184726672197 / 2384e-9,\n -50545e-9 * 0.995184726672197 / 2384e-9,\n 259876e-9 * 0.995184726672197 / 2384e-9,\n 6189346e-9 * 0.995184726672197 / 2384e-9,\n -0.029224873 * 0.995184726672197 / 2384e-9,\n -4489899e-9 * 0.995184726672197 / 2384e-9,\n -680923e-9 * 0.995184726672197 / 2384e-9,\n -43392e-9 * 0.995184726672197 / 2384e-9,\n 0.09849140335716425,\n 1.961570560806461,\n -2384e-9 * 0.998795456205172 / 2384e-9,\n 77724e-9 * 0.998795456205172 / 2384e-9,\n 88215e-9 * 0.998795456205172 / 2384e-9,\n -4072189e-9 * 0.998795456205172 / 2384e-9,\n 0.031132698 * 0.998795456205172 / 2384e-9,\n 4691124e-9 * 0.998795456205172 / 2384e-9,\n 779152e-9 * 0.998795456205172 / 2384e-9,\n 52929e-9 * 0.998795456205172 / 2384e-9,\n 2861e-9 * 0.998795456205172 / 2384e-9,\n -60558e-9 * 0.998795456205172 / 2384e-9,\n 137329e-9 * 0.998795456205172 / 2384e-9,\n 546217e-8 * 0.998795456205172 / 2384e-9,\n -0.02989006 * 0.998795456205172 / 2384e-9,\n -4570484e-9 * 0.998795456205172 / 2384e-9,\n -714302e-9 * 0.998795456205172 / 2384e-9,\n -46253e-9 * 0.998795456205172 / 2384e-9,\n 0.04912684976946725,\n 1.990369453344394,\n 0.035780907 * Util$4.SQRT2 * 0.5 / 2384e-9,\n 0.017876148 * Util$4.SQRT2 * 0.5 / 2384e-9,\n 3134727e-9 * Util$4.SQRT2 * 0.5 / 2384e-9,\n 2457142e-9 * Util$4.SQRT2 * 0.5 / 2384e-9,\n 971317e-9 * Util$4.SQRT2 * 0.5 / 2384e-9,\n 218868e-9 * Util$4.SQRT2 * 0.5 / 2384e-9,\n 101566e-9 * Util$4.SQRT2 * 0.5 / 2384e-9,\n 13828e-9 * Util$4.SQRT2 * 0.5 / 2384e-9,\n 0.030526638 / 2384e-9,\n 4638195e-9 / 2384e-9,\n 747204e-9 / 2384e-9,\n 49591e-9 / 2384e-9,\n 4756451e-9 / 2384e-9,\n 21458e-9 / 2384e-9,\n -69618e-9 / 2384e-9\n ];\n var NS = 12;\n var NL = 36;\n var win = [\n [\n 2382191739347913e-28,\n 6423305872147834e-28,\n 9400849094049688e-28,\n 1122435026096556e-27,\n 1183840321267481e-27,\n 1122435026096556e-27,\n 940084909404969e-27,\n 6423305872147839e-28,\n 2382191739347918e-28,\n 5456116108943412e-27,\n 4878985199565852e-27,\n 4240448995017367e-27,\n 3559909094758252e-27,\n 2858043359288075e-27,\n 2156177623817898e-27,\n 1475637723558783e-27,\n 8371015190102974e-28,\n 2599706096327376e-28,\n -5456116108943412e-27,\n -4878985199565852e-27,\n -4240448995017367e-27,\n -3559909094758252e-27,\n -2858043359288076e-27,\n -2156177623817898e-27,\n -1475637723558783e-27,\n -8371015190102975e-28,\n -2599706096327376e-28,\n -2382191739347923e-28,\n -6423305872147843e-28,\n -9400849094049696e-28,\n -1122435026096556e-27,\n -1183840321267481e-27,\n -1122435026096556e-27,\n -9400849094049694e-28,\n -642330587214784e-27,\n -2382191739347918e-28\n ],\n [\n 2382191739347913e-28,\n 6423305872147834e-28,\n 9400849094049688e-28,\n 1122435026096556e-27,\n 1183840321267481e-27,\n 1122435026096556e-27,\n 9400849094049688e-28,\n 6423305872147841e-28,\n 2382191739347918e-28,\n 5456116108943413e-27,\n 4878985199565852e-27,\n 4240448995017367e-27,\n 3559909094758253e-27,\n 2858043359288075e-27,\n 2156177623817898e-27,\n 1475637723558782e-27,\n 8371015190102975e-28,\n 2599706096327376e-28,\n -5461314069809755e-27,\n -4921085770524055e-27,\n -4343405037091838e-27,\n -3732668368707687e-27,\n -3093523840190885e-27,\n -2430835727329465e-27,\n -1734679010007751e-27,\n -974825365660928e-27,\n -2797435120168326e-28,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n -2283748241799531e-28,\n -4037858874020686e-28,\n -2146547464825323e-28\n ],\n [\n 0.1316524975873958,\n 0.414213562373095,\n 0.7673269879789602,\n 1.091308501069271,\n 1.303225372841206,\n 1.56968557711749,\n 1.920982126971166,\n 2.414213562373094,\n 3.171594802363212,\n 4.510708503662055,\n 7.595754112725146,\n 22.90376554843115,\n 0.984807753012208,\n 0.6427876096865394,\n 0.3420201433256688,\n 0.9396926207859084,\n -0.1736481776669303,\n -0.7660444431189779,\n 0.8660254037844387,\n 0.5,\n -0.5144957554275265,\n -0.4717319685649723,\n -0.3133774542039019,\n -0.1819131996109812,\n -0.09457419252642064,\n -0.04096558288530405,\n -0.01419856857247115,\n -0.003699974673760037,\n 0.8574929257125442,\n 0.8817419973177052,\n 0.9496286491027329,\n 0.9833145924917901,\n 0.9955178160675857,\n 0.9991605581781475,\n 0.999899195244447,\n 0.9999931550702802\n ],\n [\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 2283748241799531e-28,\n 4037858874020686e-28,\n 2146547464825323e-28,\n 5461314069809755e-27,\n 4921085770524055e-27,\n 4343405037091838e-27,\n 3732668368707687e-27,\n 3093523840190885e-27,\n 2430835727329466e-27,\n 1734679010007751e-27,\n 974825365660928e-27,\n 2797435120168326e-28,\n -5456116108943413e-27,\n -4878985199565852e-27,\n -4240448995017367e-27,\n -3559909094758253e-27,\n -2858043359288075e-27,\n -2156177623817898e-27,\n -1475637723558782e-27,\n -8371015190102975e-28,\n -2599706096327376e-28,\n -2382191739347913e-28,\n -6423305872147834e-28,\n -9400849094049688e-28,\n -1122435026096556e-27,\n -1183840321267481e-27,\n -1122435026096556e-27,\n -9400849094049688e-28,\n -6423305872147841e-28,\n -2382191739347918e-28\n ]\n ];\n var tantab_l = win[Encoder.SHORT_TYPE];\n var cx = win[Encoder.SHORT_TYPE];\n var ca = win[Encoder.SHORT_TYPE];\n var cs = win[Encoder.SHORT_TYPE];\n var order = [\n 0,\n 1,\n 16,\n 17,\n 8,\n 9,\n 24,\n 25,\n 4,\n 5,\n 20,\n 21,\n 12,\n 13,\n 28,\n 29,\n 2,\n 3,\n 18,\n 19,\n 10,\n 11,\n 26,\n 27,\n 6,\n 7,\n 22,\n 23,\n 14,\n 15,\n 30,\n 31\n ];\n function window_subband(x1, x1Pos, a) {\n var wp = 10;\n var x2 = x1Pos + 238 - 14 - 286;\n for (var i = -15; i < 0; i++) {\n var w, s, t;\n w = enwindow[wp + -10];\n s = x1[x2 + -224] * w;\n t = x1[x1Pos + 224] * w;\n w = enwindow[wp + -9];\n s += x1[x2 + -160] * w;\n t += x1[x1Pos + 160] * w;\n w = enwindow[wp + -8];\n s += x1[x2 + -96] * w;\n t += x1[x1Pos + 96] * w;\n w = enwindow[wp + -7];\n s += x1[x2 + -32] * w;\n t += x1[x1Pos + 32] * w;\n w = enwindow[wp + -6];\n s += x1[x2 + 32] * w;\n t += x1[x1Pos + -32] * w;\n w = enwindow[wp + -5];\n s += x1[x2 + 96] * w;\n t += x1[x1Pos + -96] * w;\n w = enwindow[wp + -4];\n s += x1[x2 + 160] * w;\n t += x1[x1Pos + -160] * w;\n w = enwindow[wp + -3];\n s += x1[x2 + 224] * w;\n t += x1[x1Pos + -224] * w;\n w = enwindow[wp + -2];\n s += x1[x1Pos + -256] * w;\n t -= x1[x2 + 256] * w;\n w = enwindow[wp + -1];\n s += x1[x1Pos + -192] * w;\n t -= x1[x2 + 192] * w;\n w = enwindow[wp + 0];\n s += x1[x1Pos + -128] * w;\n t -= x1[x2 + 128] * w;\n w = enwindow[wp + 1];\n s += x1[x1Pos + -64] * w;\n t -= x1[x2 + 64] * w;\n w = enwindow[wp + 2];\n s += x1[x1Pos + 0] * w;\n t -= x1[x2 + 0] * w;\n w = enwindow[wp + 3];\n s += x1[x1Pos + 64] * w;\n t -= x1[x2 + -64] * w;\n w = enwindow[wp + 4];\n s += x1[x1Pos + 128] * w;\n t -= x1[x2 + -128] * w;\n w = enwindow[wp + 5];\n s += x1[x1Pos + 192] * w;\n t -= x1[x2 + -192] * w;\n s *= enwindow[wp + 6];\n w = t - s;\n a[30 + i * 2] = t + s;\n a[31 + i * 2] = enwindow[wp + 7] * w;\n wp += 18;\n x1Pos--;\n x2++;\n }\n {\n var s, t, u, v;\n t = x1[x1Pos + -16] * enwindow[wp + -10];\n s = x1[x1Pos + -32] * enwindow[wp + -2];\n t += (x1[x1Pos + -48] - x1[x1Pos + 16]) * enwindow[wp + -9];\n s += x1[x1Pos + -96] * enwindow[wp + -1];\n t += (x1[x1Pos + -80] + x1[x1Pos + 48]) * enwindow[wp + -8];\n s += x1[x1Pos + -160] * enwindow[wp + 0];\n t += (x1[x1Pos + -112] - x1[x1Pos + 80]) * enwindow[wp + -7];\n s += x1[x1Pos + -224] * enwindow[wp + 1];\n t += (x1[x1Pos + -144] + x1[x1Pos + 112]) * enwindow[wp + -6];\n s -= x1[x1Pos + 32] * enwindow[wp + 2];\n t += (x1[x1Pos + -176] - x1[x1Pos + 144]) * enwindow[wp + -5];\n s -= x1[x1Pos + 96] * enwindow[wp + 3];\n t += (x1[x1Pos + -208] + x1[x1Pos + 176]) * enwindow[wp + -4];\n s -= x1[x1Pos + 160] * enwindow[wp + 4];\n t += (x1[x1Pos + -240] - x1[x1Pos + 208]) * enwindow[wp + -3];\n s -= x1[x1Pos + 224];\n u = s - t;\n v = s + t;\n t = a[14];\n s = a[15] - t;\n a[31] = v + t;\n a[30] = u + s;\n a[15] = u - s;\n a[14] = v - t;\n }\n {\n var xr;\n xr = a[28] - a[0];\n a[0] += a[28];\n a[28] = xr * enwindow[wp + -2 * 18 + 7];\n xr = a[29] - a[1];\n a[1] += a[29];\n a[29] = xr * enwindow[wp + -2 * 18 + 7];\n xr = a[26] - a[2];\n a[2] += a[26];\n a[26] = xr * enwindow[wp + -4 * 18 + 7];\n xr = a[27] - a[3];\n a[3] += a[27];\n a[27] = xr * enwindow[wp + -4 * 18 + 7];\n xr = a[24] - a[4];\n a[4] += a[24];\n a[24] = xr * enwindow[wp + -6 * 18 + 7];\n xr = a[25] - a[5];\n a[5] += a[25];\n a[25] = xr * enwindow[wp + -6 * 18 + 7];\n xr = a[22] - a[6];\n a[6] += a[22];\n a[22] = xr * Util$4.SQRT2;\n xr = a[23] - a[7];\n a[7] += a[23];\n a[23] = xr * Util$4.SQRT2 - a[7];\n a[7] -= a[6];\n a[22] -= a[7];\n a[23] -= a[22];\n xr = a[6];\n a[6] = a[31] - xr;\n a[31] = a[31] + xr;\n xr = a[7];\n a[7] = a[30] - xr;\n a[30] = a[30] + xr;\n xr = a[22];\n a[22] = a[15] - xr;\n a[15] = a[15] + xr;\n xr = a[23];\n a[23] = a[14] - xr;\n a[14] = a[14] + xr;\n xr = a[20] - a[8];\n a[8] += a[20];\n a[20] = xr * enwindow[wp + -10 * 18 + 7];\n xr = a[21] - a[9];\n a[9] += a[21];\n a[21] = xr * enwindow[wp + -10 * 18 + 7];\n xr = a[18] - a[10];\n a[10] += a[18];\n a[18] = xr * enwindow[wp + -12 * 18 + 7];\n xr = a[19] - a[11];\n a[11] += a[19];\n a[19] = xr * enwindow[wp + -12 * 18 + 7];\n xr = a[16] - a[12];\n a[12] += a[16];\n a[16] = xr * enwindow[wp + -14 * 18 + 7];\n xr = a[17] - a[13];\n a[13] += a[17];\n a[17] = xr * enwindow[wp + -14 * 18 + 7];\n xr = -a[20] + a[24];\n a[20] += a[24];\n a[24] = xr * enwindow[wp + -12 * 18 + 7];\n xr = -a[21] + a[25];\n a[21] += a[25];\n a[25] = xr * enwindow[wp + -12 * 18 + 7];\n xr = a[4] - a[8];\n a[4] += a[8];\n a[8] = xr * enwindow[wp + -12 * 18 + 7];\n xr = a[5] - a[9];\n a[5] += a[9];\n a[9] = xr * enwindow[wp + -12 * 18 + 7];\n xr = a[0] - a[12];\n a[0] += a[12];\n a[12] = xr * enwindow[wp + -4 * 18 + 7];\n xr = a[1] - a[13];\n a[1] += a[13];\n a[13] = xr * enwindow[wp + -4 * 18 + 7];\n xr = a[16] - a[28];\n a[16] += a[28];\n a[28] = xr * enwindow[wp + -4 * 18 + 7];\n xr = -a[17] + a[29];\n a[17] += a[29];\n a[29] = xr * enwindow[wp + -4 * 18 + 7];\n xr = Util$4.SQRT2 * (a[2] - a[10]);\n a[2] += a[10];\n a[10] = xr;\n xr = Util$4.SQRT2 * (a[3] - a[11]);\n a[3] += a[11];\n a[11] = xr;\n xr = Util$4.SQRT2 * (-a[18] + a[26]);\n a[18] += a[26];\n a[26] = xr - a[18];\n xr = Util$4.SQRT2 * (-a[19] + a[27]);\n a[19] += a[27];\n a[27] = xr - a[19];\n xr = a[2];\n a[19] -= a[3];\n a[3] -= xr;\n a[2] = a[31] - xr;\n a[31] += xr;\n xr = a[3];\n a[11] -= a[19];\n a[18] -= xr;\n a[3] = a[30] - xr;\n a[30] += xr;\n xr = a[18];\n a[27] -= a[11];\n a[19] -= xr;\n a[18] = a[15] - xr;\n a[15] += xr;\n xr = a[19];\n a[10] -= xr;\n a[19] = a[14] - xr;\n a[14] += xr;\n xr = a[10];\n a[11] -= xr;\n a[10] = a[23] - xr;\n a[23] += xr;\n xr = a[11];\n a[26] -= xr;\n a[11] = a[22] - xr;\n a[22] += xr;\n xr = a[26];\n a[27] -= xr;\n a[26] = a[7] - xr;\n a[7] += xr;\n xr = a[27];\n a[27] = a[6] - xr;\n a[6] += xr;\n xr = Util$4.SQRT2 * (a[0] - a[4]);\n a[0] += a[4];\n a[4] = xr;\n xr = Util$4.SQRT2 * (a[1] - a[5]);\n a[1] += a[5];\n a[5] = xr;\n xr = Util$4.SQRT2 * (a[16] - a[20]);\n a[16] += a[20];\n a[20] = xr;\n xr = Util$4.SQRT2 * (a[17] - a[21]);\n a[17] += a[21];\n a[21] = xr;\n xr = -Util$4.SQRT2 * (a[8] - a[12]);\n a[8] += a[12];\n a[12] = xr - a[8];\n xr = -Util$4.SQRT2 * (a[9] - a[13]);\n a[9] += a[13];\n a[13] = xr - a[9];\n xr = -Util$4.SQRT2 * (a[25] - a[29]);\n a[25] += a[29];\n a[29] = xr - a[25];\n xr = -Util$4.SQRT2 * (a[24] + a[28]);\n a[24] -= a[28];\n a[28] = xr - a[24];\n xr = a[24] - a[16];\n a[24] = xr;\n xr = a[20] - xr;\n a[20] = xr;\n xr = a[28] - xr;\n a[28] = xr;\n xr = a[25] - a[17];\n a[25] = xr;\n xr = a[21] - xr;\n a[21] = xr;\n xr = a[29] - xr;\n a[29] = xr;\n xr = a[17] - a[1];\n a[17] = xr;\n xr = a[9] - xr;\n a[9] = xr;\n xr = a[25] - xr;\n a[25] = xr;\n xr = a[5] - xr;\n a[5] = xr;\n xr = a[21] - xr;\n a[21] = xr;\n xr = a[13] - xr;\n a[13] = xr;\n xr = a[29] - xr;\n a[29] = xr;\n xr = a[1] - a[0];\n a[1] = xr;\n xr = a[16] - xr;\n a[16] = xr;\n xr = a[17] - xr;\n a[17] = xr;\n xr = a[8] - xr;\n a[8] = xr;\n xr = a[9] - xr;\n a[9] = xr;\n xr = a[24] - xr;\n a[24] = xr;\n xr = a[25] - xr;\n a[25] = xr;\n xr = a[4] - xr;\n a[4] = xr;\n xr = a[5] - xr;\n a[5] = xr;\n xr = a[20] - xr;\n a[20] = xr;\n xr = a[21] - xr;\n a[21] = xr;\n xr = a[12] - xr;\n a[12] = xr;\n xr = a[13] - xr;\n a[13] = xr;\n xr = a[28] - xr;\n a[28] = xr;\n xr = a[29] - xr;\n a[29] = xr;\n xr = a[0];\n a[0] += a[31];\n a[31] -= xr;\n xr = a[1];\n a[1] += a[30];\n a[30] -= xr;\n xr = a[16];\n a[16] += a[15];\n a[15] -= xr;\n xr = a[17];\n a[17] += a[14];\n a[14] -= xr;\n xr = a[8];\n a[8] += a[23];\n a[23] -= xr;\n xr = a[9];\n a[9] += a[22];\n a[22] -= xr;\n xr = a[24];\n a[24] += a[7];\n a[7] -= xr;\n xr = a[25];\n a[25] += a[6];\n a[6] -= xr;\n xr = a[4];\n a[4] += a[27];\n a[27] -= xr;\n xr = a[5];\n a[5] += a[26];\n a[26] -= xr;\n xr = a[20];\n a[20] += a[11];\n a[11] -= xr;\n xr = a[21];\n a[21] += a[10];\n a[10] -= xr;\n xr = a[12];\n a[12] += a[19];\n a[19] -= xr;\n xr = a[13];\n a[13] += a[18];\n a[18] -= xr;\n xr = a[28];\n a[28] += a[3];\n a[3] -= xr;\n xr = a[29];\n a[29] += a[2];\n a[2] -= xr;\n }\n }\n function mdct_short(inout, inoutPos) {\n for (var l = 0; l < 3; l++) {\n var tc0, tc1, tc2, ts0, ts1, ts2;\n ts0 = inout[inoutPos + 2 * 3] * win[Encoder.SHORT_TYPE][0] - inout[inoutPos + 5 * 3];\n tc0 = inout[inoutPos + 0 * 3] * win[Encoder.SHORT_TYPE][2] - inout[inoutPos + 3 * 3];\n tc1 = ts0 + tc0;\n tc2 = ts0 - tc0;\n ts0 = inout[inoutPos + 5 * 3] * win[Encoder.SHORT_TYPE][0] + inout[inoutPos + 2 * 3];\n tc0 = inout[inoutPos + 3 * 3] * win[Encoder.SHORT_TYPE][2] + inout[inoutPos + 0 * 3];\n ts1 = ts0 + tc0;\n ts2 = -ts0 + tc0;\n tc0 = (inout[inoutPos + 1 * 3] * win[Encoder.SHORT_TYPE][1] - inout[inoutPos + 4 * 3]) * 2069978111953089e-26;\n ts0 = (inout[inoutPos + 4 * 3] * win[Encoder.SHORT_TYPE][1] + inout[inoutPos + 1 * 3]) * 2069978111953089e-26;\n inout[inoutPos + 3 * 0] = tc1 * 190752519173728e-25 + tc0;\n inout[inoutPos + 3 * 5] = -ts1 * 190752519173728e-25 + ts0;\n tc2 = tc2 * 0.8660254037844387 * 1907525191737281e-26;\n ts1 = ts1 * 0.5 * 1907525191737281e-26 + ts0;\n inout[inoutPos + 3 * 1] = tc2 - ts1;\n inout[inoutPos + 3 * 2] = tc2 + ts1;\n tc1 = tc1 * 0.5 * 1907525191737281e-26 - tc0;\n ts2 = ts2 * 0.8660254037844387 * 1907525191737281e-26;\n inout[inoutPos + 3 * 3] = tc1 + ts2;\n inout[inoutPos + 3 * 4] = tc1 - ts2;\n inoutPos++;\n }\n }\n function mdct_long(out, outPos, _in) {\n var ct, st;\n {\n var tc1, tc2, tc3, tc4, ts5, ts6, ts7, ts8;\n tc1 = _in[17] - _in[9];\n tc3 = _in[15] - _in[11];\n tc4 = _in[14] - _in[12];\n ts5 = _in[0] + _in[8];\n ts6 = _in[1] + _in[7];\n ts7 = _in[2] + _in[6];\n ts8 = _in[3] + _in[5];\n out[outPos + 17] = ts5 + ts7 - ts8 - (ts6 - _in[4]);\n st = (ts5 + ts7 - ts8) * cx[12 + 7] + (ts6 - _in[4]);\n ct = (tc1 - tc3 - tc4) * cx[12 + 6];\n out[outPos + 5] = ct + st;\n out[outPos + 6] = ct - st;\n tc2 = (_in[16] - _in[10]) * cx[12 + 6];\n ts6 = ts6 * cx[12 + 7] + _in[4];\n ct = tc1 * cx[12 + 0] + tc2 + tc3 * cx[12 + 1] + tc4 * cx[12 + 2];\n st = -ts5 * cx[12 + 4] + ts6 - ts7 * cx[12 + 5] + ts8 * cx[12 + 3];\n out[outPos + 1] = ct + st;\n out[outPos + 2] = ct - st;\n ct = tc1 * cx[12 + 1] - tc2 - tc3 * cx[12 + 2] + tc4 * cx[12 + 0];\n st = -ts5 * cx[12 + 5] + ts6 - ts7 * cx[12 + 3] + ts8 * cx[12 + 4];\n out[outPos + 9] = ct + st;\n out[outPos + 10] = ct - st;\n ct = tc1 * cx[12 + 2] - tc2 + tc3 * cx[12 + 0] - tc4 * cx[12 + 1];\n st = ts5 * cx[12 + 3] - ts6 + ts7 * cx[12 + 4] - ts8 * cx[12 + 5];\n out[outPos + 13] = ct + st;\n out[outPos + 14] = ct - st;\n }\n {\n var ts1, ts2, ts3, ts4, tc5, tc6, tc7, tc8;\n ts1 = _in[8] - _in[0];\n ts3 = _in[6] - _in[2];\n ts4 = _in[5] - _in[3];\n tc5 = _in[17] + _in[9];\n tc6 = _in[16] + _in[10];\n tc7 = _in[15] + _in[11];\n tc8 = _in[14] + _in[12];\n out[outPos + 0] = tc5 + tc7 + tc8 + (tc6 + _in[13]);\n ct = (tc5 + tc7 + tc8) * cx[12 + 7] - (tc6 + _in[13]);\n st = (ts1 - ts3 + ts4) * cx[12 + 6];\n out[outPos + 11] = ct + st;\n out[outPos + 12] = ct - st;\n ts2 = (_in[7] - _in[1]) * cx[12 + 6];\n tc6 = _in[13] - tc6 * cx[12 + 7];\n ct = tc5 * cx[12 + 3] - tc6 + tc7 * cx[12 + 4] + tc8 * cx[12 + 5];\n st = ts1 * cx[12 + 2] + ts2 + ts3 * cx[12 + 0] + ts4 * cx[12 + 1];\n out[outPos + 3] = ct + st;\n out[outPos + 4] = ct - st;\n ct = -tc5 * cx[12 + 5] + tc6 - tc7 * cx[12 + 3] - tc8 * cx[12 + 4];\n st = ts1 * cx[12 + 1] + ts2 - ts3 * cx[12 + 2] - ts4 * cx[12 + 0];\n out[outPos + 7] = ct + st;\n out[outPos + 8] = ct - st;\n ct = -tc5 * cx[12 + 4] + tc6 - tc7 * cx[12 + 5] - tc8 * cx[12 + 3];\n st = ts1 * cx[12 + 0] - ts2 + ts3 * cx[12 + 1] - ts4 * cx[12 + 2];\n out[outPos + 15] = ct + st;\n out[outPos + 16] = ct - st;\n }\n }\n this.mdct_sub48 = function(gfc, w0, w1) {\n var wk = w0;\n var wkPos = 286;\n for (var ch = 0; ch < gfc.channels_out; ch++) {\n for (var gr = 0; gr < gfc.mode_gr; gr++) {\n var band;\n var gi = gfc.l3_side.tt[gr][ch];\n var mdct_enc = gi.xr;\n var mdct_encPos = 0;\n var samp = gfc.sb_sample[ch][1 - gr];\n var sampPos = 0;\n for (var k = 0; k < 18 / 2; k++) {\n window_subband(wk, wkPos, samp[sampPos]);\n window_subband(wk, wkPos + 32, samp[sampPos + 1]);\n sampPos += 2;\n wkPos += 64;\n for (band = 1; band < 32; band += 2) {\n samp[sampPos - 1][band] *= -1;\n }\n }\n for (band = 0; band < 32; band++, mdct_encPos += 18) {\n var type = gi.block_type;\n var band0 = gfc.sb_sample[ch][gr];\n var band1 = gfc.sb_sample[ch][1 - gr];\n if (gi.mixed_block_flag != 0 && band < 2)\n type = 0;\n if (gfc.amp_filter[band] < 1e-12) {\n Arrays$6.fill(mdct_enc, mdct_encPos + 0, mdct_encPos + 18, 0);\n } else {\n if (gfc.amp_filter[band] < 1) {\n for (var k = 0; k < 18; k++) {\n band1[k][order[band]] *= gfc.amp_filter[band];\n }\n }\n if (type == Encoder.SHORT_TYPE) {\n for (var k = -NS / 4; k < 0; k++) {\n var w = win[Encoder.SHORT_TYPE][k + 3];\n mdct_enc[mdct_encPos + k * 3 + 9] = band0[9 + k][order[band]] * w - band0[8 - k][order[band]];\n mdct_enc[mdct_encPos + k * 3 + 18] = band0[14 - k][order[band]] * w + band0[15 + k][order[band]];\n mdct_enc[mdct_encPos + k * 3 + 10] = band0[15 + k][order[band]] * w - band0[14 - k][order[band]];\n mdct_enc[mdct_encPos + k * 3 + 19] = band1[2 - k][order[band]] * w + band1[3 + k][order[band]];\n mdct_enc[mdct_encPos + k * 3 + 11] = band1[3 + k][order[band]] * w - band1[2 - k][order[band]];\n mdct_enc[mdct_encPos + k * 3 + 20] = band1[8 - k][order[band]] * w + band1[9 + k][order[band]];\n }\n mdct_short(mdct_enc, mdct_encPos);\n } else {\n var work = new_float$e(18);\n for (var k = -NL / 4; k < 0; k++) {\n var a, b;\n a = win[type][k + 27] * band1[k + 9][order[band]] + win[type][k + 36] * band1[8 - k][order[band]];\n b = win[type][k + 9] * band0[k + 9][order[band]] - win[type][k + 18] * band0[8 - k][order[band]];\n work[k + 9] = a - b * tantab_l[3 + k + 9];\n work[k + 18] = a * tantab_l[3 + k + 9] + b;\n }\n mdct_long(mdct_enc, mdct_encPos, work);\n }\n }\n if (type != Encoder.SHORT_TYPE && band != 0) {\n for (var k = 7; k >= 0; --k) {\n var bu, bd;\n bu = mdct_enc[mdct_encPos + k] * ca[20 + k] + mdct_enc[mdct_encPos + -1 - k] * cs[28 + k];\n bd = mdct_enc[mdct_encPos + k] * cs[28 + k] - mdct_enc[mdct_encPos + -1 - k] * ca[20 + k];\n mdct_enc[mdct_encPos + -1 - k] = bu;\n mdct_enc[mdct_encPos + k] = bd;\n }\n }\n }\n }\n wk = w1;\n wkPos = 286;\n if (gfc.mode_gr == 1) {\n for (var i = 0; i < 18; i++) {\n System$9.arraycopy(\n gfc.sb_sample[ch][1][i],\n 0,\n gfc.sb_sample[ch][0][i],\n 0,\n 32\n );\n }\n }\n }\n };\n}\nvar System$8 = common.System;\nvar new_float$d = common.new_float;\nvar new_float_n$5 = common.new_float_n;\nfunction III_psy_xmin() {\n this.l = new_float$d(Encoder.SBMAX_l);\n this.s = new_float_n$5([Encoder.SBMAX_s, 3]);\n var self2 = this;\n this.assign = function(iii_psy_xmin) {\n System$8.arraycopy(iii_psy_xmin.l, 0, self2.l, 0, Encoder.SBMAX_l);\n for (var i = 0; i < Encoder.SBMAX_s; i++) {\n for (var j = 0; j < 3; j++) {\n self2.s[i][j] = iii_psy_xmin.s[i][j];\n }\n }\n };\n}\nfunction III_psy_ratio() {\n this.thm = new III_psy_xmin();\n this.en = new III_psy_xmin();\n}\nfunction MPEGMode(ordinal) {\n var _ordinal = ordinal;\n this.ordinal = function() {\n return _ordinal;\n };\n}\nMPEGMode.STEREO = new MPEGMode(0);\nMPEGMode.JOINT_STEREO = new MPEGMode(1);\nMPEGMode.DUAL_CHANNEL = new MPEGMode(2);\nMPEGMode.MONO = new MPEGMode(3);\nMPEGMode.NOT_SET = new MPEGMode(4);\nvar System$7 = common.System;\nvar VbrMode$6 = common.VbrMode;\nvar new_array_n = common.new_array_n;\nvar new_float$c = common.new_float;\nvar new_float_n$4 = common.new_float_n;\nvar new_int$c = common.new_int;\nvar assert$a = common.assert;\nEncoder.ENCDELAY = 576;\nEncoder.POSTDELAY = 1152;\nEncoder.MDCTDELAY = 48;\nEncoder.FFTOFFSET = 224 + Encoder.MDCTDELAY;\nEncoder.DECDELAY = 528;\nEncoder.SBLIMIT = 32;\nEncoder.CBANDS = 64;\nEncoder.SBPSY_l = 21;\nEncoder.SBPSY_s = 12;\nEncoder.SBMAX_l = 22;\nEncoder.SBMAX_s = 13;\nEncoder.PSFB21 = 6;\nEncoder.PSFB12 = 6;\nEncoder.BLKSIZE = 1024;\nEncoder.HBLKSIZE = Encoder.BLKSIZE / 2 + 1;\nEncoder.BLKSIZE_s = 256;\nEncoder.HBLKSIZE_s = Encoder.BLKSIZE_s / 2 + 1;\nEncoder.NORM_TYPE = 0;\nEncoder.START_TYPE = 1;\nEncoder.SHORT_TYPE = 2;\nEncoder.STOP_TYPE = 3;\nEncoder.MPG_MD_LR_LR = 0;\nEncoder.MPG_MD_LR_I = 1;\nEncoder.MPG_MD_MS_LR = 2;\nEncoder.MPG_MD_MS_I = 3;\nEncoder.fircoef = [\n -0.0207887 * 5,\n -0.0378413 * 5,\n -0.0432472 * 5,\n -0.031183 * 5,\n 779609e-23 * 5,\n 0.0467745 * 5,\n 0.10091 * 5,\n 0.151365 * 5,\n 0.187098 * 5\n];\nfunction Encoder() {\n var FFTOFFSET = Encoder.FFTOFFSET;\n var MPG_MD_MS_LR = Encoder.MPG_MD_MS_LR;\n var bs = null;\n this.psy = null;\n var psy = null;\n var vbr = null;\n var qupvt = null;\n this.setModules = function(_bs, _psy, _qupvt, _vbr) {\n bs = _bs;\n this.psy = _psy;\n psy = _psy;\n vbr = _vbr;\n qupvt = _qupvt;\n };\n var newMDCT = new NewMDCT();\n function adjust_ATH(gfc) {\n var gr2_max, max_pow;\n if (gfc.ATH.useAdjust == 0) {\n gfc.ATH.adjust = 1;\n return;\n }\n max_pow = gfc.loudness_sq[0][0];\n gr2_max = gfc.loudness_sq[1][0];\n if (gfc.channels_out == 2) {\n max_pow += gfc.loudness_sq[0][1];\n gr2_max += gfc.loudness_sq[1][1];\n } else {\n max_pow += max_pow;\n gr2_max += gr2_max;\n }\n if (gfc.mode_gr == 2) {\n max_pow = Math.max(max_pow, gr2_max);\n }\n max_pow *= 0.5;\n max_pow *= gfc.ATH.aaSensitivityP;\n if (max_pow > 0.03125) {\n if (gfc.ATH.adjust >= 1) {\n gfc.ATH.adjust = 1;\n } else {\n if (gfc.ATH.adjust < gfc.ATH.adjustLimit) {\n gfc.ATH.adjust = gfc.ATH.adjustLimit;\n }\n }\n gfc.ATH.adjustLimit = 1;\n } else {\n var adj_lim_new = 31.98 * max_pow + 625e-6;\n if (gfc.ATH.adjust >= adj_lim_new) {\n gfc.ATH.adjust *= adj_lim_new * 0.075 + 0.925;\n if (gfc.ATH.adjust < adj_lim_new) {\n gfc.ATH.adjust = adj_lim_new;\n }\n } else {\n if (gfc.ATH.adjustLimit >= adj_lim_new) {\n gfc.ATH.adjust = adj_lim_new;\n } else {\n if (gfc.ATH.adjust < gfc.ATH.adjustLimit) {\n gfc.ATH.adjust = gfc.ATH.adjustLimit;\n }\n }\n }\n gfc.ATH.adjustLimit = adj_lim_new;\n }\n }\n function updateStats(gfc) {\n var gr, ch;\n assert$a(gfc.bitrate_index >= 0 && gfc.bitrate_index < 16);\n assert$a(gfc.mode_ext >= 0 && gfc.mode_ext < 4);\n gfc.bitrate_stereoMode_Hist[gfc.bitrate_index][4]++;\n gfc.bitrate_stereoMode_Hist[15][4]++;\n if (gfc.channels_out == 2) {\n gfc.bitrate_stereoMode_Hist[gfc.bitrate_index][gfc.mode_ext]++;\n gfc.bitrate_stereoMode_Hist[15][gfc.mode_ext]++;\n }\n for (gr = 0; gr < gfc.mode_gr; ++gr) {\n for (ch = 0; ch < gfc.channels_out; ++ch) {\n var bt = gfc.l3_side.tt[gr][ch].block_type | 0;\n if (gfc.l3_side.tt[gr][ch].mixed_block_flag != 0)\n bt = 4;\n gfc.bitrate_blockType_Hist[gfc.bitrate_index][bt]++;\n gfc.bitrate_blockType_Hist[gfc.bitrate_index][5]++;\n gfc.bitrate_blockType_Hist[15][bt]++;\n gfc.bitrate_blockType_Hist[15][5]++;\n }\n }\n }\n function lame_encode_frame_init(gfp, inbuf) {\n var gfc = gfp.internal_flags;\n var ch, gr;\n if (gfc.lame_encode_frame_init == 0) {\n var i, j;\n var primebuff0 = new_float$c(286 + 1152 + 576);\n var primebuff1 = new_float$c(286 + 1152 + 576);\n gfc.lame_encode_frame_init = 1;\n for (i = 0, j = 0; i < 286 + 576 * (1 + gfc.mode_gr); ++i) {\n if (i < 576 * gfc.mode_gr) {\n primebuff0[i] = 0;\n if (gfc.channels_out == 2)\n primebuff1[i] = 0;\n } else {\n primebuff0[i] = inbuf[0][j];\n if (gfc.channels_out == 2)\n primebuff1[i] = inbuf[1][j];\n ++j;\n }\n }\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n gfc.l3_side.tt[gr][ch].block_type = Encoder.SHORT_TYPE;\n }\n }\n newMDCT.mdct_sub48(gfc, primebuff0, primebuff1);\n assert$a(gfc.mf_size >= Encoder.BLKSIZE + gfp.framesize - Encoder.FFTOFFSET);\n assert$a(gfc.mf_size >= 512 + gfp.framesize - 32);\n }\n }\n this.lame_encode_mp3_frame = function(gfp, inbuf_l, inbuf_r, mp3buf, mp3bufPos, mp3buf_size) {\n var mp3count;\n var masking_LR = new_array_n([2, 2]);\n masking_LR[0][0] = new III_psy_ratio();\n masking_LR[0][1] = new III_psy_ratio();\n masking_LR[1][0] = new III_psy_ratio();\n masking_LR[1][1] = new III_psy_ratio();\n var masking_MS = new_array_n([2, 2]);\n masking_MS[0][0] = new III_psy_ratio();\n masking_MS[0][1] = new III_psy_ratio();\n masking_MS[1][0] = new III_psy_ratio();\n masking_MS[1][1] = new III_psy_ratio();\n var masking;\n var inbuf = [null, null];\n var gfc = gfp.internal_flags;\n var tot_ener = new_float_n$4([2, 4]);\n var ms_ener_ratio = [0.5, 0.5];\n var pe = [\n [0, 0],\n [0, 0]\n ];\n var pe_MS = [\n [0, 0],\n [0, 0]\n ];\n var pe_use;\n var ch, gr;\n inbuf[0] = inbuf_l;\n inbuf[1] = inbuf_r;\n if (gfc.lame_encode_frame_init == 0) {\n lame_encode_frame_init(gfp, inbuf);\n }\n gfc.padding = 0;\n if ((gfc.slot_lag -= gfc.frac_SpF) < 0) {\n gfc.slot_lag += gfp.out_samplerate;\n gfc.padding = 1;\n }\n if (gfc.psymodel != 0) {\n var ret;\n var bufp = [null, null];\n var bufpPos = 0;\n var blocktype = new_int$c(2);\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n bufp[ch] = inbuf[ch];\n bufpPos = 576 + gr * 576 - Encoder.FFTOFFSET;\n }\n if (gfp.VBR == VbrMode$6.vbr_mtrh || gfp.VBR == VbrMode$6.vbr_mt) {\n ret = psy.L3psycho_anal_vbr(\n gfp,\n bufp,\n bufpPos,\n gr,\n masking_LR,\n masking_MS,\n pe[gr],\n pe_MS[gr],\n tot_ener[gr],\n blocktype\n );\n } else {\n ret = psy.L3psycho_anal_ns(\n gfp,\n bufp,\n bufpPos,\n gr,\n masking_LR,\n masking_MS,\n pe[gr],\n pe_MS[gr],\n tot_ener[gr],\n blocktype\n );\n }\n if (ret != 0)\n return -4;\n if (gfp.mode == MPEGMode.JOINT_STEREO) {\n ms_ener_ratio[gr] = tot_ener[gr][2] + tot_ener[gr][3];\n if (ms_ener_ratio[gr] > 0) {\n ms_ener_ratio[gr] = tot_ener[gr][3] / ms_ener_ratio[gr];\n }\n }\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var cod_info = gfc.l3_side.tt[gr][ch];\n cod_info.block_type = blocktype[ch];\n cod_info.mixed_block_flag = 0;\n }\n }\n } else {\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n gfc.l3_side.tt[gr][ch].block_type = Encoder.NORM_TYPE;\n gfc.l3_side.tt[gr][ch].mixed_block_flag = 0;\n pe_MS[gr][ch] = pe[gr][ch] = 700;\n }\n }\n }\n adjust_ATH(gfc);\n newMDCT.mdct_sub48(gfc, inbuf[0], inbuf[1]);\n gfc.mode_ext = Encoder.MPG_MD_LR_LR;\n if (gfp.force_ms) {\n gfc.mode_ext = Encoder.MPG_MD_MS_LR;\n } else if (gfp.mode == MPEGMode.JOINT_STEREO) {\n var sum_pe_MS = 0;\n var sum_pe_LR = 0;\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n sum_pe_MS += pe_MS[gr][ch];\n sum_pe_LR += pe[gr][ch];\n }\n }\n if (sum_pe_MS <= 1 * sum_pe_LR) {\n var gi0 = gfc.l3_side.tt[0];\n var gi1 = gfc.l3_side.tt[gfc.mode_gr - 1];\n if (gi0[0].block_type == gi0[1].block_type && gi1[0].block_type == gi1[1].block_type) {\n gfc.mode_ext = Encoder.MPG_MD_MS_LR;\n }\n }\n }\n if (gfc.mode_ext == MPG_MD_MS_LR) {\n masking = masking_MS;\n pe_use = pe_MS;\n } else {\n masking = masking_LR;\n pe_use = pe;\n }\n if (gfp.analysis && gfc.pinfo != null) {\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n gfc.pinfo.ms_ratio[gr] = gfc.ms_ratio[gr];\n gfc.pinfo.ms_ener_ratio[gr] = ms_ener_ratio[gr];\n gfc.pinfo.blocktype[gr][ch] = gfc.l3_side.tt[gr][ch].block_type;\n gfc.pinfo.pe[gr][ch] = pe_use[gr][ch];\n System$7.arraycopy(\n gfc.l3_side.tt[gr][ch].xr,\n 0,\n gfc.pinfo.xr[gr][ch],\n 0,\n 576\n );\n if (gfc.mode_ext == MPG_MD_MS_LR) {\n gfc.pinfo.ers[gr][ch] = gfc.pinfo.ers[gr][ch + 2];\n System$7.arraycopy(\n gfc.pinfo.energy[gr][ch + 2],\n 0,\n gfc.pinfo.energy[gr][ch],\n 0,\n gfc.pinfo.energy[gr][ch].length\n );\n }\n }\n }\n }\n if (gfp.VBR == VbrMode$6.vbr_off || gfp.VBR == VbrMode$6.vbr_abr) {\n var i;\n var f;\n for (i = 0; i < 18; i++)\n gfc.nsPsy.pefirbuf[i] = gfc.nsPsy.pefirbuf[i + 1];\n f = 0;\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++)\n f += pe_use[gr][ch];\n }\n gfc.nsPsy.pefirbuf[18] = f;\n f = gfc.nsPsy.pefirbuf[9];\n for (i = 0; i < 9; i++) {\n f += (gfc.nsPsy.pefirbuf[i] + gfc.nsPsy.pefirbuf[18 - i]) * Encoder.fircoef[i];\n }\n f = 670 * 5 * gfc.mode_gr * gfc.channels_out / f;\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n pe_use[gr][ch] *= f;\n }\n }\n }\n gfc.iteration_loop.iteration_loop(gfp, pe_use, ms_ener_ratio, masking);\n bs.format_bitstream(gfp);\n mp3count = bs.copy_buffer(gfc, mp3buf, mp3bufPos, mp3buf_size, 1);\n if (gfp.bWriteVbrTag)\n vbr.addVbrFrame(gfp);\n if (gfp.analysis && gfc.pinfo != null) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var j;\n for (j = 0; j < FFTOFFSET; j++) {\n gfc.pinfo.pcmdata[ch][j] = gfc.pinfo.pcmdata[ch][j + gfp.framesize];\n }\n for (j = FFTOFFSET; j < 1600; j++) {\n gfc.pinfo.pcmdata[ch][j] = inbuf[ch][j - FFTOFFSET];\n }\n }\n qupvt.set_frame_pinfo(gfp, masking);\n }\n updateStats(gfc);\n return mp3count;\n };\n}\nvar Util$3 = common.Util;\nvar new_float$b = common.new_float;\nfunction FFT() {\n var window2 = new_float$b(Encoder.BLKSIZE);\n var window_s = new_float$b(Encoder.BLKSIZE_s / 2);\n var costab = [\n 0.9238795325112867,\n 0.3826834323650898,\n 0.9951847266721969,\n 0.0980171403295606,\n 0.9996988186962042,\n 0.02454122852291229,\n 0.9999811752826011,\n 0.006135884649154475\n ];\n function fht(fz, fzPos, n) {\n var tri = 0;\n var k4;\n var fi;\n var gi;\n n <<= 1;\n var fn = fzPos + n;\n k4 = 4;\n do {\n var s1, c1;\n var i, k1, k2, k3, kx;\n kx = k4 >> 1;\n k1 = k4;\n k2 = k4 << 1;\n k3 = k2 + k1;\n k4 = k2 << 1;\n fi = fzPos;\n gi = fi + kx;\n do {\n var f0, f1, f2, f3;\n f1 = fz[fi + 0] - fz[fi + k1];\n f0 = fz[fi + 0] + fz[fi + k1];\n f3 = fz[fi + k2] - fz[fi + k3];\n f2 = fz[fi + k2] + fz[fi + k3];\n fz[fi + k2] = f0 - f2;\n fz[fi + 0] = f0 + f2;\n fz[fi + k3] = f1 - f3;\n fz[fi + k1] = f1 + f3;\n f1 = fz[gi + 0] - fz[gi + k1];\n f0 = fz[gi + 0] + fz[gi + k1];\n f3 = Util$3.SQRT2 * fz[gi + k3];\n f2 = Util$3.SQRT2 * fz[gi + k2];\n fz[gi + k2] = f0 - f2;\n fz[gi + 0] = f0 + f2;\n fz[gi + k3] = f1 - f3;\n fz[gi + k1] = f1 + f3;\n gi += k4;\n fi += k4;\n } while (fi < fn);\n c1 = costab[tri + 0];\n s1 = costab[tri + 1];\n for (i = 1; i < kx; i++) {\n var c2, s2;\n c2 = 1 - 2 * s1 * s1;\n s2 = 2 * s1 * c1;\n fi = fzPos + i;\n gi = fzPos + k1 - i;\n do {\n var a, b, g0, f0, f1, g1, f2, g2, f3, g3;\n b = s2 * fz[fi + k1] - c2 * fz[gi + k1];\n a = c2 * fz[fi + k1] + s2 * fz[gi + k1];\n f1 = fz[fi + 0] - a;\n f0 = fz[fi + 0] + a;\n g1 = fz[gi + 0] - b;\n g0 = fz[gi + 0] + b;\n b = s2 * fz[fi + k3] - c2 * fz[gi + k3];\n a = c2 * fz[fi + k3] + s2 * fz[gi + k3];\n f3 = fz[fi + k2] - a;\n f2 = fz[fi + k2] + a;\n g3 = fz[gi + k2] - b;\n g2 = fz[gi + k2] + b;\n b = s1 * f2 - c1 * g3;\n a = c1 * f2 + s1 * g3;\n fz[fi + k2] = f0 - a;\n fz[fi + 0] = f0 + a;\n fz[gi + k3] = g1 - b;\n fz[gi + k1] = g1 + b;\n b = c1 * g2 - s1 * f3;\n a = s1 * g2 + c1 * f3;\n fz[gi + k2] = g0 - a;\n fz[gi + 0] = g0 + a;\n fz[fi + k3] = f1 - b;\n fz[fi + k1] = f1 + b;\n gi += k4;\n fi += k4;\n } while (fi < fn);\n c2 = c1;\n c1 = c2 * costab[tri + 0] - s1 * costab[tri + 1];\n s1 = c2 * costab[tri + 1] + s1 * costab[tri + 0];\n }\n tri += 2;\n } while (k4 < n);\n }\n var rv_tbl = [\n 0,\n 128,\n 64,\n 192,\n 32,\n 160,\n 96,\n 224,\n 16,\n 144,\n 80,\n 208,\n 48,\n 176,\n 112,\n 240,\n 8,\n 136,\n 72,\n 200,\n 40,\n 168,\n 104,\n 232,\n 24,\n 152,\n 88,\n 216,\n 56,\n 184,\n 120,\n 248,\n 4,\n 132,\n 68,\n 196,\n 36,\n 164,\n 100,\n 228,\n 20,\n 148,\n 84,\n 212,\n 52,\n 180,\n 116,\n 244,\n 12,\n 140,\n 76,\n 204,\n 44,\n 172,\n 108,\n 236,\n 28,\n 156,\n 92,\n 220,\n 60,\n 188,\n 124,\n 252,\n 2,\n 130,\n 66,\n 194,\n 34,\n 162,\n 98,\n 226,\n 18,\n 146,\n 82,\n 210,\n 50,\n 178,\n 114,\n 242,\n 10,\n 138,\n 74,\n 202,\n 42,\n 170,\n 106,\n 234,\n 26,\n 154,\n 90,\n 218,\n 58,\n 186,\n 122,\n 250,\n 6,\n 134,\n 70,\n 198,\n 38,\n 166,\n 102,\n 230,\n 22,\n 150,\n 86,\n 214,\n 54,\n 182,\n 118,\n 246,\n 14,\n 142,\n 78,\n 206,\n 46,\n 174,\n 110,\n 238,\n 30,\n 158,\n 94,\n 222,\n 62,\n 190,\n 126,\n 254\n ];\n this.fft_short = function(gfc, x_real, chn, buffer, bufPos) {\n for (var b = 0; b < 3; b++) {\n var x = Encoder.BLKSIZE_s / 2;\n var k = 65535 & 576 / 3 * (b + 1);\n var j = Encoder.BLKSIZE_s / 8 - 1;\n do {\n var f0, f1, f2, f3, w;\n var i = rv_tbl[j << 2] & 255;\n f0 = window_s[i] * buffer[chn][bufPos + i + k];\n w = window_s[127 - i] * buffer[chn][bufPos + i + k + 128];\n f1 = f0 - w;\n f0 = f0 + w;\n f2 = window_s[i + 64] * buffer[chn][bufPos + i + k + 64];\n w = window_s[63 - i] * buffer[chn][bufPos + i + k + 192];\n f3 = f2 - w;\n f2 = f2 + w;\n x -= 4;\n x_real[b][x + 0] = f0 + f2;\n x_real[b][x + 2] = f0 - f2;\n x_real[b][x + 1] = f1 + f3;\n x_real[b][x + 3] = f1 - f3;\n f0 = window_s[i + 1] * buffer[chn][bufPos + i + k + 1];\n w = window_s[126 - i] * buffer[chn][bufPos + i + k + 129];\n f1 = f0 - w;\n f0 = f0 + w;\n f2 = window_s[i + 65] * buffer[chn][bufPos + i + k + 65];\n w = window_s[62 - i] * buffer[chn][bufPos + i + k + 193];\n f3 = f2 - w;\n f2 = f2 + w;\n x_real[b][x + Encoder.BLKSIZE_s / 2 + 0] = f0 + f2;\n x_real[b][x + Encoder.BLKSIZE_s / 2 + 2] = f0 - f2;\n x_real[b][x + Encoder.BLKSIZE_s / 2 + 1] = f1 + f3;\n x_real[b][x + Encoder.BLKSIZE_s / 2 + 3] = f1 - f3;\n } while (--j >= 0);\n fht(x_real[b], x, Encoder.BLKSIZE_s / 2);\n }\n };\n this.fft_long = function(gfc, y, chn, buffer, bufPos) {\n var jj = Encoder.BLKSIZE / 8 - 1;\n var x = Encoder.BLKSIZE / 2;\n do {\n var f0, f1, f2, f3, w;\n var i = rv_tbl[jj] & 255;\n f0 = window2[i] * buffer[chn][bufPos + i];\n w = window2[i + 512] * buffer[chn][bufPos + i + 512];\n f1 = f0 - w;\n f0 = f0 + w;\n f2 = window2[i + 256] * buffer[chn][bufPos + i + 256];\n w = window2[i + 768] * buffer[chn][bufPos + i + 768];\n f3 = f2 - w;\n f2 = f2 + w;\n x -= 4;\n y[x + 0] = f0 + f2;\n y[x + 2] = f0 - f2;\n y[x + 1] = f1 + f3;\n y[x + 3] = f1 - f3;\n f0 = window2[i + 1] * buffer[chn][bufPos + i + 1];\n w = window2[i + 513] * buffer[chn][bufPos + i + 513];\n f1 = f0 - w;\n f0 = f0 + w;\n f2 = window2[i + 257] * buffer[chn][bufPos + i + 257];\n w = window2[i + 769] * buffer[chn][bufPos + i + 769];\n f3 = f2 - w;\n f2 = f2 + w;\n y[x + Encoder.BLKSIZE / 2 + 0] = f0 + f2;\n y[x + Encoder.BLKSIZE / 2 + 2] = f0 - f2;\n y[x + Encoder.BLKSIZE / 2 + 1] = f1 + f3;\n y[x + Encoder.BLKSIZE / 2 + 3] = f1 - f3;\n } while (--jj >= 0);\n fht(y, x, Encoder.BLKSIZE / 2);\n };\n this.init_fft = function(gfc) {\n for (var i = 0; i < Encoder.BLKSIZE; i++) {\n window2[i] = 0.42 - 0.5 * Math.cos(2 * Math.PI * (i + 0.5) / Encoder.BLKSIZE) + 0.08 * Math.cos(4 * Math.PI * (i + 0.5) / Encoder.BLKSIZE);\n }\n for (var i = 0; i < Encoder.BLKSIZE_s / 2; i++) {\n window_s[i] = 0.5 * (1 - Math.cos(2 * Math.PI * (i + 0.5) / Encoder.BLKSIZE_s));\n }\n };\n}\nvar VbrMode$5 = common.VbrMode;\nvar Float$1 = common.Float;\nvar ShortBlock$2 = common.ShortBlock;\nvar Util$2 = common.Util;\nvar Arrays$5 = common.Arrays;\nvar new_float$a = common.new_float;\nvar new_float_n$3 = common.new_float_n;\nvar new_int$b = common.new_int;\nvar assert$9 = common.assert;\nfunction PsyModel() {\n var fft = new FFT();\n var LOG10 = 2.302585092994046;\n var rpelev = 2;\n var rpelev2 = 16;\n var rpelev_s = 2;\n var rpelev2_s = 16;\n var DELBARK = 0.34;\n var VO_SCALE = 1 / (14752 * 14752) / (Encoder.BLKSIZE / 2);\n var temporalmask_sustain_sec = 0.01;\n var NS_PREECHO_ATT0 = 0.8;\n var NS_PREECHO_ATT1 = 0.6;\n var NS_PREECHO_ATT2 = 0.3;\n var NS_MSFIX = 3.5;\n var NSFIRLEN = 21;\n var LN_TO_LOG10 = 0.2302585093;\n function NON_LINEAR_SCALE_ENERGY(x) {\n return x;\n }\n function psycho_loudness_approx(energy, gfc) {\n var loudness_power = 0;\n for (var i = 0; i < Encoder.BLKSIZE / 2; ++i) {\n loudness_power += energy[i] * gfc.ATH.eql_w[i];\n }\n loudness_power *= VO_SCALE;\n return loudness_power;\n }\n function compute_ffts(gfp, fftenergy, fftenergy_s, wsamp_l, wsamp_lPos, wsamp_s, wsamp_sPos, gr_out, chn, buffer, bufPos) {\n var gfc = gfp.internal_flags;\n if (chn < 2) {\n fft.fft_long(gfc, wsamp_l[wsamp_lPos], chn, buffer, bufPos);\n fft.fft_short(gfc, wsamp_s[wsamp_sPos], chn, buffer, bufPos);\n } else if (chn == 2) {\n for (var j = Encoder.BLKSIZE - 1; j >= 0; --j) {\n var l = wsamp_l[wsamp_lPos + 0][j];\n var r = wsamp_l[wsamp_lPos + 1][j];\n wsamp_l[wsamp_lPos + 0][j] = (l + r) * Util$2.SQRT2 * 0.5;\n wsamp_l[wsamp_lPos + 1][j] = (l - r) * Util$2.SQRT2 * 0.5;\n }\n for (var b = 2; b >= 0; --b) {\n for (var j = Encoder.BLKSIZE_s - 1; j >= 0; --j) {\n var l = wsamp_s[wsamp_sPos + 0][b][j];\n var r = wsamp_s[wsamp_sPos + 1][b][j];\n wsamp_s[wsamp_sPos + 0][b][j] = (l + r) * Util$2.SQRT2 * 0.5;\n wsamp_s[wsamp_sPos + 1][b][j] = (l - r) * Util$2.SQRT2 * 0.5;\n }\n }\n }\n fftenergy[0] = NON_LINEAR_SCALE_ENERGY(wsamp_l[wsamp_lPos + 0][0]);\n fftenergy[0] *= fftenergy[0];\n for (var j = Encoder.BLKSIZE / 2 - 1; j >= 0; --j) {\n var re = wsamp_l[wsamp_lPos + 0][Encoder.BLKSIZE / 2 - j];\n var im = wsamp_l[wsamp_lPos + 0][Encoder.BLKSIZE / 2 + j];\n fftenergy[Encoder.BLKSIZE / 2 - j] = NON_LINEAR_SCALE_ENERGY(\n (re * re + im * im) * 0.5\n );\n }\n for (var b = 2; b >= 0; --b) {\n fftenergy_s[b][0] = wsamp_s[wsamp_sPos + 0][b][0];\n fftenergy_s[b][0] *= fftenergy_s[b][0];\n for (var j = Encoder.BLKSIZE_s / 2 - 1; j >= 0; --j) {\n var re = wsamp_s[wsamp_sPos + 0][b][Encoder.BLKSIZE_s / 2 - j];\n var im = wsamp_s[wsamp_sPos + 0][b][Encoder.BLKSIZE_s / 2 + j];\n fftenergy_s[b][Encoder.BLKSIZE_s / 2 - j] = NON_LINEAR_SCALE_ENERGY(\n (re * re + im * im) * 0.5\n );\n }\n }\n {\n var totalenergy = 0;\n for (var j = 11; j < Encoder.HBLKSIZE; j++)\n totalenergy += fftenergy[j];\n gfc.tot_ener[chn] = totalenergy;\n }\n if (gfp.analysis) {\n for (var j = 0; j < Encoder.HBLKSIZE; j++) {\n gfc.pinfo.energy[gr_out][chn][j] = gfc.pinfo.energy_save[chn][j];\n gfc.pinfo.energy_save[chn][j] = fftenergy[j];\n }\n gfc.pinfo.pe[gr_out][chn] = gfc.pe[chn];\n }\n if (gfp.athaa_loudapprox == 2 && chn < 2) {\n gfc.loudness_sq[gr_out][chn] = gfc.loudness_sq_save[chn];\n gfc.loudness_sq_save[chn] = psycho_loudness_approx(fftenergy, gfc);\n }\n }\n var I1LIMIT = 8;\n var I2LIMIT = 23;\n var MLIMIT = 15;\n var ma_max_i1;\n var ma_max_i2;\n var ma_max_m;\n var tab = [\n 1,\n 0.79433,\n 0.63096,\n 0.63096,\n 0.63096,\n 0.63096,\n 0.63096,\n 0.25119,\n 0.11749\n ];\n function init_mask_add_max_values() {\n ma_max_i1 = Math.pow(10, (I1LIMIT + 1) / 16);\n ma_max_i2 = Math.pow(10, (I2LIMIT + 1) / 16);\n ma_max_m = Math.pow(10, MLIMIT / 10);\n }\n var table1 = [\n 3.3246 * 3.3246,\n 3.23837 * 3.23837,\n 3.15437 * 3.15437,\n 3.00412 * 3.00412,\n 2.86103 * 2.86103,\n 2.65407 * 2.65407,\n 2.46209 * 2.46209,\n 2.284 * 2.284,\n 2.11879 * 2.11879,\n 1.96552 * 1.96552,\n 1.82335 * 1.82335,\n 1.69146 * 1.69146,\n 1.56911 * 1.56911,\n 1.46658 * 1.46658,\n 1.37074 * 1.37074,\n 1.31036 * 1.31036,\n 1.25264 * 1.25264,\n 1.20648 * 1.20648,\n 1.16203 * 1.16203,\n 1.12765 * 1.12765,\n 1.09428 * 1.09428,\n 1.0659 * 1.0659,\n 1.03826 * 1.03826,\n 1.01895 * 1.01895,\n 1\n ];\n var table2 = [\n 1.33352 * 1.33352,\n 1.35879 * 1.35879,\n 1.38454 * 1.38454,\n 1.39497 * 1.39497,\n 1.40548 * 1.40548,\n 1.3537 * 1.3537,\n 1.30382 * 1.30382,\n 1.22321 * 1.22321,\n 1.14758 * 1.14758,\n 1\n ];\n var table3 = [\n 2.35364 * 2.35364,\n 2.29259 * 2.29259,\n 2.23313 * 2.23313,\n 2.12675 * 2.12675,\n 2.02545 * 2.02545,\n 1.87894 * 1.87894,\n 1.74303 * 1.74303,\n 1.61695 * 1.61695,\n 1.49999 * 1.49999,\n 1.39148 * 1.39148,\n 1.29083 * 1.29083,\n 1.19746 * 1.19746,\n 1.11084 * 1.11084,\n 1.03826 * 1.03826\n ];\n function mask_add(m1, m2, kk, b, gfc, shortblock) {\n var ratio;\n if (m2 > m1) {\n if (m2 < m1 * ma_max_i2)\n ratio = m2 / m1;\n else\n return m1 + m2;\n } else {\n if (m1 >= m2 * ma_max_i2)\n return m1 + m2;\n ratio = m1 / m2;\n }\n m1 += m2;\n if (b + 3 <= 3 + 3) {\n if (ratio >= ma_max_i1) {\n return m1;\n }\n var i = 0 | Util$2.FAST_LOG10_X(ratio, 16);\n return m1 * table2[i];\n }\n var i = 0 | Util$2.FAST_LOG10_X(ratio, 16);\n if (shortblock != 0) {\n m2 = gfc.ATH.cb_s[kk] * gfc.ATH.adjust;\n } else {\n m2 = gfc.ATH.cb_l[kk] * gfc.ATH.adjust;\n }\n if (m1 < ma_max_m * m2) {\n if (m1 > m2) {\n var f, r;\n f = 1;\n if (i <= 13)\n f = table3[i];\n r = Util$2.FAST_LOG10_X(m1 / m2, 10 / 15);\n return m1 * ((table1[i] - f) * r + f);\n }\n if (i > 13)\n return m1;\n return m1 * table3[i];\n }\n return m1 * table1[i];\n }\n var table2_ = [\n 1.33352 * 1.33352,\n 1.35879 * 1.35879,\n 1.38454 * 1.38454,\n 1.39497 * 1.39497,\n 1.40548 * 1.40548,\n 1.3537 * 1.3537,\n 1.30382 * 1.30382,\n 1.22321 * 1.22321,\n 1.14758 * 1.14758,\n 1\n ];\n function vbrpsy_mask_add(m1, m2, b) {\n var ratio;\n if (m1 < 0) {\n m1 = 0;\n }\n if (m2 < 0) {\n m2 = 0;\n }\n if (m1 <= 0) {\n return m2;\n }\n if (m2 <= 0) {\n return m1;\n }\n if (m2 > m1) {\n ratio = m2 / m1;\n } else {\n ratio = m1 / m2;\n }\n if (b >= -2 && b <= 2) {\n if (ratio >= ma_max_i1) {\n return m1 + m2;\n } else {\n var i = 0 | Util$2.FAST_LOG10_X(ratio, 16);\n return (m1 + m2) * table2_[i];\n }\n }\n if (ratio < ma_max_i2) {\n return m1 + m2;\n }\n if (m1 < m2) {\n m1 = m2;\n }\n return m1;\n }\n function calc_interchannel_masking(gfp, ratio) {\n var gfc = gfp.internal_flags;\n if (gfc.channels_out > 1) {\n for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {\n var l = gfc.thm[0].l[sb];\n var r = gfc.thm[1].l[sb];\n gfc.thm[0].l[sb] += r * ratio;\n gfc.thm[1].l[sb] += l * ratio;\n }\n for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n for (var sblock = 0; sblock < 3; sblock++) {\n var l = gfc.thm[0].s[sb][sblock];\n var r = gfc.thm[1].s[sb][sblock];\n gfc.thm[0].s[sb][sblock] += r * ratio;\n gfc.thm[1].s[sb][sblock] += l * ratio;\n }\n }\n }\n }\n function msfix1(gfc) {\n for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {\n if (gfc.thm[0].l[sb] > 1.58 * gfc.thm[1].l[sb] || gfc.thm[1].l[sb] > 1.58 * gfc.thm[0].l[sb]) {\n continue;\n }\n var mld = gfc.mld_l[sb] * gfc.en[3].l[sb];\n var rmid = Math.max(gfc.thm[2].l[sb], Math.min(gfc.thm[3].l[sb], mld));\n mld = gfc.mld_l[sb] * gfc.en[2].l[sb];\n var rside = Math.max(gfc.thm[3].l[sb], Math.min(gfc.thm[2].l[sb], mld));\n gfc.thm[2].l[sb] = rmid;\n gfc.thm[3].l[sb] = rside;\n }\n for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n for (var sblock = 0; sblock < 3; sblock++) {\n if (gfc.thm[0].s[sb][sblock] > 1.58 * gfc.thm[1].s[sb][sblock] || gfc.thm[1].s[sb][sblock] > 1.58 * gfc.thm[0].s[sb][sblock]) {\n continue;\n }\n var mld = gfc.mld_s[sb] * gfc.en[3].s[sb][sblock];\n var rmid = Math.max(\n gfc.thm[2].s[sb][sblock],\n Math.min(gfc.thm[3].s[sb][sblock], mld)\n );\n mld = gfc.mld_s[sb] * gfc.en[2].s[sb][sblock];\n var rside = Math.max(\n gfc.thm[3].s[sb][sblock],\n Math.min(gfc.thm[2].s[sb][sblock], mld)\n );\n gfc.thm[2].s[sb][sblock] = rmid;\n gfc.thm[3].s[sb][sblock] = rside;\n }\n }\n }\n function ns_msfix(gfc, msfix, athadjust) {\n var msfix2 = msfix;\n var athlower = Math.pow(10, athadjust);\n msfix *= 2;\n msfix2 *= 2;\n for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {\n var thmLR, thmM, thmS, ath;\n ath = gfc.ATH.cb_l[gfc.bm_l[sb]] * athlower;\n thmLR = Math.min(\n Math.max(gfc.thm[0].l[sb], ath),\n Math.max(gfc.thm[1].l[sb], ath)\n );\n thmM = Math.max(gfc.thm[2].l[sb], ath);\n thmS = Math.max(gfc.thm[3].l[sb], ath);\n if (thmLR * msfix < thmM + thmS) {\n var f = thmLR * msfix2 / (thmM + thmS);\n thmM *= f;\n thmS *= f;\n }\n gfc.thm[2].l[sb] = Math.min(thmM, gfc.thm[2].l[sb]);\n gfc.thm[3].l[sb] = Math.min(thmS, gfc.thm[3].l[sb]);\n }\n athlower *= Encoder.BLKSIZE_s / Encoder.BLKSIZE;\n for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n for (var sblock = 0; sblock < 3; sblock++) {\n var thmLR, thmM, thmS, ath;\n ath = gfc.ATH.cb_s[gfc.bm_s[sb]] * athlower;\n thmLR = Math.min(\n Math.max(gfc.thm[0].s[sb][sblock], ath),\n Math.max(gfc.thm[1].s[sb][sblock], ath)\n );\n thmM = Math.max(gfc.thm[2].s[sb][sblock], ath);\n thmS = Math.max(gfc.thm[3].s[sb][sblock], ath);\n if (thmLR * msfix < thmM + thmS) {\n var f = thmLR * msfix / (thmM + thmS);\n thmM *= f;\n thmS *= f;\n }\n gfc.thm[2].s[sb][sblock] = Math.min(gfc.thm[2].s[sb][sblock], thmM);\n gfc.thm[3].s[sb][sblock] = Math.min(gfc.thm[3].s[sb][sblock], thmS);\n }\n }\n }\n function convert_partition2scalefac_s(gfc, eb, thr, chn, sblock) {\n var sb, b;\n var enn = 0;\n var thmm = 0;\n for (sb = b = 0; sb < Encoder.SBMAX_s; ++b, ++sb) {\n var bo_s_sb = gfc.bo_s[sb];\n var npart_s = gfc.npart_s;\n var b_lim = bo_s_sb < npart_s ? bo_s_sb : npart_s;\n while (b < b_lim) {\n assert$9(eb[b] >= 0);\n assert$9(thr[b] >= 0);\n enn += eb[b];\n thmm += thr[b];\n b++;\n }\n gfc.en[chn].s[sb][sblock] = enn;\n gfc.thm[chn].s[sb][sblock] = thmm;\n if (b >= npart_s) {\n ++sb;\n break;\n }\n assert$9(eb[b] >= 0);\n assert$9(thr[b] >= 0);\n {\n var w_curr = gfc.PSY.bo_s_weight[sb];\n var w_next = 1 - w_curr;\n enn = w_curr * eb[b];\n thmm = w_curr * thr[b];\n gfc.en[chn].s[sb][sblock] += enn;\n gfc.thm[chn].s[sb][sblock] += thmm;\n enn = w_next * eb[b];\n thmm = w_next * thr[b];\n }\n }\n for (; sb < Encoder.SBMAX_s; ++sb) {\n gfc.en[chn].s[sb][sblock] = 0;\n gfc.thm[chn].s[sb][sblock] = 0;\n }\n }\n function convert_partition2scalefac_l(gfc, eb, thr, chn) {\n var sb, b;\n var enn = 0;\n var thmm = 0;\n for (sb = b = 0; sb < Encoder.SBMAX_l; ++b, ++sb) {\n var bo_l_sb = gfc.bo_l[sb];\n var npart_l = gfc.npart_l;\n var b_lim = bo_l_sb < npart_l ? bo_l_sb : npart_l;\n while (b < b_lim) {\n assert$9(eb[b] >= 0);\n assert$9(thr[b] >= 0);\n enn += eb[b];\n thmm += thr[b];\n b++;\n }\n gfc.en[chn].l[sb] = enn;\n gfc.thm[chn].l[sb] = thmm;\n if (b >= npart_l) {\n ++sb;\n break;\n }\n assert$9(eb[b] >= 0);\n assert$9(thr[b] >= 0);\n {\n var w_curr = gfc.PSY.bo_l_weight[sb];\n var w_next = 1 - w_curr;\n enn = w_curr * eb[b];\n thmm = w_curr * thr[b];\n gfc.en[chn].l[sb] += enn;\n gfc.thm[chn].l[sb] += thmm;\n enn = w_next * eb[b];\n thmm = w_next * thr[b];\n }\n }\n for (; sb < Encoder.SBMAX_l; ++sb) {\n gfc.en[chn].l[sb] = 0;\n gfc.thm[chn].l[sb] = 0;\n }\n }\n function compute_masking_s(gfp, fftenergy_s, eb, thr, chn, sblock) {\n var gfc = gfp.internal_flags;\n var j, b;\n for (b = j = 0; b < gfc.npart_s; ++b) {\n var ebb = 0;\n var n = gfc.numlines_s[b];\n for (var i = 0; i < n; ++i, ++j) {\n var el = fftenergy_s[sblock][j];\n ebb += el;\n }\n eb[b] = ebb;\n }\n assert$9(b == gfc.npart_s);\n for (j = b = 0; b < gfc.npart_s; b++) {\n var kk = gfc.s3ind_s[b][0];\n var ecb = gfc.s3_ss[j++] * eb[kk];\n ++kk;\n while (kk <= gfc.s3ind_s[b][1]) {\n ecb += gfc.s3_ss[j] * eb[kk];\n ++j;\n ++kk;\n }\n {\n var x = rpelev_s * gfc.nb_s1[chn][b];\n thr[b] = Math.min(ecb, x);\n }\n if (gfc.blocktype_old[chn & 1] == Encoder.SHORT_TYPE) {\n var x = rpelev2_s * gfc.nb_s2[chn][b];\n var y = thr[b];\n thr[b] = Math.min(x, y);\n }\n gfc.nb_s2[chn][b] = gfc.nb_s1[chn][b];\n gfc.nb_s1[chn][b] = ecb;\n assert$9(thr[b] >= 0);\n }\n for (; b <= Encoder.CBANDS; ++b) {\n eb[b] = 0;\n thr[b] = 0;\n }\n }\n function block_type_set(gfp, uselongblock, blocktype_d, blocktype) {\n var gfc = gfp.internal_flags;\n if (gfp.short_blocks == ShortBlock$2.short_block_coupled && !(uselongblock[0] != 0 && uselongblock[1] != 0)) {\n uselongblock[0] = uselongblock[1] = 0;\n }\n for (var chn = 0; chn < gfc.channels_out; chn++) {\n blocktype[chn] = Encoder.NORM_TYPE;\n if (gfp.short_blocks == ShortBlock$2.short_block_dispensed) {\n uselongblock[chn] = 1;\n }\n if (gfp.short_blocks == ShortBlock$2.short_block_forced) {\n uselongblock[chn] = 0;\n }\n if (uselongblock[chn] != 0) {\n assert$9(gfc.blocktype_old[chn] != Encoder.START_TYPE);\n if (gfc.blocktype_old[chn] == Encoder.SHORT_TYPE) {\n blocktype[chn] = Encoder.STOP_TYPE;\n }\n } else {\n blocktype[chn] = Encoder.SHORT_TYPE;\n if (gfc.blocktype_old[chn] == Encoder.NORM_TYPE) {\n gfc.blocktype_old[chn] = Encoder.START_TYPE;\n }\n if (gfc.blocktype_old[chn] == Encoder.STOP_TYPE) {\n gfc.blocktype_old[chn] = Encoder.SHORT_TYPE;\n }\n }\n blocktype_d[chn] = gfc.blocktype_old[chn];\n gfc.blocktype_old[chn] = blocktype[chn];\n }\n }\n function NS_INTERP(x, y, r) {\n if (r >= 1) {\n return x;\n }\n if (r <= 0)\n return y;\n if (y > 0) {\n return Math.pow(x / y, r) * y;\n }\n return 0;\n }\n var regcoef_s = [\n 11.8,\n 13.6,\n 17.2,\n 32,\n 46.5,\n 51.3,\n 57.5,\n 67.1,\n 71.5,\n 84.6,\n 97.6,\n 130\n ];\n function pecalc_s(mr, masking_lower) {\n var pe_s = 1236.28 / 4;\n for (var sb = 0; sb < Encoder.SBMAX_s - 1; sb++) {\n for (var sblock = 0; sblock < 3; sblock++) {\n var thm = mr.thm.s[sb][sblock];\n if (thm > 0) {\n var x = thm * masking_lower;\n var en = mr.en.s[sb][sblock];\n if (en > x) {\n if (en > x * 1e10) {\n pe_s += regcoef_s[sb] * (10 * LOG10);\n } else {\n pe_s += regcoef_s[sb] * Util$2.FAST_LOG10(en / x);\n }\n }\n }\n }\n }\n return pe_s;\n }\n var regcoef_l = [\n 6.8,\n 5.8,\n 5.8,\n 6.4,\n 6.5,\n 9.9,\n 12.1,\n 14.4,\n 15,\n 18.9,\n 21.6,\n 26.9,\n 34.2,\n 40.2,\n 46.8,\n 56.5,\n 60.7,\n 73.9,\n 85.7,\n 93.4,\n 126.1\n ];\n function pecalc_l(mr, masking_lower) {\n var pe_l = 1124.23 / 4;\n for (var sb = 0; sb < Encoder.SBMAX_l - 1; sb++) {\n var thm = mr.thm.l[sb];\n if (thm > 0) {\n var x = thm * masking_lower;\n var en = mr.en.l[sb];\n if (en > x) {\n if (en > x * 1e10) {\n pe_l += regcoef_l[sb] * (10 * LOG10);\n } else {\n pe_l += regcoef_l[sb] * Util$2.FAST_LOG10(en / x);\n }\n }\n }\n }\n return pe_l;\n }\n function calc_energy(gfc, fftenergy, eb, max, avg) {\n var b, j;\n for (b = j = 0; b < gfc.npart_l; ++b) {\n var ebb = 0;\n var m = 0;\n var i;\n for (i = 0; i < gfc.numlines_l[b]; ++i, ++j) {\n var el = fftenergy[j];\n ebb += el;\n if (m < el)\n m = el;\n }\n eb[b] = ebb;\n max[b] = m;\n avg[b] = ebb * gfc.rnumlines_l[b];\n assert$9(gfc.rnumlines_l[b] >= 0);\n assert$9(eb[b] >= 0);\n assert$9(max[b] >= 0);\n assert$9(avg[b] >= 0);\n }\n }\n function calc_mask_index_l(gfc, max, avg, mask_idx) {\n var last_tab_entry = tab.length - 1;\n var b = 0;\n var a = avg[b] + avg[b + 1];\n if (a > 0) {\n var m = max[b];\n if (m < max[b + 1])\n m = max[b + 1];\n assert$9(gfc.numlines_l[b] + gfc.numlines_l[b + 1] - 1 > 0);\n a = 20 * (m * 2 - a) / (a * (gfc.numlines_l[b] + gfc.numlines_l[b + 1] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n for (b = 1; b < gfc.npart_l - 1; b++) {\n a = avg[b - 1] + avg[b] + avg[b + 1];\n if (a > 0) {\n var m = max[b - 1];\n if (m < max[b])\n m = max[b];\n if (m < max[b + 1])\n m = max[b + 1];\n assert$9(\n gfc.numlines_l[b - 1] + gfc.numlines_l[b] + gfc.numlines_l[b + 1] - 1 > 0\n );\n a = 20 * (m * 3 - a) / (a * (gfc.numlines_l[b - 1] + gfc.numlines_l[b] + gfc.numlines_l[b + 1] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n }\n assert$9(b == gfc.npart_l - 1);\n a = avg[b - 1] + avg[b];\n if (a > 0) {\n var m = max[b - 1];\n if (m < max[b])\n m = max[b];\n assert$9(gfc.numlines_l[b - 1] + gfc.numlines_l[b] - 1 > 0);\n a = 20 * (m * 2 - a) / (a * (gfc.numlines_l[b - 1] + gfc.numlines_l[b] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n assert$9(b == gfc.npart_l - 1);\n }\n var fircoef = [\n -865163e-23 * 2,\n -851586e-8 * 2,\n -674764e-23 * 2,\n 0.0209036 * 2,\n -336639e-22 * 2,\n -0.0438162 * 2,\n -154175e-22 * 2,\n 0.0931738 * 2,\n -552212e-22 * 2,\n -0.313819 * 2\n ];\n this.L3psycho_anal_ns = function(gfp, buffer, bufPos, gr_out, masking_ratio, masking_MS_ratio, percep_entropy, percep_MS_entropy, energy, blocktype_d) {\n var gfc = gfp.internal_flags;\n var wsamp_L = new_float_n$3([2, Encoder.BLKSIZE]);\n var wsamp_S = new_float_n$3([2, 3, Encoder.BLKSIZE_s]);\n var eb_l = new_float$a(Encoder.CBANDS + 1);\n var eb_s = new_float$a(Encoder.CBANDS + 1);\n var thr = new_float$a(Encoder.CBANDS + 2);\n var blocktype = new_int$b(2);\n var uselongblock = new_int$b(2);\n var numchn, chn;\n var b, i, j, k;\n var sb, sblock;\n var ns_hpfsmpl = new_float_n$3([2, 576]);\n var pcfact;\n var mask_idx_l = new_int$b(Encoder.CBANDS + 2);\n var mask_idx_s = new_int$b(Encoder.CBANDS + 2);\n Arrays$5.fill(mask_idx_s, 0);\n numchn = gfc.channels_out;\n if (gfp.mode == MPEGMode.JOINT_STEREO)\n numchn = 4;\n if (gfp.VBR == VbrMode$5.vbr_off) {\n pcfact = gfc.ResvMax == 0 ? 0 : gfc.ResvSize / gfc.ResvMax * 0.5;\n } else if (gfp.VBR == VbrMode$5.vbr_rh || gfp.VBR == VbrMode$5.vbr_mtrh || gfp.VBR == VbrMode$5.vbr_mt) {\n pcfact = 0.6;\n } else\n pcfact = 1;\n for (chn = 0; chn < gfc.channels_out; chn++) {\n var firbuf2 = buffer[chn];\n var firbufPos = bufPos + 576 - 350 - NSFIRLEN + 192;\n for (i = 0; i < 576; i++) {\n var sum1, sum2;\n sum1 = firbuf2[firbufPos + i + 10];\n sum2 = 0;\n for (j = 0; j < (NSFIRLEN - 1) / 2 - 1; j += 2) {\n sum1 += fircoef[j] * (firbuf2[firbufPos + i + j] + firbuf2[firbufPos + i + NSFIRLEN - j]);\n sum2 += fircoef[j + 1] * (firbuf2[firbufPos + i + j + 1] + firbuf2[firbufPos + i + NSFIRLEN - j - 1]);\n }\n ns_hpfsmpl[chn][i] = sum1 + sum2;\n }\n masking_ratio[gr_out][chn].en.assign(gfc.en[chn]);\n masking_ratio[gr_out][chn].thm.assign(gfc.thm[chn]);\n if (numchn > 2) {\n masking_MS_ratio[gr_out][chn].en.assign(gfc.en[chn + 2]);\n masking_MS_ratio[gr_out][chn].thm.assign(gfc.thm[chn + 2]);\n }\n }\n for (chn = 0; chn < numchn; chn++) {\n var wsamp_l;\n var wsamp_s;\n var en_subshort = new_float$a(12);\n var en_short = [0, 0, 0, 0];\n var attack_intensity = new_float$a(12);\n var ns_uselongblock = 1;\n var attackThreshold;\n var max = new_float$a(Encoder.CBANDS);\n var avg = new_float$a(Encoder.CBANDS);\n var ns_attacks = [0, 0, 0, 0];\n var fftenergy = new_float$a(Encoder.HBLKSIZE);\n var fftenergy_s = new_float_n$3([3, Encoder.HBLKSIZE_s]);\n assert$9(gfc.npart_s <= Encoder.CBANDS);\n assert$9(gfc.npart_l <= Encoder.CBANDS);\n for (i = 0; i < 3; i++) {\n en_subshort[i] = gfc.nsPsy.last_en_subshort[chn][i + 6];\n assert$9(gfc.nsPsy.last_en_subshort[chn][i + 4] > 0);\n attack_intensity[i] = en_subshort[i] / gfc.nsPsy.last_en_subshort[chn][i + 4];\n en_short[0] += en_subshort[i];\n }\n if (chn == 2) {\n for (i = 0; i < 576; i++) {\n var l, r;\n l = ns_hpfsmpl[0][i];\n r = ns_hpfsmpl[1][i];\n ns_hpfsmpl[0][i] = l + r;\n ns_hpfsmpl[1][i] = l - r;\n }\n }\n {\n var pf = ns_hpfsmpl[chn & 1];\n var pfPos = 0;\n for (i = 0; i < 9; i++) {\n var pfe = pfPos + 576 / 9;\n var p2 = 1;\n for (; pfPos < pfe; pfPos++) {\n if (p2 < Math.abs(pf[pfPos]))\n p2 = Math.abs(pf[pfPos]);\n }\n gfc.nsPsy.last_en_subshort[chn][i] = en_subshort[i + 3] = p2;\n en_short[1 + i / 3] += p2;\n if (p2 > en_subshort[i + 3 - 2]) {\n assert$9(en_subshort[i + 3 - 2] > 0);\n p2 = p2 / en_subshort[i + 3 - 2];\n } else if (en_subshort[i + 3 - 2] > p2 * 10) {\n p2 = en_subshort[i + 3 - 2] / (p2 * 10);\n } else\n p2 = 0;\n attack_intensity[i + 3] = p2;\n }\n }\n if (gfp.analysis) {\n var x = attack_intensity[0];\n for (i = 1; i < 12; i++) {\n if (x < attack_intensity[i])\n x = attack_intensity[i];\n }\n gfc.pinfo.ers[gr_out][chn] = gfc.pinfo.ers_save[chn];\n gfc.pinfo.ers_save[chn] = x;\n }\n attackThreshold = chn == 3 ? gfc.nsPsy.attackthre_s : gfc.nsPsy.attackthre;\n for (i = 0; i < 12; i++) {\n if (ns_attacks[i / 3] == 0 && attack_intensity[i] > attackThreshold) {\n ns_attacks[i / 3] = i % 3 + 1;\n }\n }\n for (i = 1; i < 4; i++) {\n var ratio;\n if (en_short[i - 1] > en_short[i]) {\n assert$9(en_short[i] > 0);\n ratio = en_short[i - 1] / en_short[i];\n } else {\n assert$9(en_short[i - 1] > 0);\n ratio = en_short[i] / en_short[i - 1];\n }\n if (ratio < 1.7) {\n ns_attacks[i] = 0;\n if (i == 1)\n ns_attacks[0] = 0;\n }\n }\n if (ns_attacks[0] != 0 && gfc.nsPsy.lastAttacks[chn] != 0) {\n ns_attacks[0] = 0;\n }\n if (gfc.nsPsy.lastAttacks[chn] == 3 || ns_attacks[0] + ns_attacks[1] + ns_attacks[2] + ns_attacks[3] != 0) {\n ns_uselongblock = 0;\n if (ns_attacks[1] != 0 && ns_attacks[0] != 0)\n ns_attacks[1] = 0;\n if (ns_attacks[2] != 0 && ns_attacks[1] != 0)\n ns_attacks[2] = 0;\n if (ns_attacks[3] != 0 && ns_attacks[2] != 0)\n ns_attacks[3] = 0;\n }\n if (chn < 2) {\n uselongblock[chn] = ns_uselongblock;\n } else {\n if (ns_uselongblock == 0) {\n uselongblock[0] = uselongblock[1] = 0;\n }\n }\n energy[chn] = gfc.tot_ener[chn];\n wsamp_s = wsamp_S;\n wsamp_l = wsamp_L;\n compute_ffts(\n gfp,\n fftenergy,\n fftenergy_s,\n wsamp_l,\n chn & 1,\n wsamp_s,\n chn & 1,\n gr_out,\n chn,\n buffer,\n bufPos\n );\n calc_energy(gfc, fftenergy, eb_l, max, avg);\n calc_mask_index_l(gfc, max, avg, mask_idx_l);\n for (sblock = 0; sblock < 3; sblock++) {\n var enn, thmm;\n compute_masking_s(gfp, fftenergy_s, eb_s, thr, chn, sblock);\n convert_partition2scalefac_s(gfc, eb_s, thr, chn, sblock);\n for (sb = 0; sb < Encoder.SBMAX_s; sb++) {\n thmm = gfc.thm[chn].s[sb][sblock];\n thmm *= NS_PREECHO_ATT0;\n if (ns_attacks[sblock] >= 2 || ns_attacks[sblock + 1] == 1) {\n var idx = sblock != 0 ? sblock - 1 : 2;\n var p2 = NS_INTERP(\n gfc.thm[chn].s[sb][idx],\n thmm,\n NS_PREECHO_ATT1 * pcfact\n );\n thmm = Math.min(thmm, p2);\n }\n if (ns_attacks[sblock] == 1) {\n var idx = sblock != 0 ? sblock - 1 : 2;\n var p2 = NS_INTERP(\n gfc.thm[chn].s[sb][idx],\n thmm,\n NS_PREECHO_ATT2 * pcfact\n );\n thmm = Math.min(thmm, p2);\n } else if (sblock != 0 && ns_attacks[sblock - 1] == 3 || sblock == 0 && gfc.nsPsy.lastAttacks[chn] == 3) {\n var idx = sblock != 2 ? sblock + 1 : 0;\n var p2 = NS_INTERP(\n gfc.thm[chn].s[sb][idx],\n thmm,\n NS_PREECHO_ATT2 * pcfact\n );\n thmm = Math.min(thmm, p2);\n }\n enn = en_subshort[sblock * 3 + 3] + en_subshort[sblock * 3 + 4] + en_subshort[sblock * 3 + 5];\n if (en_subshort[sblock * 3 + 5] * 6 < enn) {\n thmm *= 0.5;\n if (en_subshort[sblock * 3 + 4] * 6 < enn)\n thmm *= 0.5;\n }\n gfc.thm[chn].s[sb][sblock] = thmm;\n }\n }\n gfc.nsPsy.lastAttacks[chn] = ns_attacks[2];\n k = 0;\n {\n for (b = 0; b < gfc.npart_l; b++) {\n var kk = gfc.s3ind[b][0];\n var eb2 = eb_l[kk] * tab[mask_idx_l[kk]];\n var ecb = gfc.s3_ll[k++] * eb2;\n while (++kk <= gfc.s3ind[b][1]) {\n eb2 = eb_l[kk] * tab[mask_idx_l[kk]];\n ecb = mask_add(ecb, gfc.s3_ll[k++] * eb2, kk, kk - b, gfc, 0);\n }\n ecb *= 0.158489319246111;\n if (gfc.blocktype_old[chn & 1] == Encoder.SHORT_TYPE)\n thr[b] = ecb;\n else {\n thr[b] = NS_INTERP(\n Math.min(\n ecb,\n Math.min(rpelev * gfc.nb_1[chn][b], rpelev2 * gfc.nb_2[chn][b])\n ),\n ecb,\n pcfact\n );\n }\n gfc.nb_2[chn][b] = gfc.nb_1[chn][b];\n gfc.nb_1[chn][b] = ecb;\n }\n }\n for (; b <= Encoder.CBANDS; ++b) {\n eb_l[b] = 0;\n thr[b] = 0;\n }\n convert_partition2scalefac_l(gfc, eb_l, thr, chn);\n }\n if (gfp.mode == MPEGMode.STEREO || gfp.mode == MPEGMode.JOINT_STEREO) {\n if (gfp.interChRatio > 0) {\n calc_interchannel_masking(gfp, gfp.interChRatio);\n }\n }\n if (gfp.mode == MPEGMode.JOINT_STEREO) {\n var msfix;\n msfix1(gfc);\n msfix = gfp.msfix;\n if (Math.abs(msfix) > 0) {\n ns_msfix(gfc, msfix, gfp.ATHlower * gfc.ATH.adjust);\n }\n }\n block_type_set(gfp, uselongblock, blocktype_d, blocktype);\n for (chn = 0; chn < numchn; chn++) {\n var ppe;\n var ppePos = 0;\n var type;\n var mr;\n if (chn > 1) {\n ppe = percep_MS_entropy;\n ppePos = -2;\n type = Encoder.NORM_TYPE;\n if (blocktype_d[0] == Encoder.SHORT_TYPE || blocktype_d[1] == Encoder.SHORT_TYPE) {\n type = Encoder.SHORT_TYPE;\n }\n mr = masking_MS_ratio[gr_out][chn - 2];\n } else {\n ppe = percep_entropy;\n ppePos = 0;\n type = blocktype_d[chn];\n mr = masking_ratio[gr_out][chn];\n }\n if (type == Encoder.SHORT_TYPE) {\n ppe[ppePos + chn] = pecalc_s(mr, gfc.masking_lower);\n } else\n ppe[ppePos + chn] = pecalc_l(mr, gfc.masking_lower);\n if (gfp.analysis)\n gfc.pinfo.pe[gr_out][chn] = ppe[ppePos + chn];\n }\n return 0;\n };\n function vbrpsy_compute_fft_l(gfp, buffer, bufPos, chn, gr_out, fftenergy, wsamp_l, wsamp_lPos) {\n var gfc = gfp.internal_flags;\n if (chn < 2) {\n fft.fft_long(gfc, wsamp_l[wsamp_lPos], chn, buffer, bufPos);\n } else if (chn == 2) {\n for (var j = Encoder.BLKSIZE - 1; j >= 0; --j) {\n var l = wsamp_l[wsamp_lPos + 0][j];\n var r = wsamp_l[wsamp_lPos + 1][j];\n wsamp_l[wsamp_lPos + 0][j] = (l + r) * Util$2.SQRT2 * 0.5;\n wsamp_l[wsamp_lPos + 1][j] = (l - r) * Util$2.SQRT2 * 0.5;\n }\n }\n fftenergy[0] = NON_LINEAR_SCALE_ENERGY(wsamp_l[wsamp_lPos + 0][0]);\n fftenergy[0] *= fftenergy[0];\n for (var j = Encoder.BLKSIZE / 2 - 1; j >= 0; --j) {\n var re = wsamp_l[wsamp_lPos + 0][Encoder.BLKSIZE / 2 - j];\n var im = wsamp_l[wsamp_lPos + 0][Encoder.BLKSIZE / 2 + j];\n fftenergy[Encoder.BLKSIZE / 2 - j] = NON_LINEAR_SCALE_ENERGY(\n (re * re + im * im) * 0.5\n );\n }\n {\n var totalenergy = 0;\n for (var j = 11; j < Encoder.HBLKSIZE; j++)\n totalenergy += fftenergy[j];\n gfc.tot_ener[chn] = totalenergy;\n }\n if (gfp.analysis) {\n for (var j = 0; j < Encoder.HBLKSIZE; j++) {\n gfc.pinfo.energy[gr_out][chn][j] = gfc.pinfo.energy_save[chn][j];\n gfc.pinfo.energy_save[chn][j] = fftenergy[j];\n }\n gfc.pinfo.pe[gr_out][chn] = gfc.pe[chn];\n }\n }\n function vbrpsy_compute_fft_s(gfp, buffer, bufPos, chn, sblock, fftenergy_s, wsamp_s, wsamp_sPos) {\n var gfc = gfp.internal_flags;\n if (sblock == 0 && chn < 2) {\n fft.fft_short(gfc, wsamp_s[wsamp_sPos], chn, buffer, bufPos);\n }\n if (chn == 2) {\n for (var j = Encoder.BLKSIZE_s - 1; j >= 0; --j) {\n var l = wsamp_s[wsamp_sPos + 0][sblock][j];\n var r = wsamp_s[wsamp_sPos + 1][sblock][j];\n wsamp_s[wsamp_sPos + 0][sblock][j] = (l + r) * Util$2.SQRT2 * 0.5;\n wsamp_s[wsamp_sPos + 1][sblock][j] = (l - r) * Util$2.SQRT2 * 0.5;\n }\n }\n fftenergy_s[sblock][0] = wsamp_s[wsamp_sPos + 0][sblock][0];\n fftenergy_s[sblock][0] *= fftenergy_s[sblock][0];\n for (var j = Encoder.BLKSIZE_s / 2 - 1; j >= 0; --j) {\n var re = wsamp_s[wsamp_sPos + 0][sblock][Encoder.BLKSIZE_s / 2 - j];\n var im = wsamp_s[wsamp_sPos + 0][sblock][Encoder.BLKSIZE_s / 2 + j];\n fftenergy_s[sblock][Encoder.BLKSIZE_s / 2 - j] = NON_LINEAR_SCALE_ENERGY(\n (re * re + im * im) * 0.5\n );\n }\n }\n function vbrpsy_compute_loudness_approximation_l(gfp, gr_out, chn, fftenergy) {\n var gfc = gfp.internal_flags;\n if (gfp.athaa_loudapprox == 2 && chn < 2) {\n gfc.loudness_sq[gr_out][chn] = gfc.loudness_sq_save[chn];\n gfc.loudness_sq_save[chn] = psycho_loudness_approx(fftenergy, gfc);\n }\n }\n var fircoef_ = [\n -865163e-23 * 2,\n -851586e-8 * 2,\n -674764e-23 * 2,\n 0.0209036 * 2,\n -336639e-22 * 2,\n -0.0438162 * 2,\n -154175e-22 * 2,\n 0.0931738 * 2,\n -552212e-22 * 2,\n -0.313819 * 2\n ];\n function vbrpsy_attack_detection(gfp, buffer, bufPos, gr_out, masking_ratio, masking_MS_ratio, energy, sub_short_factor, ns_attacks, uselongblock) {\n var ns_hpfsmpl = new_float_n$3([2, 576]);\n var gfc = gfp.internal_flags;\n var n_chn_out = gfc.channels_out;\n var n_chn_psy = gfp.mode == MPEGMode.JOINT_STEREO ? 4 : n_chn_out;\n for (var chn = 0; chn < n_chn_out; chn++) {\n firbuf = buffer[chn];\n var firbufPos = bufPos + 576 - 350 - NSFIRLEN + 192;\n for (var i = 0; i < 576; i++) {\n var sum1, sum2;\n sum1 = firbuf[firbufPos + i + 10];\n sum2 = 0;\n for (var j = 0; j < (NSFIRLEN - 1) / 2 - 1; j += 2) {\n sum1 += fircoef_[j] * (firbuf[firbufPos + i + j] + firbuf[firbufPos + i + NSFIRLEN - j]);\n sum2 += fircoef_[j + 1] * (firbuf[firbufPos + i + j + 1] + firbuf[firbufPos + i + NSFIRLEN - j - 1]);\n }\n ns_hpfsmpl[chn][i] = sum1 + sum2;\n }\n masking_ratio[gr_out][chn].en.assign(gfc.en[chn]);\n masking_ratio[gr_out][chn].thm.assign(gfc.thm[chn]);\n if (n_chn_psy > 2) {\n masking_MS_ratio[gr_out][chn].en.assign(gfc.en[chn + 2]);\n masking_MS_ratio[gr_out][chn].thm.assign(gfc.thm[chn + 2]);\n }\n }\n for (var chn = 0; chn < n_chn_psy; chn++) {\n var attack_intensity = new_float$a(12);\n var en_subshort = new_float$a(12);\n var en_short = [0, 0, 0, 0];\n var pf = ns_hpfsmpl[chn & 1];\n var pfPos = 0;\n var attackThreshold = chn == 3 ? gfc.nsPsy.attackthre_s : gfc.nsPsy.attackthre;\n var ns_uselongblock = 1;\n if (chn == 2) {\n for (var i = 0, j = 576; j > 0; ++i, --j) {\n var l = ns_hpfsmpl[0][i];\n var r = ns_hpfsmpl[1][i];\n ns_hpfsmpl[0][i] = l + r;\n ns_hpfsmpl[1][i] = l - r;\n }\n }\n for (var i = 0; i < 3; i++) {\n en_subshort[i] = gfc.nsPsy.last_en_subshort[chn][i + 6];\n assert$9(gfc.nsPsy.last_en_subshort[chn][i + 4] > 0);\n attack_intensity[i] = en_subshort[i] / gfc.nsPsy.last_en_subshort[chn][i + 4];\n en_short[0] += en_subshort[i];\n }\n for (var i = 0; i < 9; i++) {\n var pfe = pfPos + 576 / 9;\n var p2 = 1;\n for (; pfPos < pfe; pfPos++) {\n if (p2 < Math.abs(pf[pfPos]))\n p2 = Math.abs(pf[pfPos]);\n }\n gfc.nsPsy.last_en_subshort[chn][i] = en_subshort[i + 3] = p2;\n en_short[1 + i / 3] += p2;\n if (p2 > en_subshort[i + 3 - 2]) {\n assert$9(en_subshort[i + 3 - 2] > 0);\n p2 = p2 / en_subshort[i + 3 - 2];\n } else if (en_subshort[i + 3 - 2] > p2 * 10) {\n p2 = en_subshort[i + 3 - 2] / (p2 * 10);\n } else {\n p2 = 0;\n }\n attack_intensity[i + 3] = p2;\n }\n for (var i = 0; i < 3; ++i) {\n var enn = en_subshort[i * 3 + 3] + en_subshort[i * 3 + 4] + en_subshort[i * 3 + 5];\n var factor = 1;\n if (en_subshort[i * 3 + 5] * 6 < enn) {\n factor *= 0.5;\n if (en_subshort[i * 3 + 4] * 6 < enn) {\n factor *= 0.5;\n }\n }\n sub_short_factor[chn][i] = factor;\n }\n if (gfp.analysis) {\n var x = attack_intensity[0];\n for (var i = 1; i < 12; i++) {\n if (x < attack_intensity[i]) {\n x = attack_intensity[i];\n }\n }\n gfc.pinfo.ers[gr_out][chn] = gfc.pinfo.ers_save[chn];\n gfc.pinfo.ers_save[chn] = x;\n }\n for (var i = 0; i < 12; i++) {\n if (ns_attacks[chn][i / 3] == 0 && attack_intensity[i] > attackThreshold) {\n ns_attacks[chn][i / 3] = i % 3 + 1;\n }\n }\n for (var i = 1; i < 4; i++) {\n var u = en_short[i - 1];\n var v = en_short[i];\n var m = Math.max(u, v);\n if (m < 4e4) {\n if (u < 1.7 * v && v < 1.7 * u) {\n if (i == 1 && ns_attacks[chn][0] <= ns_attacks[chn][i]) {\n ns_attacks[chn][0] = 0;\n }\n ns_attacks[chn][i] = 0;\n }\n }\n }\n if (ns_attacks[chn][0] <= gfc.nsPsy.lastAttacks[chn]) {\n ns_attacks[chn][0] = 0;\n }\n if (gfc.nsPsy.lastAttacks[chn] == 3 || ns_attacks[chn][0] + ns_attacks[chn][1] + ns_attacks[chn][2] + ns_attacks[chn][3] != 0) {\n ns_uselongblock = 0;\n if (ns_attacks[chn][1] != 0 && ns_attacks[chn][0] != 0) {\n ns_attacks[chn][1] = 0;\n }\n if (ns_attacks[chn][2] != 0 && ns_attacks[chn][1] != 0) {\n ns_attacks[chn][2] = 0;\n }\n if (ns_attacks[chn][3] != 0 && ns_attacks[chn][2] != 0) {\n ns_attacks[chn][3] = 0;\n }\n }\n if (chn < 2) {\n uselongblock[chn] = ns_uselongblock;\n } else {\n if (ns_uselongblock == 0) {\n uselongblock[0] = uselongblock[1] = 0;\n }\n }\n energy[chn] = gfc.tot_ener[chn];\n }\n }\n function vbrpsy_skip_masking_s(gfc, chn, sblock) {\n if (sblock == 0) {\n for (var b = 0; b < gfc.npart_s; b++) {\n gfc.nb_s2[chn][b] = gfc.nb_s1[chn][b];\n gfc.nb_s1[chn][b] = 0;\n }\n }\n }\n function vbrpsy_skip_masking_l(gfc, chn) {\n for (var b = 0; b < gfc.npart_l; b++) {\n gfc.nb_2[chn][b] = gfc.nb_1[chn][b];\n gfc.nb_1[chn][b] = 0;\n }\n }\n function psyvbr_calc_mask_index_s(gfc, max, avg, mask_idx) {\n var last_tab_entry = tab.length - 1;\n var b = 0;\n var a = avg[b] + avg[b + 1];\n if (a > 0) {\n var m = max[b];\n if (m < max[b + 1])\n m = max[b + 1];\n assert$9(gfc.numlines_s[b] + gfc.numlines_s[b + 1] - 1 > 0);\n a = 20 * (m * 2 - a) / (a * (gfc.numlines_s[b] + gfc.numlines_s[b + 1] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n for (b = 1; b < gfc.npart_s - 1; b++) {\n a = avg[b - 1] + avg[b] + avg[b + 1];\n assert$9(b + 1 < gfc.npart_s);\n if (a > 0) {\n var m = max[b - 1];\n if (m < max[b])\n m = max[b];\n if (m < max[b + 1])\n m = max[b + 1];\n assert$9(\n gfc.numlines_s[b - 1] + gfc.numlines_s[b] + gfc.numlines_s[b + 1] - 1 > 0\n );\n a = 20 * (m * 3 - a) / (a * (gfc.numlines_s[b - 1] + gfc.numlines_s[b] + gfc.numlines_s[b + 1] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n }\n assert$9(b == gfc.npart_s - 1);\n a = avg[b - 1] + avg[b];\n if (a > 0) {\n var m = max[b - 1];\n if (m < max[b])\n m = max[b];\n assert$9(gfc.numlines_s[b - 1] + gfc.numlines_s[b] - 1 > 0);\n a = 20 * (m * 2 - a) / (a * (gfc.numlines_s[b - 1] + gfc.numlines_s[b] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n assert$9(b == gfc.npart_s - 1);\n }\n function vbrpsy_compute_masking_s(gfp, fftenergy_s, eb, thr, chn, sblock) {\n var gfc = gfp.internal_flags;\n var max = new float[Encoder.CBANDS]();\n var avg = new_float$a(Encoder.CBANDS);\n var i, j, b;\n var mask_idx_s = new int[Encoder.CBANDS]();\n for (b = j = 0; b < gfc.npart_s; ++b) {\n var ebb = 0;\n var m = 0;\n var n = gfc.numlines_s[b];\n for (i = 0; i < n; ++i, ++j) {\n var el = fftenergy_s[sblock][j];\n ebb += el;\n if (m < el)\n m = el;\n }\n eb[b] = ebb;\n max[b] = m;\n avg[b] = ebb / n;\n assert$9(avg[b] >= 0);\n }\n assert$9(b == gfc.npart_s);\n for (; b < Encoder.CBANDS; ++b) {\n max[b] = 0;\n avg[b] = 0;\n }\n psyvbr_calc_mask_index_s(gfc, max, avg, mask_idx_s);\n for (j = b = 0; b < gfc.npart_s; b++) {\n var kk = gfc.s3ind_s[b][0];\n var last = gfc.s3ind_s[b][1];\n var dd, dd_n;\n var x, ecb, avg_mask;\n dd = mask_idx_s[kk];\n dd_n = 1;\n ecb = gfc.s3_ss[j] * eb[kk] * tab[mask_idx_s[kk]];\n ++j;\n ++kk;\n while (kk <= last) {\n dd += mask_idx_s[kk];\n dd_n += 1;\n x = gfc.s3_ss[j] * eb[kk] * tab[mask_idx_s[kk]];\n ecb = vbrpsy_mask_add(ecb, x, kk - b);\n ++j;\n ++kk;\n }\n dd = (1 + 2 * dd) / (2 * dd_n);\n avg_mask = tab[dd] * 0.5;\n ecb *= avg_mask;\n thr[b] = ecb;\n gfc.nb_s2[chn][b] = gfc.nb_s1[chn][b];\n gfc.nb_s1[chn][b] = ecb;\n {\n x = max[b];\n x *= gfc.minval_s[b];\n x *= avg_mask;\n if (thr[b] > x) {\n thr[b] = x;\n }\n }\n if (gfc.masking_lower > 1) {\n thr[b] *= gfc.masking_lower;\n }\n if (thr[b] > eb[b]) {\n thr[b] = eb[b];\n }\n if (gfc.masking_lower < 1) {\n thr[b] *= gfc.masking_lower;\n }\n assert$9(thr[b] >= 0);\n }\n for (; b < Encoder.CBANDS; ++b) {\n eb[b] = 0;\n thr[b] = 0;\n }\n }\n function vbrpsy_compute_masking_l(gfc, fftenergy, eb_l, thr, chn) {\n var max = new_float$a(Encoder.CBANDS);\n var avg = new_float$a(Encoder.CBANDS);\n var mask_idx_l = new_int$b(Encoder.CBANDS + 2);\n var b;\n calc_energy(gfc, fftenergy, eb_l, max, avg);\n calc_mask_index_l(gfc, max, avg, mask_idx_l);\n var k = 0;\n for (b = 0; b < gfc.npart_l; b++) {\n var x, ecb, avg_mask, t;\n var kk = gfc.s3ind[b][0];\n var last = gfc.s3ind[b][1];\n var dd = 0;\n var dd_n = 0;\n dd = mask_idx_l[kk];\n dd_n += 1;\n ecb = gfc.s3_ll[k] * eb_l[kk] * tab[mask_idx_l[kk]];\n ++k;\n ++kk;\n while (kk <= last) {\n dd += mask_idx_l[kk];\n dd_n += 1;\n x = gfc.s3_ll[k] * eb_l[kk] * tab[mask_idx_l[kk]];\n t = vbrpsy_mask_add(ecb, x, kk - b);\n ecb = t;\n ++k;\n ++kk;\n }\n dd = (1 + 2 * dd) / (2 * dd_n);\n avg_mask = tab[dd] * 0.5;\n ecb *= avg_mask;\n if (gfc.blocktype_old[chn & 1] == Encoder.SHORT_TYPE) {\n var ecb_limit = rpelev * gfc.nb_1[chn][b];\n if (ecb_limit > 0) {\n thr[b] = Math.min(ecb, ecb_limit);\n } else {\n thr[b] = Math.min(ecb, eb_l[b] * NS_PREECHO_ATT2);\n }\n } else {\n var ecb_limit_2 = rpelev2 * gfc.nb_2[chn][b];\n var ecb_limit_1 = rpelev * gfc.nb_1[chn][b];\n var ecb_limit;\n if (ecb_limit_2 <= 0) {\n ecb_limit_2 = ecb;\n }\n if (ecb_limit_1 <= 0) {\n ecb_limit_1 = ecb;\n }\n if (gfc.blocktype_old[chn & 1] == Encoder.NORM_TYPE) {\n ecb_limit = Math.min(ecb_limit_1, ecb_limit_2);\n } else {\n ecb_limit = ecb_limit_1;\n }\n thr[b] = Math.min(ecb, ecb_limit);\n }\n gfc.nb_2[chn][b] = gfc.nb_1[chn][b];\n gfc.nb_1[chn][b] = ecb;\n {\n x = max[b];\n x *= gfc.minval_l[b];\n x *= avg_mask;\n if (thr[b] > x) {\n thr[b] = x;\n }\n }\n if (gfc.masking_lower > 1) {\n thr[b] *= gfc.masking_lower;\n }\n if (thr[b] > eb_l[b]) {\n thr[b] = eb_l[b];\n }\n if (gfc.masking_lower < 1) {\n thr[b] *= gfc.masking_lower;\n }\n assert$9(thr[b] >= 0);\n }\n for (; b < Encoder.CBANDS; ++b) {\n eb_l[b] = 0;\n thr[b] = 0;\n }\n }\n function vbrpsy_compute_block_type(gfp, uselongblock) {\n var gfc = gfp.internal_flags;\n if (gfp.short_blocks == ShortBlock$2.short_block_coupled && !(uselongblock[0] != 0 && uselongblock[1] != 0)) {\n uselongblock[0] = uselongblock[1] = 0;\n }\n for (var chn = 0; chn < gfc.channels_out; chn++) {\n if (gfp.short_blocks == ShortBlock$2.short_block_dispensed) {\n uselongblock[chn] = 1;\n }\n if (gfp.short_blocks == ShortBlock$2.short_block_forced) {\n uselongblock[chn] = 0;\n }\n }\n }\n function vbrpsy_apply_block_type(gfp, uselongblock, blocktype_d) {\n var gfc = gfp.internal_flags;\n for (var chn = 0; chn < gfc.channels_out; chn++) {\n var blocktype = Encoder.NORM_TYPE;\n if (uselongblock[chn] != 0) {\n assert$9(gfc.blocktype_old[chn] != Encoder.START_TYPE);\n if (gfc.blocktype_old[chn] == Encoder.SHORT_TYPE) {\n blocktype = Encoder.STOP_TYPE;\n }\n } else {\n blocktype = Encoder.SHORT_TYPE;\n if (gfc.blocktype_old[chn] == Encoder.NORM_TYPE) {\n gfc.blocktype_old[chn] = Encoder.START_TYPE;\n }\n if (gfc.blocktype_old[chn] == Encoder.STOP_TYPE) {\n gfc.blocktype_old[chn] = Encoder.SHORT_TYPE;\n }\n }\n blocktype_d[chn] = gfc.blocktype_old[chn];\n gfc.blocktype_old[chn] = blocktype;\n }\n }\n function vbrpsy_compute_MS_thresholds(eb, thr, cb_mld, ath_cb, athadjust, msfix, n) {\n var msfix2 = msfix * 2;\n var athlower = msfix > 0 ? Math.pow(10, athadjust) : 1;\n var rside, rmid;\n for (var b = 0; b < n; ++b) {\n var ebM = eb[2][b];\n var ebS = eb[3][b];\n var thmL = thr[0][b];\n var thmR = thr[1][b];\n var thmM = thr[2][b];\n var thmS = thr[3][b];\n if (thmL <= 1.58 * thmR && thmR <= 1.58 * thmL) {\n var mld_m = cb_mld[b] * ebS;\n var mld_s = cb_mld[b] * ebM;\n rmid = Math.max(thmM, Math.min(thmS, mld_m));\n rside = Math.max(thmS, Math.min(thmM, mld_s));\n } else {\n rmid = thmM;\n rside = thmS;\n }\n if (msfix > 0) {\n var thmLR, thmMS;\n var ath = ath_cb[b] * athlower;\n thmLR = Math.min(Math.max(thmL, ath), Math.max(thmR, ath));\n thmM = Math.max(rmid, ath);\n thmS = Math.max(rside, ath);\n thmMS = thmM + thmS;\n if (thmMS > 0 && thmLR * msfix2 < thmMS) {\n var f = thmLR * msfix2 / thmMS;\n thmM *= f;\n thmS *= f;\n }\n rmid = Math.min(thmM, rmid);\n rside = Math.min(thmS, rside);\n }\n if (rmid > ebM) {\n rmid = ebM;\n }\n if (rside > ebS) {\n rside = ebS;\n }\n thr[2][b] = rmid;\n thr[3][b] = rside;\n }\n }\n this.L3psycho_anal_vbr = function(gfp, buffer, bufPos, gr_out, masking_ratio, masking_MS_ratio, percep_entropy, percep_MS_entropy, energy, blocktype_d) {\n var gfc = gfp.internal_flags;\n var wsamp_l;\n var wsamp_s;\n var fftenergy = new_float$a(Encoder.HBLKSIZE);\n var fftenergy_s = new_float_n$3([3, Encoder.HBLKSIZE_s]);\n var wsamp_L = new_float_n$3([2, Encoder.BLKSIZE]);\n var wsamp_S = new_float_n$3([2, 3, Encoder.BLKSIZE_s]);\n var eb = new_float_n$3([4, Encoder.CBANDS]);\n var thr = new_float_n$3([4, Encoder.CBANDS]);\n var sub_short_factor = new_float_n$3([4, 3]);\n var pcfact = 0.6;\n var ns_attacks = [\n [0, 0, 0, 0],\n [0, 0, 0, 0],\n [0, 0, 0, 0],\n [0, 0, 0, 0]\n ];\n var uselongblock = new_int$b(2);\n var n_chn_psy = gfp.mode == MPEGMode.JOINT_STEREO ? 4 : gfc.channels_out;\n vbrpsy_attack_detection(\n gfp,\n buffer,\n bufPos,\n gr_out,\n masking_ratio,\n masking_MS_ratio,\n energy,\n sub_short_factor,\n ns_attacks,\n uselongblock\n );\n vbrpsy_compute_block_type(gfp, uselongblock);\n {\n for (var chn = 0; chn < n_chn_psy; chn++) {\n var ch01 = chn & 1;\n wsamp_l = wsamp_L;\n vbrpsy_compute_fft_l(\n gfp,\n buffer,\n bufPos,\n chn,\n gr_out,\n fftenergy,\n wsamp_l,\n ch01\n );\n vbrpsy_compute_loudness_approximation_l(gfp, gr_out, chn, fftenergy);\n if (uselongblock[ch01] != 0) {\n vbrpsy_compute_masking_l(gfc, fftenergy, eb[chn], thr[chn], chn);\n } else {\n vbrpsy_skip_masking_l(gfc, chn);\n }\n }\n if (uselongblock[0] + uselongblock[1] == 2) {\n if (gfp.mode == MPEGMode.JOINT_STEREO) {\n vbrpsy_compute_MS_thresholds(\n eb,\n thr,\n gfc.mld_cb_l,\n gfc.ATH.cb_l,\n gfp.ATHlower * gfc.ATH.adjust,\n gfp.msfix,\n gfc.npart_l\n );\n }\n }\n for (var chn = 0; chn < n_chn_psy; chn++) {\n var ch01 = chn & 1;\n if (uselongblock[ch01] != 0) {\n convert_partition2scalefac_l(gfc, eb[chn], thr[chn], chn);\n }\n }\n }\n {\n for (var sblock = 0; sblock < 3; sblock++) {\n for (var chn = 0; chn < n_chn_psy; ++chn) {\n var ch01 = chn & 1;\n if (uselongblock[ch01] != 0) {\n vbrpsy_skip_masking_s(gfc, chn, sblock);\n } else {\n wsamp_s = wsamp_S;\n vbrpsy_compute_fft_s(\n gfp,\n buffer,\n bufPos,\n chn,\n sblock,\n fftenergy_s,\n wsamp_s,\n ch01\n );\n vbrpsy_compute_masking_s(\n gfp,\n fftenergy_s,\n eb[chn],\n thr[chn],\n chn,\n sblock\n );\n }\n }\n if (uselongblock[0] + uselongblock[1] == 0) {\n if (gfp.mode == MPEGMode.JOINT_STEREO) {\n vbrpsy_compute_MS_thresholds(\n eb,\n thr,\n gfc.mld_cb_s,\n gfc.ATH.cb_s,\n gfp.ATHlower * gfc.ATH.adjust,\n gfp.msfix,\n gfc.npart_s\n );\n }\n }\n for (var chn = 0; chn < n_chn_psy; ++chn) {\n var ch01 = chn & 1;\n if (uselongblock[ch01] == 0) {\n convert_partition2scalefac_s(gfc, eb[chn], thr[chn], chn, sblock);\n }\n }\n }\n for (var chn = 0; chn < n_chn_psy; chn++) {\n var ch01 = chn & 1;\n if (uselongblock[ch01] != 0) {\n continue;\n }\n for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n var new_thmm = new_float$a(3);\n for (var sblock = 0; sblock < 3; sblock++) {\n var thmm = gfc.thm[chn].s[sb][sblock];\n thmm *= NS_PREECHO_ATT0;\n if (ns_attacks[chn][sblock] >= 2 || ns_attacks[chn][sblock + 1] == 1) {\n var idx = sblock != 0 ? sblock - 1 : 2;\n var p2 = NS_INTERP(\n gfc.thm[chn].s[sb][idx],\n thmm,\n NS_PREECHO_ATT1 * pcfact\n );\n thmm = Math.min(thmm, p2);\n } else if (ns_attacks[chn][sblock] == 1) {\n var idx = sblock != 0 ? sblock - 1 : 2;\n var p2 = NS_INTERP(\n gfc.thm[chn].s[sb][idx],\n thmm,\n NS_PREECHO_ATT2 * pcfact\n );\n thmm = Math.min(thmm, p2);\n } else if (sblock != 0 && ns_attacks[chn][sblock - 1] == 3 || sblock == 0 && gfc.nsPsy.lastAttacks[chn] == 3) {\n var idx = sblock != 2 ? sblock + 1 : 0;\n var p2 = NS_INTERP(\n gfc.thm[chn].s[sb][idx],\n thmm,\n NS_PREECHO_ATT2 * pcfact\n );\n thmm = Math.min(thmm, p2);\n }\n thmm *= sub_short_factor[chn][sblock];\n new_thmm[sblock] = thmm;\n }\n for (var sblock = 0; sblock < 3; sblock++) {\n gfc.thm[chn].s[sb][sblock] = new_thmm[sblock];\n }\n }\n }\n }\n for (var chn = 0; chn < n_chn_psy; chn++) {\n gfc.nsPsy.lastAttacks[chn] = ns_attacks[chn][2];\n }\n vbrpsy_apply_block_type(gfp, uselongblock, blocktype_d);\n for (var chn = 0; chn < n_chn_psy; chn++) {\n var ppe;\n var ppePos;\n var type;\n var mr;\n if (chn > 1) {\n ppe = percep_MS_entropy;\n ppePos = -2;\n type = Encoder.NORM_TYPE;\n if (blocktype_d[0] == Encoder.SHORT_TYPE || blocktype_d[1] == Encoder.SHORT_TYPE) {\n type = Encoder.SHORT_TYPE;\n }\n mr = masking_MS_ratio[gr_out][chn - 2];\n } else {\n ppe = percep_entropy;\n ppePos = 0;\n type = blocktype_d[chn];\n mr = masking_ratio[gr_out][chn];\n }\n if (type == Encoder.SHORT_TYPE) {\n ppe[ppePos + chn] = pecalc_s(mr, gfc.masking_lower);\n } else {\n ppe[ppePos + chn] = pecalc_l(mr, gfc.masking_lower);\n }\n if (gfp.analysis) {\n gfc.pinfo.pe[gr_out][chn] = ppe[ppePos + chn];\n }\n }\n return 0;\n };\n function s3_func_x(bark, hf_slope) {\n var tempx = bark;\n var tempy;\n if (tempx >= 0) {\n tempy = -tempx * 27;\n } else {\n tempy = tempx * hf_slope;\n }\n if (tempy <= -72) {\n return 0;\n }\n return Math.exp(tempy * LN_TO_LOG10);\n }\n function norm_s3_func_x(hf_slope) {\n var lim_a = 0;\n var lim_b = 0;\n {\n var x = 0;\n var l;\n var h2;\n for (x = 0; s3_func_x(x, hf_slope) > 1e-20; x -= 1)\n ;\n l = x;\n h2 = 0;\n while (Math.abs(h2 - l) > 1e-12) {\n x = (h2 + l) / 2;\n if (s3_func_x(x, hf_slope) > 0) {\n h2 = x;\n } else {\n l = x;\n }\n }\n lim_a = l;\n }\n {\n var x = 0;\n var l;\n var h2;\n for (x = 0; s3_func_x(x, hf_slope) > 1e-20; x += 1)\n ;\n l = 0;\n h2 = x;\n while (Math.abs(h2 - l) > 1e-12) {\n x = (h2 + l) / 2;\n if (s3_func_x(x, hf_slope) > 0) {\n l = x;\n } else {\n h2 = x;\n }\n }\n lim_b = h2;\n }\n {\n var sum = 0;\n var m = 1e3;\n var i;\n for (i = 0; i <= m; ++i) {\n var x = lim_a + i * (lim_b - lim_a) / m;\n var y = s3_func_x(x, hf_slope);\n sum += y;\n }\n {\n var norm = (m + 1) / (sum * (lim_b - lim_a));\n return norm;\n }\n }\n }\n function s3_func(bark) {\n var tempx, x, tempy, temp;\n tempx = bark;\n if (tempx >= 0)\n tempx *= 3;\n else\n tempx *= 1.5;\n if (tempx >= 0.5 && tempx <= 2.5) {\n temp = tempx - 0.5;\n x = 8 * (temp * temp - 2 * temp);\n } else\n x = 0;\n tempx += 0.474;\n tempy = 15.811389 + 7.5 * tempx - 17.5 * Math.sqrt(1 + tempx * tempx);\n if (tempy <= -60)\n return 0;\n tempx = Math.exp((x + tempy) * LN_TO_LOG10);\n tempx /= 0.6609193;\n return tempx;\n }\n function freq2bark(freq) {\n if (freq < 0)\n freq = 0;\n freq = freq * 1e-3;\n return 13 * Math.atan(0.76 * freq) + 3.5 * Math.atan(freq * freq / (7.5 * 7.5));\n }\n function init_numline(numlines, bo, bm, bval, bval_width, mld, bo_w, sfreq, blksize, scalepos, deltafreq, sbmax) {\n var b_frq = new_float$a(Encoder.CBANDS + 1);\n var sample_freq_frac = sfreq / (sbmax > 15 ? 2 * 576 : 2 * 192);\n var partition = new_int$b(Encoder.HBLKSIZE);\n var i;\n sfreq /= blksize;\n var j = 0;\n var ni = 0;\n for (i = 0; i < Encoder.CBANDS; i++) {\n var bark1;\n var j2;\n bark1 = freq2bark(sfreq * j);\n b_frq[i] = sfreq * j;\n for (j2 = j; freq2bark(sfreq * j2) - bark1 < DELBARK && j2 <= blksize / 2; j2++)\n ;\n numlines[i] = j2 - j;\n ni = i + 1;\n while (j < j2) {\n partition[j++] = i;\n }\n if (j > blksize / 2) {\n j = blksize / 2;\n ++i;\n break;\n }\n }\n b_frq[i] = sfreq * j;\n for (var sfb = 0; sfb < sbmax; sfb++) {\n var i1, i2, start, end;\n var arg;\n start = scalepos[sfb];\n end = scalepos[sfb + 1];\n i1 = 0 | Math.floor(0.5 + deltafreq * (start - 0.5));\n if (i1 < 0)\n i1 = 0;\n i2 = 0 | Math.floor(0.5 + deltafreq * (end - 0.5));\n if (i2 > blksize / 2)\n i2 = blksize / 2;\n bm[sfb] = (partition[i1] + partition[i2]) / 2;\n bo[sfb] = partition[i2];\n var f_tmp = sample_freq_frac * end;\n bo_w[sfb] = (f_tmp - b_frq[bo[sfb]]) / (b_frq[bo[sfb] + 1] - b_frq[bo[sfb]]);\n if (bo_w[sfb] < 0) {\n bo_w[sfb] = 0;\n } else {\n if (bo_w[sfb] > 1) {\n bo_w[sfb] = 1;\n }\n }\n arg = freq2bark(sfreq * scalepos[sfb] * deltafreq);\n arg = Math.min(arg, 15.5) / 15.5;\n mld[sfb] = Math.pow(10, 1.25 * (1 - Math.cos(Math.PI * arg)) - 2.5);\n }\n j = 0;\n for (var k = 0; k < ni; k++) {\n var w = numlines[k];\n var bark1, bark2;\n bark1 = freq2bark(sfreq * j);\n bark2 = freq2bark(sfreq * (j + w - 1));\n bval[k] = 0.5 * (bark1 + bark2);\n bark1 = freq2bark(sfreq * (j - 0.5));\n bark2 = freq2bark(sfreq * (j + w - 0.5));\n bval_width[k] = bark2 - bark1;\n j += w;\n }\n return ni;\n }\n function init_s3_values(s3ind, npart, bval, bval_width, norm, use_old_s3) {\n var s3 = new_float_n$3([Encoder.CBANDS, Encoder.CBANDS]);\n var j;\n var numberOfNoneZero = 0;\n if (use_old_s3) {\n for (var i = 0; i < npart; i++) {\n for (j = 0; j < npart; j++) {\n var v = s3_func(bval[i] - bval[j]) * bval_width[j];\n s3[i][j] = v * norm[i];\n }\n }\n } else {\n for (j = 0; j < npart; j++) {\n var hf_slope = 15 + Math.min(21 / bval[j], 12);\n var s3_x_norm = norm_s3_func_x(hf_slope);\n for (var i = 0; i < npart; i++) {\n var v = s3_x_norm * s3_func_x(bval[i] - bval[j], hf_slope) * bval_width[j];\n s3[i][j] = v * norm[i];\n }\n }\n }\n for (var i = 0; i < npart; i++) {\n for (j = 0; j < npart; j++) {\n if (s3[i][j] > 0)\n break;\n }\n s3ind[i][0] = j;\n for (j = npart - 1; j > 0; j--) {\n if (s3[i][j] > 0)\n break;\n }\n s3ind[i][1] = j;\n numberOfNoneZero += s3ind[i][1] - s3ind[i][0] + 1;\n }\n var p2 = new_float$a(numberOfNoneZero);\n var k = 0;\n for (var i = 0; i < npart; i++) {\n for (j = s3ind[i][0]; j <= s3ind[i][1]; j++)\n p2[k++] = s3[i][j];\n }\n return p2;\n }\n function stereo_demask(f) {\n var arg = freq2bark(f);\n arg = Math.min(arg, 15.5) / 15.5;\n return Math.pow(10, 1.25 * (1 - Math.cos(Math.PI * arg)) - 2.5);\n }\n this.psymodel_init = function(gfp) {\n var gfc = gfp.internal_flags;\n var i;\n var useOldS3 = true;\n var bvl_a = 13;\n var bvl_b = 24;\n var snr_l_a = 0;\n var snr_l_b = 0;\n var snr_s_a = -8.25;\n var snr_s_b = -4.5;\n var bval = new_float$a(Encoder.CBANDS);\n var bval_width = new_float$a(Encoder.CBANDS);\n var norm = new_float$a(Encoder.CBANDS);\n var sfreq = gfp.out_samplerate;\n switch (gfp.experimentalZ) {\n default:\n case 0:\n useOldS3 = true;\n break;\n case 1:\n useOldS3 = !(gfp.VBR == VbrMode$5.vbr_mtrh || gfp.VBR == VbrMode$5.vbr_mt);\n break;\n case 2:\n useOldS3 = false;\n break;\n case 3:\n bvl_a = 8;\n snr_l_a = -1.75;\n snr_l_b = -0.0125;\n snr_s_a = -8.25;\n snr_s_b = -2.25;\n break;\n }\n gfc.ms_ener_ratio_old = 0.25;\n gfc.blocktype_old[0] = gfc.blocktype_old[1] = Encoder.NORM_TYPE;\n for (i = 0; i < 4; ++i) {\n for (var j = 0; j < Encoder.CBANDS; ++j) {\n gfc.nb_1[i][j] = 1e20;\n gfc.nb_2[i][j] = 1e20;\n gfc.nb_s1[i][j] = gfc.nb_s2[i][j] = 1;\n }\n for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {\n gfc.en[i].l[sb] = 1e20;\n gfc.thm[i].l[sb] = 1e20;\n }\n for (var j = 0; j < 3; ++j) {\n for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n gfc.en[i].s[sb][j] = 1e20;\n gfc.thm[i].s[sb][j] = 1e20;\n }\n gfc.nsPsy.lastAttacks[i] = 0;\n }\n for (var j = 0; j < 9; j++)\n gfc.nsPsy.last_en_subshort[i][j] = 10;\n }\n gfc.loudness_sq_save[0] = gfc.loudness_sq_save[1] = 0;\n gfc.npart_l = init_numline(\n gfc.numlines_l,\n gfc.bo_l,\n gfc.bm_l,\n bval,\n bval_width,\n gfc.mld_l,\n gfc.PSY.bo_l_weight,\n sfreq,\n Encoder.BLKSIZE,\n gfc.scalefac_band.l,\n Encoder.BLKSIZE / (2 * 576),\n Encoder.SBMAX_l\n );\n assert$9(gfc.npart_l < Encoder.CBANDS);\n for (i = 0; i < gfc.npart_l; i++) {\n var snr = snr_l_a;\n if (bval[i] >= bvl_a) {\n snr = snr_l_b * (bval[i] - bvl_a) / (bvl_b - bvl_a) + snr_l_a * (bvl_b - bval[i]) / (bvl_b - bvl_a);\n }\n norm[i] = Math.pow(10, snr / 10);\n if (gfc.numlines_l[i] > 0) {\n gfc.rnumlines_l[i] = 1 / gfc.numlines_l[i];\n } else {\n gfc.rnumlines_l[i] = 0;\n }\n }\n gfc.s3_ll = init_s3_values(\n gfc.s3ind,\n gfc.npart_l,\n bval,\n bval_width,\n norm,\n useOldS3\n );\n var j = 0;\n for (i = 0; i < gfc.npart_l; i++) {\n var x;\n x = Float$1.MAX_VALUE;\n for (var k = 0; k < gfc.numlines_l[i]; k++, j++) {\n var freq = sfreq * j / (1e3 * Encoder.BLKSIZE);\n var level;\n level = this.ATHformula(freq * 1e3, gfp) - 20;\n level = Math.pow(10, 0.1 * level);\n level *= gfc.numlines_l[i];\n if (x > level)\n x = level;\n }\n gfc.ATH.cb_l[i] = x;\n x = -20 + bval[i] * 20 / 10;\n if (x > 6) {\n x = 100;\n }\n if (x < -15) {\n x = -15;\n }\n x -= 8;\n gfc.minval_l[i] = Math.pow(10, x / 10) * gfc.numlines_l[i];\n }\n gfc.npart_s = init_numline(\n gfc.numlines_s,\n gfc.bo_s,\n gfc.bm_s,\n bval,\n bval_width,\n gfc.mld_s,\n gfc.PSY.bo_s_weight,\n sfreq,\n Encoder.BLKSIZE_s,\n gfc.scalefac_band.s,\n Encoder.BLKSIZE_s / (2 * 192),\n Encoder.SBMAX_s\n );\n assert$9(gfc.npart_s < Encoder.CBANDS);\n j = 0;\n for (i = 0; i < gfc.npart_s; i++) {\n var x;\n var snr = snr_s_a;\n if (bval[i] >= bvl_a) {\n snr = snr_s_b * (bval[i] - bvl_a) / (bvl_b - bvl_a) + snr_s_a * (bvl_b - bval[i]) / (bvl_b - bvl_a);\n }\n norm[i] = Math.pow(10, snr / 10);\n x = Float$1.MAX_VALUE;\n for (var k = 0; k < gfc.numlines_s[i]; k++, j++) {\n var freq = sfreq * j / (1e3 * Encoder.BLKSIZE_s);\n var level;\n level = this.ATHformula(freq * 1e3, gfp) - 20;\n level = Math.pow(10, 0.1 * level);\n level *= gfc.numlines_s[i];\n if (x > level)\n x = level;\n }\n gfc.ATH.cb_s[i] = x;\n x = -7 + bval[i] * 7 / 12;\n if (bval[i] > 12) {\n x *= 1 + Math.log(1 + x) * 3.1;\n }\n if (bval[i] < 12) {\n x *= 1 + Math.log(1 - x) * 2.3;\n }\n if (x < -15) {\n x = -15;\n }\n x -= 8;\n gfc.minval_s[i] = Math.pow(10, x / 10) * gfc.numlines_s[i];\n }\n gfc.s3_ss = init_s3_values(\n gfc.s3ind_s,\n gfc.npart_s,\n bval,\n bval_width,\n norm,\n useOldS3\n );\n init_mask_add_max_values();\n fft.init_fft(gfc);\n gfc.decay = Math.exp(\n -1 * LOG10 / (temporalmask_sustain_sec * sfreq / 192)\n );\n {\n var msfix;\n msfix = NS_MSFIX;\n if ((gfp.exp_nspsytune & 2) != 0)\n msfix = 1;\n if (Math.abs(gfp.msfix) > 0)\n msfix = gfp.msfix;\n gfp.msfix = msfix;\n for (var b = 0; b < gfc.npart_l; b++) {\n if (gfc.s3ind[b][1] > gfc.npart_l - 1)\n gfc.s3ind[b][1] = gfc.npart_l - 1;\n }\n }\n var frame_duration = 576 * gfc.mode_gr / sfreq;\n gfc.ATH.decay = Math.pow(10, -12 / 10 * frame_duration);\n gfc.ATH.adjust = 0.01;\n gfc.ATH.adjustLimit = 1;\n assert$9(gfc.bo_l[Encoder.SBMAX_l - 1] <= gfc.npart_l);\n assert$9(gfc.bo_s[Encoder.SBMAX_s - 1] <= gfc.npart_s);\n if (gfp.ATHtype != -1) {\n var freq;\n var freq_inc = gfp.out_samplerate / Encoder.BLKSIZE;\n var eql_balance = 0;\n freq = 0;\n for (i = 0; i < Encoder.BLKSIZE / 2; ++i) {\n freq += freq_inc;\n gfc.ATH.eql_w[i] = 1 / Math.pow(10, this.ATHformula(freq, gfp) / 10);\n eql_balance += gfc.ATH.eql_w[i];\n }\n eql_balance = 1 / eql_balance;\n for (i = Encoder.BLKSIZE / 2; --i >= 0; ) {\n gfc.ATH.eql_w[i] *= eql_balance;\n }\n }\n {\n for (var b = j = 0; b < gfc.npart_s; ++b) {\n for (i = 0; i < gfc.numlines_s[b]; ++i) {\n ++j;\n }\n }\n for (var b = j = 0; b < gfc.npart_l; ++b) {\n for (i = 0; i < gfc.numlines_l[b]; ++i) {\n ++j;\n }\n }\n }\n j = 0;\n for (i = 0; i < gfc.npart_l; i++) {\n var freq = sfreq * (j + gfc.numlines_l[i] / 2) / (1 * Encoder.BLKSIZE);\n gfc.mld_cb_l[i] = stereo_demask(freq);\n j += gfc.numlines_l[i];\n }\n for (; i < Encoder.CBANDS; ++i) {\n gfc.mld_cb_l[i] = 1;\n }\n j = 0;\n for (i = 0; i < gfc.npart_s; i++) {\n var freq = sfreq * (j + gfc.numlines_s[i] / 2) / (1 * Encoder.BLKSIZE_s);\n gfc.mld_cb_s[i] = stereo_demask(freq);\n j += gfc.numlines_s[i];\n }\n for (; i < Encoder.CBANDS; ++i) {\n gfc.mld_cb_s[i] = 1;\n }\n return 0;\n };\n function ATHformula_GB(f, value) {\n if (f < -0.3)\n f = 3410;\n f /= 1e3;\n f = Math.max(0.1, f);\n var ath = 3.64 * Math.pow(f, -0.8) - 6.8 * Math.exp(-0.6 * Math.pow(f - 3.4, 2)) + 6 * Math.exp(-0.15 * Math.pow(f - 8.7, 2)) + (0.6 + 0.04 * value) * 1e-3 * Math.pow(f, 4);\n return ath;\n }\n this.ATHformula = function(f, gfp) {\n var ath;\n switch (gfp.ATHtype) {\n case 0:\n ath = ATHformula_GB(f, 9);\n break;\n case 1:\n ath = ATHformula_GB(f, -1);\n break;\n case 2:\n ath = ATHformula_GB(f, 0);\n break;\n case 3:\n ath = ATHformula_GB(f, 1) + 6;\n break;\n case 4:\n ath = ATHformula_GB(f, gfp.ATHcurve);\n break;\n default:\n ath = ATHformula_GB(f, 0);\n break;\n }\n return ath;\n };\n}\nfunction LameGlobalFlags() {\n this.class_id = 0;\n this.num_samples = 0;\n this.num_channels = 0;\n this.in_samplerate = 0;\n this.out_samplerate = 0;\n this.scale = 0;\n this.scale_left = 0;\n this.scale_right = 0;\n this.analysis = false;\n this.bWriteVbrTag = false;\n this.decode_only = false;\n this.quality = 0;\n this.mode = MPEGMode.STEREO;\n this.force_ms = false;\n this.free_format = false;\n this.findReplayGain = false;\n this.decode_on_the_fly = false;\n this.write_id3tag_automatic = false;\n this.brate = 0;\n this.compression_ratio = 0;\n this.copyright = 0;\n this.original = 0;\n this.extension = 0;\n this.emphasis = 0;\n this.error_protection = 0;\n this.strict_ISO = false;\n this.disable_reservoir = false;\n this.quant_comp = 0;\n this.quant_comp_short = 0;\n this.experimentalY = false;\n this.experimentalZ = 0;\n this.exp_nspsytune = 0;\n this.preset = 0;\n this.VBR = null;\n this.VBR_q_frac = 0;\n this.VBR_q = 0;\n this.VBR_mean_bitrate_kbps = 0;\n this.VBR_min_bitrate_kbps = 0;\n this.VBR_max_bitrate_kbps = 0;\n this.VBR_hard_min = 0;\n this.lowpassfreq = 0;\n this.highpassfreq = 0;\n this.lowpasswidth = 0;\n this.highpasswidth = 0;\n this.maskingadjust = 0;\n this.maskingadjust_short = 0;\n this.ATHonly = false;\n this.ATHshort = false;\n this.noATH = false;\n this.ATHtype = 0;\n this.ATHcurve = 0;\n this.ATHlower = 0;\n this.athaa_type = 0;\n this.athaa_loudapprox = 0;\n this.athaa_sensitivity = 0;\n this.short_blocks = null;\n this.useTemporal = false;\n this.interChRatio = 0;\n this.msfix = 0;\n this.tune = false;\n this.tune_value_a = 0;\n this.version = 0;\n this.encoder_delay = 0;\n this.encoder_padding = 0;\n this.framesize = 0;\n this.frameNum = 0;\n this.lame_allocated_gfp = 0;\n this.internal_flags = null;\n}\nvar L3Side$1 = {};\nL3Side$1.SFBMAX = Encoder.SBMAX_s * 3;\nvar new_float$9 = common.new_float;\nvar new_int$a = common.new_int;\nfunction GrInfo() {\n this.xr = new_float$9(576);\n this.l3_enc = new_int$a(576);\n this.scalefac = new_int$a(L3Side$1.SFBMAX);\n this.xrpow_max = 0;\n this.part2_3_length = 0;\n this.big_values = 0;\n this.count1 = 0;\n this.global_gain = 0;\n this.scalefac_compress = 0;\n this.block_type = 0;\n this.mixed_block_flag = 0;\n this.table_select = new_int$a(3);\n this.subblock_gain = new_int$a(3 + 1);\n this.region0_count = 0;\n this.region1_count = 0;\n this.preflag = 0;\n this.scalefac_scale = 0;\n this.count1table_select = 0;\n this.part2_length = 0;\n this.sfb_lmax = 0;\n this.sfb_smin = 0;\n this.psy_lmax = 0;\n this.sfbmax = 0;\n this.psymax = 0;\n this.sfbdivide = 0;\n this.width = new_int$a(L3Side$1.SFBMAX);\n this.window = new_int$a(L3Side$1.SFBMAX);\n this.count1bits = 0;\n this.sfb_partition_table = null;\n this.slen = new_int$a(4);\n this.max_nonzero_coeff = 0;\n var self2 = this;\n function clone_int(array) {\n return new Int32Array(array);\n }\n function clone_float(array) {\n return new Float32Array(array);\n }\n this.assign = function(other) {\n self2.xr = clone_float(other.xr);\n self2.l3_enc = clone_int(other.l3_enc);\n self2.scalefac = clone_int(other.scalefac);\n self2.xrpow_max = other.xrpow_max;\n self2.part2_3_length = other.part2_3_length;\n self2.big_values = other.big_values;\n self2.count1 = other.count1;\n self2.global_gain = other.global_gain;\n self2.scalefac_compress = other.scalefac_compress;\n self2.block_type = other.block_type;\n self2.mixed_block_flag = other.mixed_block_flag;\n self2.table_select = clone_int(other.table_select);\n self2.subblock_gain = clone_int(other.subblock_gain);\n self2.region0_count = other.region0_count;\n self2.region1_count = other.region1_count;\n self2.preflag = other.preflag;\n self2.scalefac_scale = other.scalefac_scale;\n self2.count1table_select = other.count1table_select;\n self2.part2_length = other.part2_length;\n self2.sfb_lmax = other.sfb_lmax;\n self2.sfb_smin = other.sfb_smin;\n self2.psy_lmax = other.psy_lmax;\n self2.sfbmax = other.sfbmax;\n self2.psymax = other.psymax;\n self2.sfbdivide = other.sfbdivide;\n self2.width = clone_int(other.width);\n self2.window = clone_int(other.window);\n self2.count1bits = other.count1bits;\n self2.sfb_partition_table = other.sfb_partition_table.slice(0);\n self2.slen = clone_int(other.slen);\n self2.max_nonzero_coeff = other.max_nonzero_coeff;\n };\n}\nvar new_int$9 = common.new_int;\nfunction IIISideInfo() {\n this.tt = [\n [null, null],\n [null, null]\n ];\n this.main_data_begin = 0;\n this.private_bits = 0;\n this.resvDrain_pre = 0;\n this.resvDrain_post = 0;\n this.scfsi = [new_int$9(4), new_int$9(4)];\n for (var gr = 0; gr < 2; gr++) {\n for (var ch = 0; ch < 2; ch++) {\n this.tt[gr][ch] = new GrInfo();\n }\n }\n}\nvar System$6 = common.System;\nvar new_int$8 = common.new_int;\nfunction ScaleFac(arrL, arrS, arr21, arr12) {\n this.l = new_int$8(1 + Encoder.SBMAX_l);\n this.s = new_int$8(1 + Encoder.SBMAX_s);\n this.psfb21 = new_int$8(1 + Encoder.PSFB21);\n this.psfb12 = new_int$8(1 + Encoder.PSFB12);\n var l = this.l;\n var s = this.s;\n if (arguments.length == 4) {\n this.arrL = arguments[0];\n this.arrS = arguments[1];\n this.arr21 = arguments[2];\n this.arr12 = arguments[3];\n System$6.arraycopy(\n this.arrL,\n 0,\n l,\n 0,\n Math.min(this.arrL.length, this.l.length)\n );\n System$6.arraycopy(\n this.arrS,\n 0,\n s,\n 0,\n Math.min(this.arrS.length, this.s.length)\n );\n System$6.arraycopy(\n this.arr21,\n 0,\n this.psfb21,\n 0,\n Math.min(this.arr21.length, this.psfb21.length)\n );\n System$6.arraycopy(\n this.arr12,\n 0,\n this.psfb12,\n 0,\n Math.min(this.arr12.length, this.psfb12.length)\n );\n }\n}\nvar new_float$8 = common.new_float;\nvar new_float_n$2 = common.new_float_n;\nvar new_int$7 = common.new_int;\nfunction NsPsy() {\n this.last_en_subshort = new_float_n$2([4, 9]);\n this.lastAttacks = new_int$7(4);\n this.pefirbuf = new_float$8(19);\n this.longfact = new_float$8(Encoder.SBMAX_l);\n this.shortfact = new_float$8(Encoder.SBMAX_s);\n this.attackthre = 0;\n this.attackthre_s = 0;\n}\nfunction VBRSeekInfo() {\n this.sum = 0;\n this.seen = 0;\n this.want = 0;\n this.pos = 0;\n this.size = 0;\n this.bag = null;\n this.nVbrNumFrames = 0;\n this.nBytesWritten = 0;\n this.TotalFrameSize = 0;\n}\nvar new_byte$3 = common.new_byte;\nvar new_double = common.new_double;\nvar new_float$7 = common.new_float;\nvar new_float_n$1 = common.new_float_n;\nvar new_int$6 = common.new_int;\nvar new_int_n$1 = common.new_int_n;\nLameInternalFlags$1.MFSIZE = 3 * 1152 + Encoder.ENCDELAY - Encoder.MDCTDELAY;\nLameInternalFlags$1.MAX_HEADER_BUF = 256;\nLameInternalFlags$1.MAX_BITS_PER_CHANNEL = 4095;\nLameInternalFlags$1.MAX_BITS_PER_GRANULE = 7680;\nLameInternalFlags$1.BPC = 320;\nfunction LameInternalFlags$1() {\n var MAX_HEADER_LEN = 40;\n this.Class_ID = 0;\n this.lame_encode_frame_init = 0;\n this.iteration_init_init = 0;\n this.fill_buffer_resample_init = 0;\n this.mfbuf = new_float_n$1([2, LameInternalFlags$1.MFSIZE]);\n this.mode_gr = 0;\n this.channels_in = 0;\n this.channels_out = 0;\n this.resample_ratio = 0;\n this.mf_samples_to_encode = 0;\n this.mf_size = 0;\n this.VBR_min_bitrate = 0;\n this.VBR_max_bitrate = 0;\n this.bitrate_index = 0;\n this.samplerate_index = 0;\n this.mode_ext = 0;\n this.lowpass1 = 0;\n this.lowpass2 = 0;\n this.highpass1 = 0;\n this.highpass2 = 0;\n this.noise_shaping = 0;\n this.noise_shaping_amp = 0;\n this.substep_shaping = 0;\n this.psymodel = 0;\n this.noise_shaping_stop = 0;\n this.subblock_gain = 0;\n this.use_best_huffman = 0;\n this.full_outer_loop = 0;\n this.l3_side = new IIISideInfo();\n this.ms_ratio = new_float$7(2);\n this.padding = 0;\n this.frac_SpF = 0;\n this.slot_lag = 0;\n this.tag_spec = null;\n this.nMusicCRC = 0;\n this.OldValue = new_int$6(2);\n this.CurrentStep = new_int$6(2);\n this.masking_lower = 0;\n this.bv_scf = new_int$6(576);\n this.pseudohalf = new_int$6(L3Side$1.SFBMAX);\n this.sfb21_extra = false;\n this.inbuf_old = new Array(2);\n this.blackfilt = new Array(2 * LameInternalFlags$1.BPC + 1);\n this.itime = new_double(2);\n this.sideinfo_len = 0;\n this.sb_sample = new_float_n$1([2, 2, 18, Encoder.SBLIMIT]);\n this.amp_filter = new_float$7(32);\n function Header() {\n this.write_timing = 0;\n this.ptr = 0;\n this.buf = new_byte$3(MAX_HEADER_LEN);\n }\n this.header = new Array(LameInternalFlags$1.MAX_HEADER_BUF);\n this.h_ptr = 0;\n this.w_ptr = 0;\n this.ancillary_flag = 0;\n this.ResvSize = 0;\n this.ResvMax = 0;\n this.scalefac_band = new ScaleFac();\n this.minval_l = new_float$7(Encoder.CBANDS);\n this.minval_s = new_float$7(Encoder.CBANDS);\n this.nb_1 = new_float_n$1([4, Encoder.CBANDS]);\n this.nb_2 = new_float_n$1([4, Encoder.CBANDS]);\n this.nb_s1 = new_float_n$1([4, Encoder.CBANDS]);\n this.nb_s2 = new_float_n$1([4, Encoder.CBANDS]);\n this.s3_ss = null;\n this.s3_ll = null;\n this.decay = 0;\n this.thm = new Array(4);\n this.en = new Array(4);\n this.tot_ener = new_float$7(4);\n this.loudness_sq = new_float_n$1([2, 2]);\n this.loudness_sq_save = new_float$7(2);\n this.mld_l = new_float$7(Encoder.SBMAX_l);\n this.mld_s = new_float$7(Encoder.SBMAX_s);\n this.bm_l = new_int$6(Encoder.SBMAX_l);\n this.bo_l = new_int$6(Encoder.SBMAX_l);\n this.bm_s = new_int$6(Encoder.SBMAX_s);\n this.bo_s = new_int$6(Encoder.SBMAX_s);\n this.npart_l = 0;\n this.npart_s = 0;\n this.s3ind = new_int_n$1([Encoder.CBANDS, 2]);\n this.s3ind_s = new_int_n$1([Encoder.CBANDS, 2]);\n this.numlines_s = new_int$6(Encoder.CBANDS);\n this.numlines_l = new_int$6(Encoder.CBANDS);\n this.rnumlines_l = new_float$7(Encoder.CBANDS);\n this.mld_cb_l = new_float$7(Encoder.CBANDS);\n this.mld_cb_s = new_float$7(Encoder.CBANDS);\n this.numlines_s_num1 = 0;\n this.numlines_l_num1 = 0;\n this.pe = new_float$7(4);\n this.ms_ratio_s_old = 0;\n this.ms_ratio_l_old = 0;\n this.ms_ener_ratio_old = 0;\n this.blocktype_old = new_int$6(2);\n this.nsPsy = new NsPsy();\n this.VBR_seek_table = new VBRSeekInfo();\n this.ATH = null;\n this.PSY = null;\n this.nogap_total = 0;\n this.nogap_current = 0;\n this.decode_on_the_fly = true;\n this.findReplayGain = true;\n this.findPeakSample = true;\n this.PeakSample = 0;\n this.RadioGain = 0;\n this.AudiophileGain = 0;\n this.rgdata = null;\n this.noclipGainChange = 0;\n this.noclipScale = 0;\n this.bitrate_stereoMode_Hist = new_int_n$1([16, 4 + 1]);\n this.bitrate_blockType_Hist = new_int_n$1([16, 4 + 1 + 1]);\n this.pinfo = null;\n this.hip = null;\n this.in_buffer_nsamples = 0;\n this.in_buffer_0 = null;\n this.in_buffer_1 = null;\n this.iteration_loop = null;\n for (var i = 0; i < this.en.length; i++) {\n this.en[i] = new III_psy_xmin();\n }\n for (var i = 0; i < this.thm.length; i++) {\n this.thm[i] = new III_psy_xmin();\n }\n for (var i = 0; i < this.header.length; i++) {\n this.header[i] = new Header();\n }\n}\nvar new_float$6 = common.new_float;\nfunction ATH() {\n this.useAdjust = 0;\n this.aaSensitivityP = 0;\n this.adjust = 0;\n this.adjustLimit = 0;\n this.decay = 0;\n this.floor = 0;\n this.l = new_float$6(Encoder.SBMAX_l);\n this.s = new_float$6(Encoder.SBMAX_s);\n this.psfb21 = new_float$6(Encoder.PSFB21);\n this.psfb12 = new_float$6(Encoder.PSFB12);\n this.cb_l = new_float$6(Encoder.CBANDS);\n this.cb_s = new_float$6(Encoder.CBANDS);\n this.eql_w = new_float$6(Encoder.BLKSIZE / 2);\n}\nvar System$5 = common.System;\nvar Arrays$4 = common.Arrays;\nGainAnalysis$1.STEPS_per_dB = 100;\nGainAnalysis$1.MAX_dB = 120;\nGainAnalysis$1.GAIN_NOT_ENOUGH_SAMPLES = -24601;\nGainAnalysis$1.GAIN_ANALYSIS_ERROR = 0;\nGainAnalysis$1.GAIN_ANALYSIS_OK = 1;\nGainAnalysis$1.INIT_GAIN_ANALYSIS_ERROR = 0;\nGainAnalysis$1.INIT_GAIN_ANALYSIS_OK = 1;\nGainAnalysis$1.YULE_ORDER = 10;\nGainAnalysis$1.MAX_ORDER = GainAnalysis$1.YULE_ORDER;\nGainAnalysis$1.MAX_SAMP_FREQ = 48e3;\nGainAnalysis$1.RMS_WINDOW_TIME_NUMERATOR = 1;\nGainAnalysis$1.RMS_WINDOW_TIME_DENOMINATOR = 20;\nGainAnalysis$1.MAX_SAMPLES_PER_WINDOW = GainAnalysis$1.MAX_SAMP_FREQ * GainAnalysis$1.RMS_WINDOW_TIME_NUMERATOR / GainAnalysis$1.RMS_WINDOW_TIME_DENOMINATOR + 1;\nfunction GainAnalysis$1() {\n var PINK_REF = 64.82;\n var RMS_PERCENTILE = 0.95;\n var RMS_WINDOW_TIME_NUMERATOR = GainAnalysis$1.RMS_WINDOW_TIME_NUMERATOR;\n var RMS_WINDOW_TIME_DENOMINATOR = GainAnalysis$1.RMS_WINDOW_TIME_DENOMINATOR;\n var ABYule = [\n [\n 0.038575994352,\n -3.84664617118067,\n -0.02160367184185,\n 7.81501653005538,\n -0.00123395316851,\n -11.34170355132042,\n -9291677959e-14,\n 13.05504219327545,\n -0.01655260341619,\n -12.28759895145294,\n 0.02161526843274,\n 9.4829380631979,\n -0.02074045215285,\n -5.87257861775999,\n 0.00594298065125,\n 2.75465861874613,\n 0.00306428023191,\n -0.86984376593551,\n 12025322027e-14,\n 0.13919314567432,\n 0.00288463683916\n ],\n [\n 0.0541865640643,\n -3.47845948550071,\n -0.02911007808948,\n 6.36317777566148,\n -0.00848709379851,\n -8.54751527471874,\n -0.00851165645469,\n 9.4769360780128,\n -0.00834990904936,\n -8.81498681370155,\n 0.02245293253339,\n 6.85401540936998,\n -0.02596338512915,\n -4.39470996079559,\n 0.01624864962975,\n 2.19611684890774,\n -0.00240879051584,\n -0.75104302451432,\n 0.00674613682247,\n 0.13149317958808,\n -0.00187763777362\n ],\n [\n 0.15457299681924,\n -2.37898834973084,\n -0.09331049056315,\n 2.84868151156327,\n -0.06247880153653,\n -2.64577170229825,\n 0.02163541888798,\n 2.23697657451713,\n -0.05588393329856,\n -1.67148153367602,\n 0.04781476674921,\n 1.00595954808547,\n 0.00222312597743,\n -0.45953458054983,\n 0.03174092540049,\n 0.16378164858596,\n -0.01390589421898,\n -0.05032077717131,\n 0.00651420667831,\n 0.0234789740702,\n -0.00881362733839\n ],\n [\n 0.30296907319327,\n -1.61273165137247,\n -0.22613988682123,\n 1.0797749225997,\n -0.08587323730772,\n -0.2565625775407,\n 0.03282930172664,\n -0.1627671912044,\n -0.00915702933434,\n -0.22638893773906,\n -0.02364141202522,\n 0.39120800788284,\n -0.00584456039913,\n -0.22138138954925,\n 0.06276101321749,\n 0.04500235387352,\n -828086748e-14,\n 0.02005851806501,\n 0.00205861885564,\n 0.00302439095741,\n -0.02950134983287\n ],\n [\n 0.33642304856132,\n -1.49858979367799,\n -0.2557224142557,\n 0.87350271418188,\n -0.11828570177555,\n 0.12205022308084,\n 0.11921148675203,\n -0.80774944671438,\n -0.07834489609479,\n 0.47854794562326,\n -0.0046997791438,\n -0.12453458140019,\n -0.0058950022444,\n -0.04067510197014,\n 0.05724228140351,\n 0.08333755284107,\n 0.00832043980773,\n -0.04237348025746,\n -0.0163538138454,\n 0.02977207319925,\n -0.0176017656815\n ],\n [\n 0.4491525660845,\n -0.62820619233671,\n -0.14351757464547,\n 0.29661783706366,\n -0.22784394429749,\n -0.372563729424,\n -0.01419140100551,\n 0.00213767857124,\n 0.04078262797139,\n -0.42029820170918,\n -0.12398163381748,\n 0.22199650564824,\n 0.04097565135648,\n 0.00613424350682,\n 0.10478503600251,\n 0.06747620744683,\n -0.01863887810927,\n 0.05784820375801,\n -0.03193428438915,\n 0.03222754072173,\n 0.00541907748707\n ],\n [\n 0.56619470757641,\n -1.04800335126349,\n -0.75464456939302,\n 0.29156311971249,\n 0.1624213774223,\n -0.26806001042947,\n 0.16744243493672,\n 0.00819999645858,\n -0.18901604199609,\n 0.45054734505008,\n 0.3093178284183,\n -0.33032403314006,\n -0.27562961986224,\n 0.0673936833311,\n 0.00647310677246,\n -0.04784254229033,\n 0.08647503780351,\n 0.01639907836189,\n -0.0378898455484,\n 0.01807364323573,\n -0.00588215443421\n ],\n [\n 0.58100494960553,\n -0.51035327095184,\n -0.53174909058578,\n -0.31863563325245,\n -0.14289799034253,\n -0.20256413484477,\n 0.17520704835522,\n 0.1472815413433,\n 0.02377945217615,\n 0.38952639978999,\n 0.15558449135573,\n -0.23313271880868,\n -0.25344790059353,\n -0.05246019024463,\n 0.01628462406333,\n -0.02505961724053,\n 0.06920467763959,\n 0.02442357316099,\n -0.03721611395801,\n 0.01818801111503,\n -0.00749618797172\n ],\n [\n 0.53648789255105,\n -0.2504987195602,\n -0.42163034350696,\n -0.43193942311114,\n -0.00275953611929,\n -0.03424681017675,\n 0.04267842219415,\n -0.04678328784242,\n -0.10214864179676,\n 0.26408300200955,\n 0.14590772289388,\n 0.15113130533216,\n -0.02459864859345,\n -0.17556493366449,\n -0.11202315195388,\n -0.18823009262115,\n -0.04060034127,\n 0.05477720428674,\n 0.0478866554818,\n 0.0470440968812,\n -0.02217936801134\n ]\n ];\n var ABButter = [\n [\n 0.98621192462708,\n -1.97223372919527,\n -1.97242384925416,\n 0.97261396931306,\n 0.98621192462708\n ],\n [\n 0.98500175787242,\n -1.96977855582618,\n -1.97000351574484,\n 0.9702284756635,\n 0.98500175787242\n ],\n [\n 0.97938932735214,\n -1.95835380975398,\n -1.95877865470428,\n 0.95920349965459,\n 0.97938932735214\n ],\n [\n 0.97531843204928,\n -1.95002759149878,\n -1.95063686409857,\n 0.95124613669835,\n 0.97531843204928\n ],\n [\n 0.97316523498161,\n -1.94561023566527,\n -1.94633046996323,\n 0.94705070426118,\n 0.97316523498161\n ],\n [\n 0.96454515552826,\n -1.92783286977036,\n -1.92909031105652,\n 0.93034775234268,\n 0.96454515552826\n ],\n [\n 0.96009142950541,\n -1.91858953033784,\n -1.92018285901082,\n 0.92177618768381,\n 0.96009142950541\n ],\n [\n 0.95856916599601,\n -1.9154210807478,\n -1.91713833199203,\n 0.91885558323625,\n 0.95856916599601\n ],\n [\n 0.94597685600279,\n -1.88903307939452,\n -1.89195371200558,\n 0.89487434461664,\n 0.94597685600279\n ]\n ];\n function filterYule(input, inputPos, output, outputPos, nSamples, kernel) {\n while (nSamples-- != 0) {\n output[outputPos] = 1e-10 + input[inputPos + 0] * kernel[0] - output[outputPos - 1] * kernel[1] + input[inputPos - 1] * kernel[2] - output[outputPos - 2] * kernel[3] + input[inputPos - 2] * kernel[4] - output[outputPos - 3] * kernel[5] + input[inputPos - 3] * kernel[6] - output[outputPos - 4] * kernel[7] + input[inputPos - 4] * kernel[8] - output[outputPos - 5] * kernel[9] + input[inputPos - 5] * kernel[10] - output[outputPos - 6] * kernel[11] + input[inputPos - 6] * kernel[12] - output[outputPos - 7] * kernel[13] + input[inputPos - 7] * kernel[14] - output[outputPos - 8] * kernel[15] + input[inputPos - 8] * kernel[16] - output[outputPos - 9] * kernel[17] + input[inputPos - 9] * kernel[18] - output[outputPos - 10] * kernel[19] + input[inputPos - 10] * kernel[20];\n ++outputPos;\n ++inputPos;\n }\n }\n function filterButter(input, inputPos, output, outputPos, nSamples, kernel) {\n while (nSamples-- != 0) {\n output[outputPos] = input[inputPos + 0] * kernel[0] - output[outputPos - 1] * kernel[1] + input[inputPos - 1] * kernel[2] - output[outputPos - 2] * kernel[3] + input[inputPos - 2] * kernel[4];\n ++outputPos;\n ++inputPos;\n }\n }\n function ResetSampleFrequency(rgData, samplefreq) {\n for (var i = 0; i < MAX_ORDER; i++) {\n rgData.linprebuf[i] = rgData.lstepbuf[i] = rgData.loutbuf[i] = rgData.rinprebuf[i] = rgData.rstepbuf[i] = rgData.routbuf[i] = 0;\n }\n switch (0 | samplefreq) {\n case 48e3:\n rgData.reqindex = 0;\n break;\n case 44100:\n rgData.reqindex = 1;\n break;\n case 32e3:\n rgData.reqindex = 2;\n break;\n case 24e3:\n rgData.reqindex = 3;\n break;\n case 22050:\n rgData.reqindex = 4;\n break;\n case 16e3:\n rgData.reqindex = 5;\n break;\n case 12e3:\n rgData.reqindex = 6;\n break;\n case 11025:\n rgData.reqindex = 7;\n break;\n case 8e3:\n rgData.reqindex = 8;\n break;\n default:\n return INIT_GAIN_ANALYSIS_ERROR;\n }\n rgData.sampleWindow = 0 | (samplefreq * RMS_WINDOW_TIME_NUMERATOR + RMS_WINDOW_TIME_DENOMINATOR - 1) / RMS_WINDOW_TIME_DENOMINATOR;\n rgData.lsum = 0;\n rgData.rsum = 0;\n rgData.totsamp = 0;\n Arrays$4.ill(rgData.A, 0);\n return INIT_GAIN_ANALYSIS_OK;\n }\n this.InitGainAnalysis = function(rgData, samplefreq) {\n if (ResetSampleFrequency(rgData, samplefreq) != INIT_GAIN_ANALYSIS_OK) {\n return INIT_GAIN_ANALYSIS_ERROR;\n }\n rgData.linpre = MAX_ORDER;\n rgData.rinpre = MAX_ORDER;\n rgData.lstep = MAX_ORDER;\n rgData.rstep = MAX_ORDER;\n rgData.lout = MAX_ORDER;\n rgData.rout = MAX_ORDER;\n Arrays$4.fill(rgData.B, 0);\n return INIT_GAIN_ANALYSIS_OK;\n };\n function fsqr(d) {\n return d * d;\n }\n this.AnalyzeSamples = function(rgData, left_samples, left_samplesPos, right_samples, right_samplesPos, num_samples, num_channels) {\n var curleft;\n var curleftBase;\n var curright;\n var currightBase;\n var batchsamples;\n var cursamples;\n var cursamplepos;\n if (num_samples == 0)\n return GAIN_ANALYSIS_OK;\n cursamplepos = 0;\n batchsamples = num_samples;\n switch (num_channels) {\n case 1:\n right_samples = left_samples;\n right_samplesPos = left_samplesPos;\n break;\n case 2:\n break;\n default:\n return GAIN_ANALYSIS_ERROR;\n }\n if (num_samples < MAX_ORDER) {\n System$5.arraycopy(\n left_samples,\n left_samplesPos,\n rgData.linprebuf,\n MAX_ORDER,\n num_samples\n );\n System$5.arraycopy(\n right_samples,\n right_samplesPos,\n rgData.rinprebuf,\n MAX_ORDER,\n num_samples\n );\n } else {\n System$5.arraycopy(\n left_samples,\n left_samplesPos,\n rgData.linprebuf,\n MAX_ORDER,\n MAX_ORDER\n );\n System$5.arraycopy(\n right_samples,\n right_samplesPos,\n rgData.rinprebuf,\n MAX_ORDER,\n MAX_ORDER\n );\n }\n while (batchsamples > 0) {\n cursamples = batchsamples > rgData.sampleWindow - rgData.totsamp ? rgData.sampleWindow - rgData.totsamp : batchsamples;\n if (cursamplepos < MAX_ORDER) {\n curleft = rgData.linpre + cursamplepos;\n curleftBase = rgData.linprebuf;\n curright = rgData.rinpre + cursamplepos;\n currightBase = rgData.rinprebuf;\n if (cursamples > MAX_ORDER - cursamplepos) {\n cursamples = MAX_ORDER - cursamplepos;\n }\n } else {\n curleft = left_samplesPos + cursamplepos;\n curleftBase = left_samples;\n curright = right_samplesPos + cursamplepos;\n currightBase = right_samples;\n }\n filterYule(\n curleftBase,\n curleft,\n rgData.lstepbuf,\n rgData.lstep + rgData.totsamp,\n cursamples,\n ABYule[rgData.reqindex]\n );\n filterYule(\n currightBase,\n curright,\n rgData.rstepbuf,\n rgData.rstep + rgData.totsamp,\n cursamples,\n ABYule[rgData.reqindex]\n );\n filterButter(\n rgData.lstepbuf,\n rgData.lstep + rgData.totsamp,\n rgData.loutbuf,\n rgData.lout + rgData.totsamp,\n cursamples,\n ABButter[rgData.reqindex]\n );\n filterButter(\n rgData.rstepbuf,\n rgData.rstep + rgData.totsamp,\n rgData.routbuf,\n rgData.rout + rgData.totsamp,\n cursamples,\n ABButter[rgData.reqindex]\n );\n curleft = rgData.lout + rgData.totsamp;\n curleftBase = rgData.loutbuf;\n curright = rgData.rout + rgData.totsamp;\n currightBase = rgData.routbuf;\n var i = cursamples % 8;\n while (i-- != 0) {\n rgData.lsum += fsqr(curleftBase[curleft++]);\n rgData.rsum += fsqr(currightBase[curright++]);\n }\n i = cursamples / 8;\n while (i-- != 0) {\n rgData.lsum += fsqr(curleftBase[curleft + 0]) + fsqr(curleftBase[curleft + 1]) + fsqr(curleftBase[curleft + 2]) + fsqr(curleftBase[curleft + 3]) + fsqr(curleftBase[curleft + 4]) + fsqr(curleftBase[curleft + 5]) + fsqr(curleftBase[curleft + 6]) + fsqr(curleftBase[curleft + 7]);\n curleft += 8;\n rgData.rsum += fsqr(currightBase[curright + 0]) + fsqr(currightBase[curright + 1]) + fsqr(currightBase[curright + 2]) + fsqr(currightBase[curright + 3]) + fsqr(currightBase[curright + 4]) + fsqr(currightBase[curright + 5]) + fsqr(currightBase[curright + 6]) + fsqr(currightBase[curright + 7]);\n curright += 8;\n }\n batchsamples -= cursamples;\n cursamplepos += cursamples;\n rgData.totsamp += cursamples;\n if (rgData.totsamp == rgData.sampleWindow) {\n var val = GainAnalysis$1.STEPS_per_dB * 10 * Math.log10(\n (rgData.lsum + rgData.rsum) / rgData.totsamp * 0.5 + 1e-37\n );\n var ival = val <= 0 ? 0 : 0 | val;\n if (ival >= rgData.A.length)\n ival = rgData.A.length - 1;\n rgData.A[ival]++;\n rgData.lsum = rgData.rsum = 0;\n System$5.arraycopy(\n rgData.loutbuf,\n rgData.totsamp,\n rgData.loutbuf,\n 0,\n MAX_ORDER\n );\n System$5.arraycopy(\n rgData.routbuf,\n rgData.totsamp,\n rgData.routbuf,\n 0,\n MAX_ORDER\n );\n System$5.arraycopy(\n rgData.lstepbuf,\n rgData.totsamp,\n rgData.lstepbuf,\n 0,\n MAX_ORDER\n );\n System$5.arraycopy(\n rgData.rstepbuf,\n rgData.totsamp,\n rgData.rstepbuf,\n 0,\n MAX_ORDER\n );\n rgData.totsamp = 0;\n }\n if (rgData.totsamp > rgData.sampleWindow) {\n return GAIN_ANALYSIS_ERROR;\n }\n }\n if (num_samples < MAX_ORDER) {\n System$5.arraycopy(\n rgData.linprebuf,\n num_samples,\n rgData.linprebuf,\n 0,\n MAX_ORDER - num_samples\n );\n System$5.arraycopy(\n rgData.rinprebuf,\n num_samples,\n rgData.rinprebuf,\n 0,\n MAX_ORDER - num_samples\n );\n System$5.arraycopy(\n left_samples,\n left_samplesPos,\n rgData.linprebuf,\n MAX_ORDER - num_samples,\n num_samples\n );\n System$5.arraycopy(\n right_samples,\n right_samplesPos,\n rgData.rinprebuf,\n MAX_ORDER - num_samples,\n num_samples\n );\n } else {\n System$5.arraycopy(\n left_samples,\n left_samplesPos + num_samples - MAX_ORDER,\n rgData.linprebuf,\n 0,\n MAX_ORDER\n );\n System$5.arraycopy(\n right_samples,\n right_samplesPos + num_samples - MAX_ORDER,\n rgData.rinprebuf,\n 0,\n MAX_ORDER\n );\n }\n return GAIN_ANALYSIS_OK;\n };\n function analyzeResult(Array2, len) {\n var i;\n var elems = 0;\n for (i = 0; i < len; i++)\n elems += Array2[i];\n if (elems == 0)\n return GAIN_NOT_ENOUGH_SAMPLES;\n var upper = 0 | Math.ceil(elems * (1 - RMS_PERCENTILE));\n for (i = len; i-- > 0; ) {\n if ((upper -= Array2[i]) <= 0)\n break;\n }\n return PINK_REF - i / GainAnalysis$1.STEPS_per_dB;\n }\n this.GetTitleGain = function(rgData) {\n var retval = analyzeResult(rgData.A, rgData.A.length);\n for (var i = 0; i < rgData.A.length; i++) {\n rgData.B[i] += rgData.A[i];\n rgData.A[i] = 0;\n }\n for (var i = 0; i < MAX_ORDER; i++) {\n rgData.linprebuf[i] = rgData.lstepbuf[i] = rgData.loutbuf[i] = rgData.rinprebuf[i] = rgData.rstepbuf[i] = rgData.routbuf[i] = 0;\n }\n rgData.totsamp = 0;\n rgData.lsum = rgData.rsum = 0;\n return retval;\n };\n}\nvar new_float$5 = common.new_float;\nvar new_int$5 = common.new_int;\nfunction ReplayGain() {\n this.linprebuf = new_float$5(void 0 * 2);\n this.linpre = 0;\n this.lstepbuf = new_float$5(\n void 0 + void 0\n );\n this.lstep = 0;\n this.loutbuf = new_float$5(\n void 0 + void 0\n );\n this.lout = 0;\n this.rinprebuf = new_float$5(void 0 * 2);\n this.rinpre = 0;\n this.rstepbuf = new_float$5(\n void 0 + void 0\n );\n this.rstep = 0;\n this.routbuf = new_float$5(\n void 0 + void 0\n );\n this.rout = 0;\n this.sampleWindow = 0;\n this.totsamp = 0;\n this.lsum = 0;\n this.rsum = 0;\n this.freqindex = 0;\n this.first = 0;\n this.A = new_int$5(0 | void 0 * void 0);\n this.B = new_int$5(0 | void 0 * void 0);\n}\nfunction MeanBits$1(meanBits) {\n this.bits = meanBits;\n}\nvar new_float$4 = common.new_float;\nvar new_int$4 = common.new_int;\nvar assert$8 = common.assert;\nfunction CBRNewIterationLoop(_quantize) {\n var quantize = _quantize;\n this.quantize = quantize;\n this.iteration_loop = function(gfp, pe, ms_ener_ratio, ratio) {\n var gfc = gfp.internal_flags;\n var l3_xmin = new_float$4(L3Side$1.SFBMAX);\n var xrpow = new_float$4(576);\n var targ_bits = new_int$4(2);\n var mean_bits = 0;\n var max_bits;\n var l3_side = gfc.l3_side;\n var mb = new MeanBits$1(mean_bits);\n this.quantize.rv.ResvFrameBegin(gfp, mb);\n mean_bits = mb.bits;\n for (var gr = 0; gr < gfc.mode_gr; gr++) {\n max_bits = this.quantize.qupvt.on_pe(\n gfp,\n pe,\n targ_bits,\n mean_bits,\n gr,\n gr\n );\n if (gfc.mode_ext == Encoder.MPG_MD_MS_LR) {\n this.quantize.ms_convert(gfc.l3_side, gr);\n this.quantize.qupvt.reduce_side(\n targ_bits,\n ms_ener_ratio[gr],\n mean_bits,\n max_bits\n );\n }\n for (var ch = 0; ch < gfc.channels_out; ch++) {\n var adjust, masking_lower_db;\n var cod_info = l3_side.tt[gr][ch];\n if (cod_info.block_type != Encoder.SHORT_TYPE) {\n adjust = 0;\n masking_lower_db = gfc.PSY.mask_adjust - adjust;\n } else {\n adjust = 0;\n masking_lower_db = gfc.PSY.mask_adjust_short - adjust;\n }\n gfc.masking_lower = Math.pow(10, masking_lower_db * 0.1);\n this.quantize.init_outer_loop(gfc, cod_info);\n if (this.quantize.init_xrpow(gfc, cod_info, xrpow)) {\n this.quantize.qupvt.calc_xmin(gfp, ratio[gr][ch], cod_info, l3_xmin);\n this.quantize.outer_loop(\n gfp,\n cod_info,\n l3_xmin,\n xrpow,\n ch,\n targ_bits[ch]\n );\n }\n this.quantize.iteration_finish_one(gfc, gr, ch);\n assert$8(\n cod_info.part2_3_length <= LameInternalFlags$1.MAX_BITS_PER_CHANNEL\n );\n assert$8(cod_info.part2_3_length <= targ_bits[ch]);\n }\n }\n this.quantize.rv.ResvFrameEnd(gfc, mean_bits);\n };\n}\nfunction HuffCodeTab(len, max, tab, hl) {\n this.xlen = len;\n this.linmax = max;\n this.table = tab;\n this.hlen = hl;\n}\nvar Tables$1 = {};\nTables$1.t1HB = [1, 1, 1, 0];\nTables$1.t2HB = [1, 2, 1, 3, 1, 1, 3, 2, 0];\nTables$1.t3HB = [3, 2, 1, 1, 1, 1, 3, 2, 0];\nTables$1.t5HB = [1, 2, 6, 5, 3, 1, 4, 4, 7, 5, 7, 1, 6, 1, 1, 0];\nTables$1.t6HB = [7, 3, 5, 1, 6, 2, 3, 2, 5, 4, 4, 1, 3, 3, 2, 0];\nTables$1.t7HB = [\n 1,\n 2,\n 10,\n 19,\n 16,\n 10,\n 3,\n 3,\n 7,\n 10,\n 5,\n 3,\n 11,\n 4,\n 13,\n 17,\n 8,\n 4,\n 12,\n 11,\n 18,\n 15,\n 11,\n 2,\n 7,\n 6,\n 9,\n 14,\n 3,\n 1,\n 6,\n 4,\n 5,\n 3,\n 2,\n 0\n];\nTables$1.t8HB = [\n 3,\n 4,\n 6,\n 18,\n 12,\n 5,\n 5,\n 1,\n 2,\n 16,\n 9,\n 3,\n 7,\n 3,\n 5,\n 14,\n 7,\n 3,\n 19,\n 17,\n 15,\n 13,\n 10,\n 4,\n 13,\n 5,\n 8,\n 11,\n 5,\n 1,\n 12,\n 4,\n 4,\n 1,\n 1,\n 0\n];\nTables$1.t9HB = [\n 7,\n 5,\n 9,\n 14,\n 15,\n 7,\n 6,\n 4,\n 5,\n 5,\n 6,\n 7,\n 7,\n 6,\n 8,\n 8,\n 8,\n 5,\n 15,\n 6,\n 9,\n 10,\n 5,\n 1,\n 11,\n 7,\n 9,\n 6,\n 4,\n 1,\n 14,\n 4,\n 6,\n 2,\n 6,\n 0\n];\nTables$1.t10HB = [\n 1,\n 2,\n 10,\n 23,\n 35,\n 30,\n 12,\n 17,\n 3,\n 3,\n 8,\n 12,\n 18,\n 21,\n 12,\n 7,\n 11,\n 9,\n 15,\n 21,\n 32,\n 40,\n 19,\n 6,\n 14,\n 13,\n 22,\n 34,\n 46,\n 23,\n 18,\n 7,\n 20,\n 19,\n 33,\n 47,\n 27,\n 22,\n 9,\n 3,\n 31,\n 22,\n 41,\n 26,\n 21,\n 20,\n 5,\n 3,\n 14,\n 13,\n 10,\n 11,\n 16,\n 6,\n 5,\n 1,\n 9,\n 8,\n 7,\n 8,\n 4,\n 4,\n 2,\n 0\n];\nTables$1.t11HB = [\n 3,\n 4,\n 10,\n 24,\n 34,\n 33,\n 21,\n 15,\n 5,\n 3,\n 4,\n 10,\n 32,\n 17,\n 11,\n 10,\n 11,\n 7,\n 13,\n 18,\n 30,\n 31,\n 20,\n 5,\n 25,\n 11,\n 19,\n 59,\n 27,\n 18,\n 12,\n 5,\n 35,\n 33,\n 31,\n 58,\n 30,\n 16,\n 7,\n 5,\n 28,\n 26,\n 32,\n 19,\n 17,\n 15,\n 8,\n 14,\n 14,\n 12,\n 9,\n 13,\n 14,\n 9,\n 4,\n 1,\n 11,\n 4,\n 6,\n 6,\n 6,\n 3,\n 2,\n 0\n];\nTables$1.t12HB = [\n 9,\n 6,\n 16,\n 33,\n 41,\n 39,\n 38,\n 26,\n 7,\n 5,\n 6,\n 9,\n 23,\n 16,\n 26,\n 11,\n 17,\n 7,\n 11,\n 14,\n 21,\n 30,\n 10,\n 7,\n 17,\n 10,\n 15,\n 12,\n 18,\n 28,\n 14,\n 5,\n 32,\n 13,\n 22,\n 19,\n 18,\n 16,\n 9,\n 5,\n 40,\n 17,\n 31,\n 29,\n 17,\n 13,\n 4,\n 2,\n 27,\n 12,\n 11,\n 15,\n 10,\n 7,\n 4,\n 1,\n 27,\n 12,\n 8,\n 12,\n 6,\n 3,\n 1,\n 0\n];\nTables$1.t13HB = [\n 1,\n 5,\n 14,\n 21,\n 34,\n 51,\n 46,\n 71,\n 42,\n 52,\n 68,\n 52,\n 67,\n 44,\n 43,\n 19,\n 3,\n 4,\n 12,\n 19,\n 31,\n 26,\n 44,\n 33,\n 31,\n 24,\n 32,\n 24,\n 31,\n 35,\n 22,\n 14,\n 15,\n 13,\n 23,\n 36,\n 59,\n 49,\n 77,\n 65,\n 29,\n 40,\n 30,\n 40,\n 27,\n 33,\n 42,\n 16,\n 22,\n 20,\n 37,\n 61,\n 56,\n 79,\n 73,\n 64,\n 43,\n 76,\n 56,\n 37,\n 26,\n 31,\n 25,\n 14,\n 35,\n 16,\n 60,\n 57,\n 97,\n 75,\n 114,\n 91,\n 54,\n 73,\n 55,\n 41,\n 48,\n 53,\n 23,\n 24,\n 58,\n 27,\n 50,\n 96,\n 76,\n 70,\n 93,\n 84,\n 77,\n 58,\n 79,\n 29,\n 74,\n 49,\n 41,\n 17,\n 47,\n 45,\n 78,\n 74,\n 115,\n 94,\n 90,\n 79,\n 69,\n 83,\n 71,\n 50,\n 59,\n 38,\n 36,\n 15,\n 72,\n 34,\n 56,\n 95,\n 92,\n 85,\n 91,\n 90,\n 86,\n 73,\n 77,\n 65,\n 51,\n 44,\n 43,\n 42,\n 43,\n 20,\n 30,\n 44,\n 55,\n 78,\n 72,\n 87,\n 78,\n 61,\n 46,\n 54,\n 37,\n 30,\n 20,\n 16,\n 53,\n 25,\n 41,\n 37,\n 44,\n 59,\n 54,\n 81,\n 66,\n 76,\n 57,\n 54,\n 37,\n 18,\n 39,\n 11,\n 35,\n 33,\n 31,\n 57,\n 42,\n 82,\n 72,\n 80,\n 47,\n 58,\n 55,\n 21,\n 22,\n 26,\n 38,\n 22,\n 53,\n 25,\n 23,\n 38,\n 70,\n 60,\n 51,\n 36,\n 55,\n 26,\n 34,\n 23,\n 27,\n 14,\n 9,\n 7,\n 34,\n 32,\n 28,\n 39,\n 49,\n 75,\n 30,\n 52,\n 48,\n 40,\n 52,\n 28,\n 18,\n 17,\n 9,\n 5,\n 45,\n 21,\n 34,\n 64,\n 56,\n 50,\n 49,\n 45,\n 31,\n 19,\n 12,\n 15,\n 10,\n 7,\n 6,\n 3,\n 48,\n 23,\n 20,\n 39,\n 36,\n 35,\n 53,\n 21,\n 16,\n 23,\n 13,\n 10,\n 6,\n 1,\n 4,\n 2,\n 16,\n 15,\n 17,\n 27,\n 25,\n 20,\n 29,\n 11,\n 17,\n 12,\n 16,\n 8,\n 1,\n 1,\n 0,\n 1\n];\nTables$1.t15HB = [\n 7,\n 12,\n 18,\n 53,\n 47,\n 76,\n 124,\n 108,\n 89,\n 123,\n 108,\n 119,\n 107,\n 81,\n 122,\n 63,\n 13,\n 5,\n 16,\n 27,\n 46,\n 36,\n 61,\n 51,\n 42,\n 70,\n 52,\n 83,\n 65,\n 41,\n 59,\n 36,\n 19,\n 17,\n 15,\n 24,\n 41,\n 34,\n 59,\n 48,\n 40,\n 64,\n 50,\n 78,\n 62,\n 80,\n 56,\n 33,\n 29,\n 28,\n 25,\n 43,\n 39,\n 63,\n 55,\n 93,\n 76,\n 59,\n 93,\n 72,\n 54,\n 75,\n 50,\n 29,\n 52,\n 22,\n 42,\n 40,\n 67,\n 57,\n 95,\n 79,\n 72,\n 57,\n 89,\n 69,\n 49,\n 66,\n 46,\n 27,\n 77,\n 37,\n 35,\n 66,\n 58,\n 52,\n 91,\n 74,\n 62,\n 48,\n 79,\n 63,\n 90,\n 62,\n 40,\n 38,\n 125,\n 32,\n 60,\n 56,\n 50,\n 92,\n 78,\n 65,\n 55,\n 87,\n 71,\n 51,\n 73,\n 51,\n 70,\n 30,\n 109,\n 53,\n 49,\n 94,\n 88,\n 75,\n 66,\n 122,\n 91,\n 73,\n 56,\n 42,\n 64,\n 44,\n 21,\n 25,\n 90,\n 43,\n 41,\n 77,\n 73,\n 63,\n 56,\n 92,\n 77,\n 66,\n 47,\n 67,\n 48,\n 53,\n 36,\n 20,\n 71,\n 34,\n 67,\n 60,\n 58,\n 49,\n 88,\n 76,\n 67,\n 106,\n 71,\n 54,\n 38,\n 39,\n 23,\n 15,\n 109,\n 53,\n 51,\n 47,\n 90,\n 82,\n 58,\n 57,\n 48,\n 72,\n 57,\n 41,\n 23,\n 27,\n 62,\n 9,\n 86,\n 42,\n 40,\n 37,\n 70,\n 64,\n 52,\n 43,\n 70,\n 55,\n 42,\n 25,\n 29,\n 18,\n 11,\n 11,\n 118,\n 68,\n 30,\n 55,\n 50,\n 46,\n 74,\n 65,\n 49,\n 39,\n 24,\n 16,\n 22,\n 13,\n 14,\n 7,\n 91,\n 44,\n 39,\n 38,\n 34,\n 63,\n 52,\n 45,\n 31,\n 52,\n 28,\n 19,\n 14,\n 8,\n 9,\n 3,\n 123,\n 60,\n 58,\n 53,\n 47,\n 43,\n 32,\n 22,\n 37,\n 24,\n 17,\n 12,\n 15,\n 10,\n 2,\n 1,\n 71,\n 37,\n 34,\n 30,\n 28,\n 20,\n 17,\n 26,\n 21,\n 16,\n 10,\n 6,\n 8,\n 6,\n 2,\n 0\n];\nTables$1.t16HB = [\n 1,\n 5,\n 14,\n 44,\n 74,\n 63,\n 110,\n 93,\n 172,\n 149,\n 138,\n 242,\n 225,\n 195,\n 376,\n 17,\n 3,\n 4,\n 12,\n 20,\n 35,\n 62,\n 53,\n 47,\n 83,\n 75,\n 68,\n 119,\n 201,\n 107,\n 207,\n 9,\n 15,\n 13,\n 23,\n 38,\n 67,\n 58,\n 103,\n 90,\n 161,\n 72,\n 127,\n 117,\n 110,\n 209,\n 206,\n 16,\n 45,\n 21,\n 39,\n 69,\n 64,\n 114,\n 99,\n 87,\n 158,\n 140,\n 252,\n 212,\n 199,\n 387,\n 365,\n 26,\n 75,\n 36,\n 68,\n 65,\n 115,\n 101,\n 179,\n 164,\n 155,\n 264,\n 246,\n 226,\n 395,\n 382,\n 362,\n 9,\n 66,\n 30,\n 59,\n 56,\n 102,\n 185,\n 173,\n 265,\n 142,\n 253,\n 232,\n 400,\n 388,\n 378,\n 445,\n 16,\n 111,\n 54,\n 52,\n 100,\n 184,\n 178,\n 160,\n 133,\n 257,\n 244,\n 228,\n 217,\n 385,\n 366,\n 715,\n 10,\n 98,\n 48,\n 91,\n 88,\n 165,\n 157,\n 148,\n 261,\n 248,\n 407,\n 397,\n 372,\n 380,\n 889,\n 884,\n 8,\n 85,\n 84,\n 81,\n 159,\n 156,\n 143,\n 260,\n 249,\n 427,\n 401,\n 392,\n 383,\n 727,\n 713,\n 708,\n 7,\n 154,\n 76,\n 73,\n 141,\n 131,\n 256,\n 245,\n 426,\n 406,\n 394,\n 384,\n 735,\n 359,\n 710,\n 352,\n 11,\n 139,\n 129,\n 67,\n 125,\n 247,\n 233,\n 229,\n 219,\n 393,\n 743,\n 737,\n 720,\n 885,\n 882,\n 439,\n 4,\n 243,\n 120,\n 118,\n 115,\n 227,\n 223,\n 396,\n 746,\n 742,\n 736,\n 721,\n 712,\n 706,\n 223,\n 436,\n 6,\n 202,\n 224,\n 222,\n 218,\n 216,\n 389,\n 386,\n 381,\n 364,\n 888,\n 443,\n 707,\n 440,\n 437,\n 1728,\n 4,\n 747,\n 211,\n 210,\n 208,\n 370,\n 379,\n 734,\n 723,\n 714,\n 1735,\n 883,\n 877,\n 876,\n 3459,\n 865,\n 2,\n 377,\n 369,\n 102,\n 187,\n 726,\n 722,\n 358,\n 711,\n 709,\n 866,\n 1734,\n 871,\n 3458,\n 870,\n 434,\n 0,\n 12,\n 10,\n 7,\n 11,\n 10,\n 17,\n 11,\n 9,\n 13,\n 12,\n 10,\n 7,\n 5,\n 3,\n 1,\n 3\n];\nTables$1.t24HB = [\n 15,\n 13,\n 46,\n 80,\n 146,\n 262,\n 248,\n 434,\n 426,\n 669,\n 653,\n 649,\n 621,\n 517,\n 1032,\n 88,\n 14,\n 12,\n 21,\n 38,\n 71,\n 130,\n 122,\n 216,\n 209,\n 198,\n 327,\n 345,\n 319,\n 297,\n 279,\n 42,\n 47,\n 22,\n 41,\n 74,\n 68,\n 128,\n 120,\n 221,\n 207,\n 194,\n 182,\n 340,\n 315,\n 295,\n 541,\n 18,\n 81,\n 39,\n 75,\n 70,\n 134,\n 125,\n 116,\n 220,\n 204,\n 190,\n 178,\n 325,\n 311,\n 293,\n 271,\n 16,\n 147,\n 72,\n 69,\n 135,\n 127,\n 118,\n 112,\n 210,\n 200,\n 188,\n 352,\n 323,\n 306,\n 285,\n 540,\n 14,\n 263,\n 66,\n 129,\n 126,\n 119,\n 114,\n 214,\n 202,\n 192,\n 180,\n 341,\n 317,\n 301,\n 281,\n 262,\n 12,\n 249,\n 123,\n 121,\n 117,\n 113,\n 215,\n 206,\n 195,\n 185,\n 347,\n 330,\n 308,\n 291,\n 272,\n 520,\n 10,\n 435,\n 115,\n 111,\n 109,\n 211,\n 203,\n 196,\n 187,\n 353,\n 332,\n 313,\n 298,\n 283,\n 531,\n 381,\n 17,\n 427,\n 212,\n 208,\n 205,\n 201,\n 193,\n 186,\n 177,\n 169,\n 320,\n 303,\n 286,\n 268,\n 514,\n 377,\n 16,\n 335,\n 199,\n 197,\n 191,\n 189,\n 181,\n 174,\n 333,\n 321,\n 305,\n 289,\n 275,\n 521,\n 379,\n 371,\n 11,\n 668,\n 184,\n 183,\n 179,\n 175,\n 344,\n 331,\n 314,\n 304,\n 290,\n 277,\n 530,\n 383,\n 373,\n 366,\n 10,\n 652,\n 346,\n 171,\n 168,\n 164,\n 318,\n 309,\n 299,\n 287,\n 276,\n 263,\n 513,\n 375,\n 368,\n 362,\n 6,\n 648,\n 322,\n 316,\n 312,\n 307,\n 302,\n 292,\n 284,\n 269,\n 261,\n 512,\n 376,\n 370,\n 364,\n 359,\n 4,\n 620,\n 300,\n 296,\n 294,\n 288,\n 282,\n 273,\n 266,\n 515,\n 380,\n 374,\n 369,\n 365,\n 361,\n 357,\n 2,\n 1033,\n 280,\n 278,\n 274,\n 267,\n 264,\n 259,\n 382,\n 378,\n 372,\n 367,\n 363,\n 360,\n 358,\n 356,\n 0,\n 43,\n 20,\n 19,\n 17,\n 15,\n 13,\n 11,\n 9,\n 7,\n 6,\n 4,\n 7,\n 5,\n 3,\n 1,\n 3\n];\nTables$1.t32HB = [\n 1 << 0,\n 5 << 1,\n 4 << 1,\n 5 << 2,\n 6 << 1,\n 5 << 2,\n 4 << 2,\n 4 << 3,\n 7 << 1,\n 3 << 2,\n 6 << 2,\n 0 << 3,\n 7 << 2,\n 2 << 3,\n 3 << 3,\n 1 << 4\n];\nTables$1.t33HB = [\n 15 << 0,\n 14 << 1,\n 13 << 1,\n 12 << 2,\n 11 << 1,\n 10 << 2,\n 9 << 2,\n 8 << 3,\n 7 << 1,\n 6 << 2,\n 5 << 2,\n 4 << 3,\n 3 << 2,\n 2 << 3,\n 1 << 3,\n 0 << 4\n];\nTables$1.t1l = [1, 4, 3, 5];\nTables$1.t2l = [1, 4, 7, 4, 5, 7, 6, 7, 8];\nTables$1.t3l = [2, 3, 7, 4, 4, 7, 6, 7, 8];\nTables$1.t5l = [1, 4, 7, 8, 4, 5, 8, 9, 7, 8, 9, 10, 8, 8, 9, 10];\nTables$1.t6l = [3, 4, 6, 8, 4, 4, 6, 7, 5, 6, 7, 8, 7, 7, 8, 9];\nTables$1.t7l = [\n 1,\n 4,\n 7,\n 9,\n 9,\n 10,\n 4,\n 6,\n 8,\n 9,\n 9,\n 10,\n 7,\n 7,\n 9,\n 10,\n 10,\n 11,\n 8,\n 9,\n 10,\n 11,\n 11,\n 11,\n 8,\n 9,\n 10,\n 11,\n 11,\n 12,\n 9,\n 10,\n 11,\n 12,\n 12,\n 12\n];\nTables$1.t8l = [\n 2,\n 4,\n 7,\n 9,\n 9,\n 10,\n 4,\n 4,\n 6,\n 10,\n 10,\n 10,\n 7,\n 6,\n 8,\n 10,\n 10,\n 11,\n 9,\n 10,\n 10,\n 11,\n 11,\n 12,\n 9,\n 9,\n 10,\n 11,\n 12,\n 12,\n 10,\n 10,\n 11,\n 11,\n 13,\n 13\n];\nTables$1.t9l = [\n 3,\n 4,\n 6,\n 7,\n 9,\n 10,\n 4,\n 5,\n 6,\n 7,\n 8,\n 10,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 7,\n 7,\n 8,\n 9,\n 9,\n 10,\n 8,\n 8,\n 9,\n 9,\n 10,\n 11,\n 9,\n 9,\n 10,\n 10,\n 11,\n 11\n];\nTables$1.t10l = [\n 1,\n 4,\n 7,\n 9,\n 10,\n 10,\n 10,\n 11,\n 4,\n 6,\n 8,\n 9,\n 10,\n 11,\n 10,\n 10,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 11,\n 11,\n 8,\n 9,\n 10,\n 11,\n 12,\n 12,\n 11,\n 12,\n 9,\n 10,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 10,\n 11,\n 12,\n 12,\n 13,\n 13,\n 12,\n 13,\n 9,\n 10,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 10,\n 10,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13\n];\nTables$1.t11l = [\n 2,\n 4,\n 6,\n 8,\n 9,\n 10,\n 9,\n 10,\n 4,\n 5,\n 6,\n 8,\n 10,\n 10,\n 9,\n 10,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 10,\n 10,\n 8,\n 8,\n 9,\n 11,\n 10,\n 12,\n 10,\n 11,\n 9,\n 10,\n 10,\n 11,\n 11,\n 12,\n 11,\n 12,\n 9,\n 10,\n 11,\n 12,\n 12,\n 13,\n 12,\n 13,\n 9,\n 9,\n 9,\n 10,\n 11,\n 12,\n 12,\n 12,\n 9,\n 9,\n 10,\n 11,\n 12,\n 12,\n 12,\n 12\n];\nTables$1.t12l = [\n 4,\n 4,\n 6,\n 8,\n 9,\n 10,\n 10,\n 10,\n 4,\n 5,\n 6,\n 7,\n 9,\n 9,\n 10,\n 10,\n 6,\n 6,\n 7,\n 8,\n 9,\n 10,\n 9,\n 10,\n 7,\n 7,\n 8,\n 8,\n 9,\n 10,\n 10,\n 10,\n 8,\n 8,\n 9,\n 9,\n 10,\n 10,\n 10,\n 11,\n 9,\n 9,\n 10,\n 10,\n 10,\n 11,\n 10,\n 11,\n 9,\n 9,\n 9,\n 10,\n 10,\n 11,\n 11,\n 12,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12\n];\nTables$1.t13l = [\n 1,\n 5,\n 7,\n 8,\n 9,\n 10,\n 10,\n 11,\n 10,\n 11,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 4,\n 6,\n 8,\n 9,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 13,\n 14,\n 14,\n 14,\n 7,\n 8,\n 9,\n 10,\n 11,\n 11,\n 12,\n 12,\n 11,\n 12,\n 12,\n 13,\n 13,\n 14,\n 15,\n 15,\n 8,\n 9,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 15,\n 15,\n 9,\n 9,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 12,\n 13,\n 13,\n 14,\n 14,\n 15,\n 15,\n 16,\n 10,\n 10,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 13,\n 15,\n 15,\n 16,\n 16,\n 10,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 15,\n 15,\n 16,\n 16,\n 11,\n 11,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 15,\n 16,\n 18,\n 18,\n 10,\n 10,\n 11,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 16,\n 17,\n 17,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 15,\n 14,\n 15,\n 15,\n 16,\n 16,\n 16,\n 18,\n 17,\n 11,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 15,\n 14,\n 15,\n 16,\n 15,\n 16,\n 17,\n 18,\n 19,\n 12,\n 12,\n 12,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 15,\n 16,\n 17,\n 17,\n 17,\n 18,\n 12,\n 13,\n 13,\n 14,\n 14,\n 15,\n 14,\n 15,\n 16,\n 16,\n 17,\n 17,\n 17,\n 18,\n 18,\n 18,\n 13,\n 13,\n 14,\n 15,\n 15,\n 15,\n 16,\n 16,\n 16,\n 16,\n 16,\n 17,\n 18,\n 17,\n 18,\n 18,\n 14,\n 14,\n 14,\n 15,\n 15,\n 15,\n 17,\n 16,\n 16,\n 19,\n 17,\n 17,\n 17,\n 19,\n 18,\n 18,\n 13,\n 14,\n 15,\n 16,\n 16,\n 16,\n 17,\n 16,\n 17,\n 17,\n 18,\n 18,\n 21,\n 20,\n 21,\n 18\n];\nTables$1.t15l = [\n 3,\n 5,\n 6,\n 8,\n 8,\n 9,\n 10,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 14,\n 5,\n 5,\n 7,\n 8,\n 9,\n 9,\n 10,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 6,\n 7,\n 7,\n 8,\n 9,\n 9,\n 10,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 7,\n 8,\n 8,\n 9,\n 9,\n 10,\n 10,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 8,\n 8,\n 9,\n 9,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 9,\n 9,\n 9,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 10,\n 9,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 14,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 15,\n 14,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 15,\n 12,\n 12,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 15,\n 15,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 14,\n 15,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15\n];\nTables$1.t16_5l = [\n 1,\n 5,\n 7,\n 9,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 11,\n 4,\n 6,\n 8,\n 9,\n 10,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 14,\n 13,\n 14,\n 11,\n 7,\n 8,\n 9,\n 10,\n 11,\n 11,\n 12,\n 12,\n 13,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 12,\n 9,\n 9,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 14,\n 15,\n 15,\n 13,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 15,\n 15,\n 15,\n 12,\n 10,\n 10,\n 11,\n 11,\n 12,\n 13,\n 13,\n 14,\n 13,\n 14,\n 14,\n 15,\n 15,\n 15,\n 16,\n 13,\n 11,\n 11,\n 11,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 16,\n 13,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15,\n 17,\n 17,\n 13,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15,\n 16,\n 16,\n 16,\n 13,\n 12,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15,\n 16,\n 15,\n 16,\n 15,\n 14,\n 12,\n 13,\n 12,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 16,\n 16,\n 16,\n 17,\n 17,\n 16,\n 13,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 15,\n 16,\n 16,\n 16,\n 16,\n 16,\n 16,\n 15,\n 16,\n 14,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15,\n 17,\n 16,\n 16,\n 16,\n 16,\n 18,\n 14,\n 15,\n 14,\n 14,\n 14,\n 15,\n 15,\n 16,\n 16,\n 16,\n 18,\n 17,\n 17,\n 17,\n 19,\n 17,\n 14,\n 14,\n 15,\n 13,\n 14,\n 16,\n 16,\n 15,\n 16,\n 16,\n 17,\n 18,\n 17,\n 19,\n 17,\n 16,\n 14,\n 11,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 14,\n 14,\n 14,\n 12\n];\nTables$1.t16l = [\n 1,\n 5,\n 7,\n 9,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 10,\n 4,\n 6,\n 8,\n 9,\n 10,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 14,\n 13,\n 14,\n 10,\n 7,\n 8,\n 9,\n 10,\n 11,\n 11,\n 12,\n 12,\n 13,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 11,\n 9,\n 9,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 14,\n 15,\n 15,\n 12,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 15,\n 15,\n 15,\n 11,\n 10,\n 10,\n 11,\n 11,\n 12,\n 13,\n 13,\n 14,\n 13,\n 14,\n 14,\n 15,\n 15,\n 15,\n 16,\n 12,\n 11,\n 11,\n 11,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 16,\n 12,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15,\n 17,\n 17,\n 12,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15,\n 16,\n 16,\n 16,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15,\n 16,\n 15,\n 16,\n 15,\n 13,\n 12,\n 13,\n 12,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 16,\n 16,\n 16,\n 17,\n 17,\n 16,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 15,\n 16,\n 16,\n 16,\n 16,\n 16,\n 16,\n 15,\n 16,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15,\n 17,\n 16,\n 16,\n 16,\n 16,\n 18,\n 13,\n 15,\n 14,\n 14,\n 14,\n 15,\n 15,\n 16,\n 16,\n 16,\n 18,\n 17,\n 17,\n 17,\n 19,\n 17,\n 13,\n 14,\n 15,\n 13,\n 14,\n 16,\n 16,\n 15,\n 16,\n 16,\n 17,\n 18,\n 17,\n 19,\n 17,\n 16,\n 13,\n 10,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 10\n];\nTables$1.t24l = [\n 4,\n 5,\n 7,\n 8,\n 9,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 10,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 10,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 10,\n 7,\n 7,\n 8,\n 9,\n 9,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 9,\n 8,\n 8,\n 9,\n 9,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 9,\n 9,\n 9,\n 9,\n 10,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 13,\n 9,\n 10,\n 9,\n 10,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 9,\n 10,\n 10,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 9,\n 11,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 10,\n 11,\n 11,\n 11,\n 11,\n 11,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 10,\n 11,\n 11,\n 11,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 10,\n 12,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 10,\n 12,\n 12,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 10,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 13,\n 10,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 10,\n 13,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 10,\n 9,\n 9,\n 9,\n 9,\n 9,\n 9,\n 9,\n 9,\n 9,\n 9,\n 9,\n 10,\n 10,\n 10,\n 10,\n 6\n];\nTables$1.t32l = [\n 1 + 0,\n 4 + 1,\n 4 + 1,\n 5 + 2,\n 4 + 1,\n 6 + 2,\n 5 + 2,\n 6 + 3,\n 4 + 1,\n 5 + 2,\n 5 + 2,\n 6 + 3,\n 5 + 2,\n 6 + 3,\n 6 + 3,\n 6 + 4\n];\nTables$1.t33l = [\n 4 + 0,\n 4 + 1,\n 4 + 1,\n 4 + 2,\n 4 + 1,\n 4 + 2,\n 4 + 2,\n 4 + 3,\n 4 + 1,\n 4 + 2,\n 4 + 2,\n 4 + 3,\n 4 + 2,\n 4 + 3,\n 4 + 3,\n 4 + 4\n];\nTables$1.ht = [\n new HuffCodeTab(0, 0, null, null),\n new HuffCodeTab(2, 0, Tables$1.t1HB, Tables$1.t1l),\n new HuffCodeTab(3, 0, Tables$1.t2HB, Tables$1.t2l),\n new HuffCodeTab(3, 0, Tables$1.t3HB, Tables$1.t3l),\n new HuffCodeTab(0, 0, null, null),\n new HuffCodeTab(4, 0, Tables$1.t5HB, Tables$1.t5l),\n new HuffCodeTab(4, 0, Tables$1.t6HB, Tables$1.t6l),\n new HuffCodeTab(6, 0, Tables$1.t7HB, Tables$1.t7l),\n new HuffCodeTab(6, 0, Tables$1.t8HB, Tables$1.t8l),\n new HuffCodeTab(6, 0, Tables$1.t9HB, Tables$1.t9l),\n new HuffCodeTab(8, 0, Tables$1.t10HB, Tables$1.t10l),\n new HuffCodeTab(8, 0, Tables$1.t11HB, Tables$1.t11l),\n new HuffCodeTab(8, 0, Tables$1.t12HB, Tables$1.t12l),\n new HuffCodeTab(16, 0, Tables$1.t13HB, Tables$1.t13l),\n new HuffCodeTab(0, 0, null, Tables$1.t16_5l),\n new HuffCodeTab(16, 0, Tables$1.t15HB, Tables$1.t15l),\n new HuffCodeTab(1, 1, Tables$1.t16HB, Tables$1.t16l),\n new HuffCodeTab(2, 3, Tables$1.t16HB, Tables$1.t16l),\n new HuffCodeTab(3, 7, Tables$1.t16HB, Tables$1.t16l),\n new HuffCodeTab(4, 15, Tables$1.t16HB, Tables$1.t16l),\n new HuffCodeTab(6, 63, Tables$1.t16HB, Tables$1.t16l),\n new HuffCodeTab(8, 255, Tables$1.t16HB, Tables$1.t16l),\n new HuffCodeTab(10, 1023, Tables$1.t16HB, Tables$1.t16l),\n new HuffCodeTab(13, 8191, Tables$1.t16HB, Tables$1.t16l),\n new HuffCodeTab(4, 15, Tables$1.t24HB, Tables$1.t24l),\n new HuffCodeTab(5, 31, Tables$1.t24HB, Tables$1.t24l),\n new HuffCodeTab(6, 63, Tables$1.t24HB, Tables$1.t24l),\n new HuffCodeTab(7, 127, Tables$1.t24HB, Tables$1.t24l),\n new HuffCodeTab(8, 255, Tables$1.t24HB, Tables$1.t24l),\n new HuffCodeTab(9, 511, Tables$1.t24HB, Tables$1.t24l),\n new HuffCodeTab(11, 2047, Tables$1.t24HB, Tables$1.t24l),\n new HuffCodeTab(13, 8191, Tables$1.t24HB, Tables$1.t24l),\n new HuffCodeTab(0, 0, Tables$1.t32HB, Tables$1.t32l),\n new HuffCodeTab(0, 0, Tables$1.t33HB, Tables$1.t33l)\n];\nTables$1.largetbl = [\n 65540,\n 327685,\n 458759,\n 589832,\n 655369,\n 655370,\n 720906,\n 720907,\n 786443,\n 786444,\n 786444,\n 851980,\n 851980,\n 851980,\n 917517,\n 655370,\n 262149,\n 393222,\n 524295,\n 589832,\n 655369,\n 720906,\n 720906,\n 720907,\n 786443,\n 786443,\n 786444,\n 851980,\n 917516,\n 851980,\n 917516,\n 655370,\n 458759,\n 524295,\n 589832,\n 655369,\n 720905,\n 720906,\n 786442,\n 786443,\n 851979,\n 786443,\n 851979,\n 851980,\n 851980,\n 917516,\n 917517,\n 720905,\n 589832,\n 589832,\n 655369,\n 720905,\n 720906,\n 786442,\n 786442,\n 786443,\n 851979,\n 851979,\n 917515,\n 917516,\n 917516,\n 983052,\n 983052,\n 786441,\n 655369,\n 655369,\n 720905,\n 720906,\n 786442,\n 786442,\n 851978,\n 851979,\n 851979,\n 917515,\n 917516,\n 917516,\n 983052,\n 983052,\n 983053,\n 720905,\n 655370,\n 655369,\n 720906,\n 720906,\n 786442,\n 851978,\n 851979,\n 917515,\n 851979,\n 917515,\n 917516,\n 983052,\n 983052,\n 983052,\n 1048588,\n 786441,\n 720906,\n 720906,\n 720906,\n 786442,\n 851978,\n 851979,\n 851979,\n 851979,\n 917515,\n 917516,\n 917516,\n 917516,\n 983052,\n 983052,\n 1048589,\n 786441,\n 720907,\n 720906,\n 786442,\n 786442,\n 851979,\n 851979,\n 851979,\n 917515,\n 917516,\n 983052,\n 983052,\n 983052,\n 983052,\n 1114125,\n 1114125,\n 786442,\n 720907,\n 786443,\n 786443,\n 851979,\n 851979,\n 851979,\n 917515,\n 917515,\n 983051,\n 983052,\n 983052,\n 983052,\n 1048588,\n 1048589,\n 1048589,\n 786442,\n 786443,\n 786443,\n 786443,\n 851979,\n 851979,\n 917515,\n 917515,\n 983052,\n 983052,\n 983052,\n 983052,\n 1048588,\n 983053,\n 1048589,\n 983053,\n 851978,\n 786444,\n 851979,\n 786443,\n 851979,\n 917515,\n 917516,\n 917516,\n 917516,\n 983052,\n 1048588,\n 1048588,\n 1048589,\n 1114125,\n 1114125,\n 1048589,\n 786442,\n 851980,\n 851980,\n 851979,\n 851979,\n 917515,\n 917516,\n 983052,\n 1048588,\n 1048588,\n 1048588,\n 1048588,\n 1048589,\n 1048589,\n 983053,\n 1048589,\n 851978,\n 851980,\n 917516,\n 917516,\n 917516,\n 917516,\n 983052,\n 983052,\n 983052,\n 983052,\n 1114124,\n 1048589,\n 1048589,\n 1048589,\n 1048589,\n 1179661,\n 851978,\n 983052,\n 917516,\n 917516,\n 917516,\n 983052,\n 983052,\n 1048588,\n 1048588,\n 1048589,\n 1179661,\n 1114125,\n 1114125,\n 1114125,\n 1245197,\n 1114125,\n 851978,\n 917517,\n 983052,\n 851980,\n 917516,\n 1048588,\n 1048588,\n 983052,\n 1048589,\n 1048589,\n 1114125,\n 1179661,\n 1114125,\n 1245197,\n 1114125,\n 1048589,\n 851978,\n 655369,\n 655369,\n 655369,\n 720905,\n 720905,\n 786441,\n 786441,\n 786441,\n 851977,\n 851977,\n 851977,\n 851978,\n 851978,\n 851978,\n 851978,\n 655366\n];\nTables$1.table23 = [\n 65538,\n 262147,\n 458759,\n 262148,\n 327684,\n 458759,\n 393222,\n 458759,\n 524296\n];\nTables$1.table56 = [\n 65539,\n 262148,\n 458758,\n 524296,\n 262148,\n 327684,\n 524294,\n 589831,\n 458757,\n 524294,\n 589831,\n 655368,\n 524295,\n 524295,\n 589832,\n 655369\n];\nTables$1.bitrate_table = [\n [\n 0,\n 8,\n 16,\n 24,\n 32,\n 40,\n 48,\n 56,\n 64,\n 80,\n 96,\n 112,\n 128,\n 144,\n 160,\n -1\n ],\n [\n 0,\n 32,\n 40,\n 48,\n 56,\n 64,\n 80,\n 96,\n 112,\n 128,\n 160,\n 192,\n 224,\n 256,\n 320,\n -1\n ],\n [0, 8, 16, 24, 32, 40, 48, 56, 64, -1, -1, -1, -1, -1, -1, -1]\n];\nTables$1.samplerate_table = [\n [22050, 24e3, 16e3, -1],\n [44100, 48e3, 32e3, -1],\n [11025, 12e3, 8e3, -1]\n];\nTables$1.scfsi_band = [0, 6, 11, 16, 21];\nvar VbrMode$4 = common.VbrMode;\nvar Float = common.Float;\nvar Util$1 = common.Util;\nvar new_float$3 = common.new_float;\nvar new_int$3 = common.new_int;\nvar assert$7 = common.assert;\nQuantizePVT.Q_MAX = 256 + 1;\nQuantizePVT.Q_MAX2 = 116;\nQuantizePVT.LARGE_BITS = 1e5;\nQuantizePVT.IXMAX_VAL = 8206;\nfunction QuantizePVT() {\n var tak = null;\n var rv = null;\n var psy = null;\n this.setModules = function(_tk, _rv, _psy) {\n tak = _tk;\n rv = _rv;\n psy = _psy;\n };\n function POW20(x) {\n return pow20[x + QuantizePVT.Q_MAX2];\n }\n this.IPOW20 = function(x) {\n return ipow20[x];\n };\n var DBL_EPSILON = 2220446049250313e-31;\n var IXMAX_VAL = QuantizePVT.IXMAX_VAL;\n var PRECALC_SIZE = IXMAX_VAL + 2;\n var Q_MAX = QuantizePVT.Q_MAX;\n var Q_MAX2 = QuantizePVT.Q_MAX2;\n var NSATHSCALE = 100;\n this.nr_of_sfb_block = [\n [\n [6, 5, 5, 5],\n [9, 9, 9, 9],\n [6, 9, 9, 9]\n ],\n [\n [6, 5, 7, 3],\n [9, 9, 12, 6],\n [6, 9, 12, 6]\n ],\n [\n [11, 10, 0, 0],\n [18, 18, 0, 0],\n [15, 18, 0, 0]\n ],\n [\n [7, 7, 7, 0],\n [12, 12, 12, 0],\n [6, 15, 12, 0]\n ],\n [\n [6, 6, 6, 3],\n [12, 9, 9, 6],\n [6, 12, 9, 6]\n ],\n [\n [8, 8, 5, 0],\n [15, 12, 9, 0],\n [6, 18, 9, 0]\n ]\n ];\n var pretab = [\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 1,\n 1,\n 1,\n 2,\n 2,\n 3,\n 3,\n 3,\n 2,\n 0\n ];\n this.pretab = pretab;\n this.sfBandIndex = [\n new ScaleFac(\n [\n 0,\n 6,\n 12,\n 18,\n 24,\n 30,\n 36,\n 44,\n 54,\n 66,\n 80,\n 96,\n 116,\n 140,\n 168,\n 200,\n 238,\n 284,\n 336,\n 396,\n 464,\n 522,\n 576\n ],\n [0, 4, 8, 12, 18, 24, 32, 42, 56, 74, 100, 132, 174, 192],\n [0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0]\n ),\n new ScaleFac(\n [\n 0,\n 6,\n 12,\n 18,\n 24,\n 30,\n 36,\n 44,\n 54,\n 66,\n 80,\n 96,\n 114,\n 136,\n 162,\n 194,\n 232,\n 278,\n 332,\n 394,\n 464,\n 540,\n 576\n ],\n [0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 136, 180, 192],\n [0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0]\n ),\n new ScaleFac(\n [\n 0,\n 6,\n 12,\n 18,\n 24,\n 30,\n 36,\n 44,\n 54,\n 66,\n 80,\n 96,\n 116,\n 140,\n 168,\n 200,\n 238,\n 284,\n 336,\n 396,\n 464,\n 522,\n 576\n ],\n [0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 134, 174, 192],\n [0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0]\n ),\n new ScaleFac(\n [\n 0,\n 4,\n 8,\n 12,\n 16,\n 20,\n 24,\n 30,\n 36,\n 44,\n 52,\n 62,\n 74,\n 90,\n 110,\n 134,\n 162,\n 196,\n 238,\n 288,\n 342,\n 418,\n 576\n ],\n [0, 4, 8, 12, 16, 22, 30, 40, 52, 66, 84, 106, 136, 192],\n [0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0]\n ),\n new ScaleFac(\n [\n 0,\n 4,\n 8,\n 12,\n 16,\n 20,\n 24,\n 30,\n 36,\n 42,\n 50,\n 60,\n 72,\n 88,\n 106,\n 128,\n 156,\n 190,\n 230,\n 276,\n 330,\n 384,\n 576\n ],\n [0, 4, 8, 12, 16, 22, 28, 38, 50, 64, 80, 100, 126, 192],\n [0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0]\n ),\n new ScaleFac(\n [\n 0,\n 4,\n 8,\n 12,\n 16,\n 20,\n 24,\n 30,\n 36,\n 44,\n 54,\n 66,\n 82,\n 102,\n 126,\n 156,\n 194,\n 240,\n 296,\n 364,\n 448,\n 550,\n 576\n ],\n [0, 4, 8, 12, 16, 22, 30, 42, 58, 78, 104, 138, 180, 192],\n [0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0]\n ),\n new ScaleFac(\n [\n 0,\n 6,\n 12,\n 18,\n 24,\n 30,\n 36,\n 44,\n 54,\n 66,\n 80,\n 96,\n 116,\n 140,\n 168,\n 200,\n 238,\n 284,\n 336,\n 396,\n 464,\n 522,\n 576\n ],\n [\n 0 / 3,\n 12 / 3,\n 24 / 3,\n 36 / 3,\n 54 / 3,\n 78 / 3,\n 108 / 3,\n 144 / 3,\n 186 / 3,\n 240 / 3,\n 312 / 3,\n 402 / 3,\n 522 / 3,\n 576 / 3\n ],\n [0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0]\n ),\n new ScaleFac(\n [\n 0,\n 6,\n 12,\n 18,\n 24,\n 30,\n 36,\n 44,\n 54,\n 66,\n 80,\n 96,\n 116,\n 140,\n 168,\n 200,\n 238,\n 284,\n 336,\n 396,\n 464,\n 522,\n 576\n ],\n [\n 0 / 3,\n 12 / 3,\n 24 / 3,\n 36 / 3,\n 54 / 3,\n 78 / 3,\n 108 / 3,\n 144 / 3,\n 186 / 3,\n 240 / 3,\n 312 / 3,\n 402 / 3,\n 522 / 3,\n 576 / 3\n ],\n [0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0]\n ),\n new ScaleFac(\n [\n 0,\n 12,\n 24,\n 36,\n 48,\n 60,\n 72,\n 88,\n 108,\n 132,\n 160,\n 192,\n 232,\n 280,\n 336,\n 400,\n 476,\n 566,\n 568,\n 570,\n 572,\n 574,\n 576\n ],\n [\n 0 / 3,\n 24 / 3,\n 48 / 3,\n 72 / 3,\n 108 / 3,\n 156 / 3,\n 216 / 3,\n 288 / 3,\n 372 / 3,\n 480 / 3,\n 486 / 3,\n 492 / 3,\n 498 / 3,\n 576 / 3\n ],\n [0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0]\n )\n ];\n var pow20 = new_float$3(Q_MAX + Q_MAX2 + 1);\n var ipow20 = new_float$3(Q_MAX);\n var pow43 = new_float$3(PRECALC_SIZE);\n var adj43 = new_float$3(PRECALC_SIZE);\n this.adj43 = adj43;\n function ATHmdct(gfp, f) {\n var ath = psy.ATHformula(f, gfp);\n ath -= NSATHSCALE;\n ath = Math.pow(10, ath / 10 + gfp.ATHlower);\n return ath;\n }\n function compute_ath(gfp) {\n var ATH_l = gfp.internal_flags.ATH.l;\n var ATH_psfb21 = gfp.internal_flags.ATH.psfb21;\n var ATH_s = gfp.internal_flags.ATH.s;\n var ATH_psfb12 = gfp.internal_flags.ATH.psfb12;\n var gfc = gfp.internal_flags;\n var samp_freq = gfp.out_samplerate;\n for (var sfb = 0; sfb < Encoder.SBMAX_l; sfb++) {\n var start = gfc.scalefac_band.l[sfb];\n var end = gfc.scalefac_band.l[sfb + 1];\n ATH_l[sfb] = Float.MAX_VALUE;\n for (var i = start; i < end; i++) {\n var freq = i * samp_freq / (2 * 576);\n var ATH_f = ATHmdct(gfp, freq);\n ATH_l[sfb] = Math.min(ATH_l[sfb], ATH_f);\n }\n }\n for (var sfb = 0; sfb < Encoder.PSFB21; sfb++) {\n var start = gfc.scalefac_band.psfb21[sfb];\n var end = gfc.scalefac_band.psfb21[sfb + 1];\n ATH_psfb21[sfb] = Float.MAX_VALUE;\n for (var i = start; i < end; i++) {\n var freq = i * samp_freq / (2 * 576);\n var ATH_f = ATHmdct(gfp, freq);\n ATH_psfb21[sfb] = Math.min(ATH_psfb21[sfb], ATH_f);\n }\n }\n for (var sfb = 0; sfb < Encoder.SBMAX_s; sfb++) {\n var start = gfc.scalefac_band.s[sfb];\n var end = gfc.scalefac_band.s[sfb + 1];\n ATH_s[sfb] = Float.MAX_VALUE;\n for (var i = start; i < end; i++) {\n var freq = i * samp_freq / (2 * 192);\n var ATH_f = ATHmdct(gfp, freq);\n ATH_s[sfb] = Math.min(ATH_s[sfb], ATH_f);\n }\n ATH_s[sfb] *= gfc.scalefac_band.s[sfb + 1] - gfc.scalefac_band.s[sfb];\n }\n for (var sfb = 0; sfb < Encoder.PSFB12; sfb++) {\n var start = gfc.scalefac_band.psfb12[sfb];\n var end = gfc.scalefac_band.psfb12[sfb + 1];\n ATH_psfb12[sfb] = Float.MAX_VALUE;\n for (var i = start; i < end; i++) {\n var freq = i * samp_freq / (2 * 192);\n var ATH_f = ATHmdct(gfp, freq);\n ATH_psfb12[sfb] = Math.min(ATH_psfb12[sfb], ATH_f);\n }\n ATH_psfb12[sfb] *= gfc.scalefac_band.s[13] - gfc.scalefac_band.s[12];\n }\n if (gfp.noATH) {\n for (var sfb = 0; sfb < Encoder.SBMAX_l; sfb++) {\n ATH_l[sfb] = 1e-20;\n }\n for (var sfb = 0; sfb < Encoder.PSFB21; sfb++) {\n ATH_psfb21[sfb] = 1e-20;\n }\n for (var sfb = 0; sfb < Encoder.SBMAX_s; sfb++) {\n ATH_s[sfb] = 1e-20;\n }\n for (var sfb = 0; sfb < Encoder.PSFB12; sfb++) {\n ATH_psfb12[sfb] = 1e-20;\n }\n }\n gfc.ATH.floor = 10 * Math.log10(ATHmdct(gfp, -1));\n }\n this.iteration_init = function(gfp) {\n var gfc = gfp.internal_flags;\n var l3_side = gfc.l3_side;\n var i;\n if (gfc.iteration_init_init == 0) {\n gfc.iteration_init_init = 1;\n l3_side.main_data_begin = 0;\n compute_ath(gfp);\n pow43[0] = 0;\n for (i = 1; i < PRECALC_SIZE; i++)\n pow43[i] = Math.pow(i, 4 / 3);\n for (i = 0; i < PRECALC_SIZE - 1; i++) {\n adj43[i] = i + 1 - Math.pow(0.5 * (pow43[i] + pow43[i + 1]), 0.75);\n }\n adj43[i] = 0.5;\n for (i = 0; i < Q_MAX; i++)\n ipow20[i] = Math.pow(2, (i - 210) * -0.1875);\n for (i = 0; i <= Q_MAX + Q_MAX2; i++) {\n pow20[i] = Math.pow(2, (i - 210 - Q_MAX2) * 0.25);\n }\n tak.huffman_init(gfc);\n {\n var bass, alto, treble, sfb21;\n i = gfp.exp_nspsytune >> 2 & 63;\n if (i >= 32)\n i -= 64;\n bass = Math.pow(10, i / 4 / 10);\n i = gfp.exp_nspsytune >> 8 & 63;\n if (i >= 32)\n i -= 64;\n alto = Math.pow(10, i / 4 / 10);\n i = gfp.exp_nspsytune >> 14 & 63;\n if (i >= 32)\n i -= 64;\n treble = Math.pow(10, i / 4 / 10);\n i = gfp.exp_nspsytune >> 20 & 63;\n if (i >= 32)\n i -= 64;\n sfb21 = treble * Math.pow(10, i / 4 / 10);\n for (i = 0; i < Encoder.SBMAX_l; i++) {\n var f;\n if (i <= 6)\n f = bass;\n else if (i <= 13)\n f = alto;\n else if (i <= 20)\n f = treble;\n else\n f = sfb21;\n gfc.nsPsy.longfact[i] = f;\n }\n for (i = 0; i < Encoder.SBMAX_s; i++) {\n var f;\n if (i <= 5)\n f = bass;\n else if (i <= 10)\n f = alto;\n else if (i <= 11)\n f = treble;\n else\n f = sfb21;\n gfc.nsPsy.shortfact[i] = f;\n }\n }\n }\n };\n this.on_pe = function(gfp, pe, targ_bits, mean_bits, gr, cbr) {\n var gfc = gfp.internal_flags;\n var tbits = 0;\n var bits;\n var add_bits = new_int$3(2);\n var ch;\n var mb = new MeanBits$1(tbits);\n var extra_bits = rv.ResvMaxBits(gfp, mean_bits, mb, cbr);\n tbits = mb.bits;\n var max_bits = tbits + extra_bits;\n if (max_bits > LameInternalFlags$1.MAX_BITS_PER_GRANULE) {\n max_bits = LameInternalFlags$1.MAX_BITS_PER_GRANULE;\n }\n for (bits = 0, ch = 0; ch < gfc.channels_out; ++ch) {\n targ_bits[ch] = Math.min(\n LameInternalFlags$1.MAX_BITS_PER_CHANNEL,\n tbits / gfc.channels_out\n );\n add_bits[ch] = 0 | targ_bits[ch] * pe[gr][ch] / 700 - targ_bits[ch];\n if (add_bits[ch] > mean_bits * 3 / 4)\n add_bits[ch] = mean_bits * 3 / 4;\n if (add_bits[ch] < 0)\n add_bits[ch] = 0;\n if (add_bits[ch] + targ_bits[ch] > LameInternalFlags$1.MAX_BITS_PER_CHANNEL) {\n add_bits[ch] = Math.max(\n 0,\n LameInternalFlags$1.MAX_BITS_PER_CHANNEL - targ_bits[ch]\n );\n }\n bits += add_bits[ch];\n }\n if (bits > extra_bits) {\n for (ch = 0; ch < gfc.channels_out; ++ch) {\n add_bits[ch] = extra_bits * add_bits[ch] / bits;\n }\n }\n for (ch = 0; ch < gfc.channels_out; ++ch) {\n targ_bits[ch] += add_bits[ch];\n extra_bits -= add_bits[ch];\n }\n for (bits = 0, ch = 0; ch < gfc.channels_out; ++ch) {\n bits += targ_bits[ch];\n }\n if (bits > LameInternalFlags$1.MAX_BITS_PER_GRANULE) {\n var sum = 0;\n for (ch = 0; ch < gfc.channels_out; ++ch) {\n targ_bits[ch] *= LameInternalFlags$1.MAX_BITS_PER_GRANULE;\n targ_bits[ch] /= bits;\n sum += targ_bits[ch];\n }\n }\n return max_bits;\n };\n this.reduce_side = function(targ_bits, ms_ener_ratio, mean_bits, max_bits) {\n assert$7(\n targ_bits[0] + targ_bits[1] <= LameInternalFlags$1.MAX_BITS_PER_GRANULE\n );\n var fac = 0.33 * (0.5 - ms_ener_ratio) / 0.5;\n if (fac < 0)\n fac = 0;\n if (fac > 0.5)\n fac = 0.5;\n var move_bits = 0 | fac * 0.5 * (targ_bits[0] + targ_bits[1]);\n if (move_bits > LameInternalFlags$1.MAX_BITS_PER_CHANNEL - targ_bits[0]) {\n move_bits = LameInternalFlags$1.MAX_BITS_PER_CHANNEL - targ_bits[0];\n }\n if (move_bits < 0)\n move_bits = 0;\n if (targ_bits[1] >= 125) {\n if (targ_bits[1] - move_bits > 125) {\n if (targ_bits[0] < mean_bits)\n targ_bits[0] += move_bits;\n targ_bits[1] -= move_bits;\n } else {\n targ_bits[0] += targ_bits[1] - 125;\n targ_bits[1] = 125;\n }\n }\n move_bits = targ_bits[0] + targ_bits[1];\n if (move_bits > max_bits) {\n targ_bits[0] = max_bits * targ_bits[0] / move_bits;\n targ_bits[1] = max_bits * targ_bits[1] / move_bits;\n }\n assert$7(targ_bits[0] <= LameInternalFlags$1.MAX_BITS_PER_CHANNEL);\n assert$7(targ_bits[1] <= LameInternalFlags$1.MAX_BITS_PER_CHANNEL);\n assert$7(\n targ_bits[0] + targ_bits[1] <= LameInternalFlags$1.MAX_BITS_PER_GRANULE\n );\n };\n this.athAdjust = function(a, x, athFloor) {\n var o = 90.30873362;\n var p2 = 94.82444863;\n var u = Util$1.FAST_LOG10_X(x, 10);\n var v = a * a;\n var w = 0;\n u -= athFloor;\n if (v > 1e-20)\n w = 1 + Util$1.FAST_LOG10_X(v, 10 / o);\n if (w < 0)\n w = 0;\n u *= w;\n u += athFloor + o - p2;\n return Math.pow(10, 0.1 * u);\n };\n this.calc_xmin = function(gfp, ratio, cod_info, pxmin) {\n var pxminPos = 0;\n var gfc = gfp.internal_flags;\n var gsfb;\n var j = 0;\n var ath_over = 0;\n var ATH2 = gfc.ATH;\n var xr = cod_info.xr;\n var enable_athaa_fix = gfp.VBR == VbrMode$4.vbr_mtrh ? 1 : 0;\n var masking_lower = gfc.masking_lower;\n if (gfp.VBR == VbrMode$4.vbr_mtrh || gfp.VBR == VbrMode$4.vbr_mt) {\n masking_lower = 1;\n }\n for (gsfb = 0; gsfb < cod_info.psy_lmax; gsfb++) {\n var en0, xmin;\n var rh1, rh2;\n var width, l;\n if (gfp.VBR == VbrMode$4.vbr_rh || gfp.VBR == VbrMode$4.vbr_mtrh) {\n xmin = athAdjust(ATH2.adjust, ATH2.l[gsfb], ATH2.floor);\n } else\n xmin = ATH2.adjust * ATH2.l[gsfb];\n width = cod_info.width[gsfb];\n rh1 = xmin / width;\n rh2 = DBL_EPSILON;\n l = width >> 1;\n en0 = 0;\n do {\n var xa, xb;\n xa = xr[j] * xr[j];\n en0 += xa;\n rh2 += xa < rh1 ? xa : rh1;\n j++;\n xb = xr[j] * xr[j];\n en0 += xb;\n rh2 += xb < rh1 ? xb : rh1;\n j++;\n } while (--l > 0);\n if (en0 > xmin)\n ath_over++;\n if (gsfb == Encoder.SBPSY_l) {\n var x = xmin * gfc.nsPsy.longfact[gsfb];\n if (rh2 < x) {\n rh2 = x;\n }\n }\n if (enable_athaa_fix != 0) {\n xmin = rh2;\n }\n if (!gfp.ATHonly) {\n var e = ratio.en.l[gsfb];\n if (e > 0) {\n var x;\n x = en0 * ratio.thm.l[gsfb] * masking_lower / e;\n if (enable_athaa_fix != 0)\n x *= gfc.nsPsy.longfact[gsfb];\n if (xmin < x)\n xmin = x;\n }\n }\n if (enable_athaa_fix != 0)\n pxmin[pxminPos++] = xmin;\n else\n pxmin[pxminPos++] = xmin * gfc.nsPsy.longfact[gsfb];\n }\n var max_nonzero = 575;\n if (cod_info.block_type != Encoder.SHORT_TYPE) {\n var k = 576;\n while (k-- != 0 && BitStream$1.EQ(xr[k], 0)) {\n max_nonzero = k;\n }\n }\n cod_info.max_nonzero_coeff = max_nonzero;\n for (var sfb = cod_info.sfb_smin; gsfb < cod_info.psymax; sfb++, gsfb += 3) {\n var width, b;\n var tmpATH;\n if (gfp.VBR == VbrMode$4.vbr_rh || gfp.VBR == VbrMode$4.vbr_mtrh) {\n tmpATH = athAdjust(ATH2.adjust, ATH2.s[sfb], ATH2.floor);\n } else\n tmpATH = ATH2.adjust * ATH2.s[sfb];\n width = cod_info.width[gsfb];\n for (b = 0; b < 3; b++) {\n var en0 = 0;\n var xmin;\n var rh1, rh2;\n var l = width >> 1;\n rh1 = tmpATH / width;\n rh2 = DBL_EPSILON;\n do {\n var xa, xb;\n xa = xr[j] * xr[j];\n en0 += xa;\n rh2 += xa < rh1 ? xa : rh1;\n j++;\n xb = xr[j] * xr[j];\n en0 += xb;\n rh2 += xb < rh1 ? xb : rh1;\n j++;\n } while (--l > 0);\n if (en0 > tmpATH)\n ath_over++;\n if (sfb == Encoder.SBPSY_s) {\n var x = tmpATH * gfc.nsPsy.shortfact[sfb];\n if (rh2 < x) {\n rh2 = x;\n }\n }\n if (enable_athaa_fix != 0)\n xmin = rh2;\n else\n xmin = tmpATH;\n if (!gfp.ATHonly && !gfp.ATHshort) {\n var e = ratio.en.s[sfb][b];\n if (e > 0) {\n var x;\n x = en0 * ratio.thm.s[sfb][b] * masking_lower / e;\n if (enable_athaa_fix != 0)\n x *= gfc.nsPsy.shortfact[sfb];\n if (xmin < x)\n xmin = x;\n }\n }\n if (enable_athaa_fix != 0)\n pxmin[pxminPos++] = xmin;\n else\n pxmin[pxminPos++] = xmin * gfc.nsPsy.shortfact[sfb];\n }\n if (gfp.useTemporal) {\n if (pxmin[pxminPos - 3] > pxmin[pxminPos - 3 + 1]) {\n pxmin[pxminPos - 3 + 1] += (pxmin[pxminPos - 3] - pxmin[pxminPos - 3 + 1]) * gfc.decay;\n }\n if (pxmin[pxminPos - 3 + 1] > pxmin[pxminPos - 3 + 2]) {\n pxmin[pxminPos - 3 + 2] += (pxmin[pxminPos - 3 + 1] - pxmin[pxminPos - 3 + 2]) * gfc.decay;\n }\n }\n }\n return ath_over;\n };\n function StartLine(j) {\n this.s = j;\n }\n this.calc_noise_core = function(cod_info, startline, l, step) {\n var noise = 0;\n var j = startline.s;\n var ix = cod_info.l3_enc;\n if (j > cod_info.count1) {\n while (l-- != 0) {\n var temp;\n temp = cod_info.xr[j];\n j++;\n noise += temp * temp;\n temp = cod_info.xr[j];\n j++;\n noise += temp * temp;\n }\n } else if (j > cod_info.big_values) {\n var ix01 = new_float$3(2);\n ix01[0] = 0;\n ix01[1] = step;\n while (l-- != 0) {\n var temp;\n temp = Math.abs(cod_info.xr[j]) - ix01[ix[j]];\n j++;\n noise += temp * temp;\n temp = Math.abs(cod_info.xr[j]) - ix01[ix[j]];\n j++;\n noise += temp * temp;\n }\n } else {\n while (l-- != 0) {\n var temp;\n temp = Math.abs(cod_info.xr[j]) - pow43[ix[j]] * step;\n j++;\n noise += temp * temp;\n temp = Math.abs(cod_info.xr[j]) - pow43[ix[j]] * step;\n j++;\n noise += temp * temp;\n }\n }\n startline.s = j;\n return noise;\n };\n this.calc_noise = function(cod_info, l3_xmin, distort, res, prev_noise) {\n var distortPos = 0;\n var l3_xminPos = 0;\n var sfb;\n var l;\n var over = 0;\n var over_noise_db = 0;\n var tot_noise_db = 0;\n var max_noise = -20;\n var j = 0;\n var scalefac = cod_info.scalefac;\n var scalefacPos = 0;\n res.over_SSD = 0;\n for (sfb = 0; sfb < cod_info.psymax; sfb++) {\n var s = cod_info.global_gain - (scalefac[scalefacPos++] + (cod_info.preflag != 0 ? pretab[sfb] : 0) << cod_info.scalefac_scale + 1) - cod_info.subblock_gain[cod_info.window[sfb]] * 8;\n var noise = 0;\n if (prev_noise != null && prev_noise.step[sfb] == s) {\n noise = prev_noise.noise[sfb];\n j += cod_info.width[sfb];\n distort[distortPos++] = noise / l3_xmin[l3_xminPos++];\n noise = prev_noise.noise_log[sfb];\n } else {\n var step = POW20(s);\n l = cod_info.width[sfb] >> 1;\n if (j + cod_info.width[sfb] > cod_info.max_nonzero_coeff) {\n var usefullsize;\n usefullsize = cod_info.max_nonzero_coeff - j + 1;\n if (usefullsize > 0)\n l = usefullsize >> 1;\n else\n l = 0;\n }\n var sl = new StartLine(j);\n noise = this.calc_noise_core(cod_info, sl, l, step);\n j = sl.s;\n if (prev_noise != null) {\n prev_noise.step[sfb] = s;\n prev_noise.noise[sfb] = noise;\n }\n noise = distort[distortPos++] = noise / l3_xmin[l3_xminPos++];\n noise = Util$1.FAST_LOG10(Math.max(noise, 1e-20));\n if (prev_noise != null) {\n prev_noise.noise_log[sfb] = noise;\n }\n }\n if (prev_noise != null) {\n prev_noise.global_gain = cod_info.global_gain;\n }\n tot_noise_db += noise;\n if (noise > 0) {\n var tmp;\n tmp = Math.max(0 | noise * 10 + 0.5, 1);\n res.over_SSD += tmp * tmp;\n over++;\n over_noise_db += noise;\n }\n max_noise = Math.max(max_noise, noise);\n }\n res.over_count = over;\n res.tot_noise = tot_noise_db;\n res.over_noise = over_noise_db;\n res.max_noise = max_noise;\n return over;\n };\n this.set_pinfo = function(gfp, cod_info, ratio, gr, ch) {\n var gfc = gfp.internal_flags;\n var sfb, sfb2;\n var l;\n var en0, en1;\n var ifqstep = cod_info.scalefac_scale == 0 ? 0.5 : 1;\n var scalefac = cod_info.scalefac;\n var l3_xmin = new_float$3(L3Side.SFBMAX);\n var xfsf = new_float$3(L3Side.SFBMAX);\n var noise = new CalcNoiseResult();\n calc_xmin(gfp, ratio, cod_info, l3_xmin);\n calc_noise(cod_info, l3_xmin, xfsf, noise, null);\n var j = 0;\n sfb2 = cod_info.sfb_lmax;\n if (cod_info.block_type != Encoder.SHORT_TYPE && cod_info.mixed_block_flag == 0) {\n sfb2 = 22;\n }\n for (sfb = 0; sfb < sfb2; sfb++) {\n var start = gfc.scalefac_band.l[sfb];\n var end = gfc.scalefac_band.l[sfb + 1];\n var bw = end - start;\n for (en0 = 0; j < end; j++)\n en0 += cod_info.xr[j] * cod_info.xr[j];\n en0 /= bw;\n en1 = 1e15;\n gfc.pinfo.en[gr][ch][sfb] = en1 * en0;\n gfc.pinfo.xfsf[gr][ch][sfb] = en1 * l3_xmin[sfb] * xfsf[sfb] / bw;\n if (ratio.en.l[sfb] > 0 && !gfp.ATHonly)\n en0 = en0 / ratio.en.l[sfb];\n else\n en0 = 0;\n gfc.pinfo.thr[gr][ch][sfb] = en1 * Math.max(en0 * ratio.thm.l[sfb], gfc.ATH.l[sfb]);\n gfc.pinfo.LAMEsfb[gr][ch][sfb] = 0;\n if (cod_info.preflag != 0 && sfb >= 11) {\n gfc.pinfo.LAMEsfb[gr][ch][sfb] = -ifqstep * pretab[sfb];\n }\n if (sfb < Encoder.SBPSY_l) {\n assert$7(scalefac[sfb] >= 0);\n gfc.pinfo.LAMEsfb[gr][ch][sfb] -= ifqstep * scalefac[sfb];\n }\n }\n if (cod_info.block_type == Encoder.SHORT_TYPE) {\n sfb2 = sfb;\n for (sfb = cod_info.sfb_smin; sfb < Encoder.SBMAX_s; sfb++) {\n var start = gfc.scalefac_band.s[sfb];\n var end = gfc.scalefac_band.s[sfb + 1];\n var bw = end - start;\n for (var i = 0; i < 3; i++) {\n for (en0 = 0, l = start; l < end; l++) {\n en0 += cod_info.xr[j] * cod_info.xr[j];\n j++;\n }\n en0 = Math.max(en0 / bw, 1e-20);\n en1 = 1e15;\n gfc.pinfo.en_s[gr][ch][3 * sfb + i] = en1 * en0;\n gfc.pinfo.xfsf_s[gr][ch][3 * sfb + i] = en1 * l3_xmin[sfb2] * xfsf[sfb2] / bw;\n if (ratio.en.s[sfb][i] > 0)\n en0 = en0 / ratio.en.s[sfb][i];\n else\n en0 = 0;\n if (gfp.ATHonly || gfp.ATHshort)\n en0 = 0;\n gfc.pinfo.thr_s[gr][ch][3 * sfb + i] = en1 * Math.max(en0 * ratio.thm.s[sfb][i], gfc.ATH.s[sfb]);\n gfc.pinfo.LAMEsfb_s[gr][ch][3 * sfb + i] = -2 * cod_info.subblock_gain[i];\n if (sfb < Encoder.SBPSY_s) {\n gfc.pinfo.LAMEsfb_s[gr][ch][3 * sfb + i] -= ifqstep * scalefac[sfb2];\n }\n sfb2++;\n }\n }\n }\n gfc.pinfo.LAMEqss[gr][ch] = cod_info.global_gain;\n gfc.pinfo.LAMEmainbits[gr][ch] = cod_info.part2_3_length + cod_info.part2_length;\n gfc.pinfo.LAMEsfbits[gr][ch] = cod_info.part2_length;\n gfc.pinfo.over[gr][ch] = noise.over_count;\n gfc.pinfo.max_noise[gr][ch] = noise.max_noise * 10;\n gfc.pinfo.over_noise[gr][ch] = noise.over_noise * 10;\n gfc.pinfo.tot_noise[gr][ch] = noise.tot_noise * 10;\n gfc.pinfo.over_SSD[gr][ch] = noise.over_SSD;\n };\n}\nvar System$4 = common.System;\nvar Arrays$3 = common.Arrays;\nvar new_int$2 = common.new_int;\nvar assert$6 = common.assert;\nfunction Takehiro() {\n var qupvt = null;\n this.qupvt = null;\n this.setModules = function(_qupvt) {\n this.qupvt = _qupvt;\n qupvt = _qupvt;\n };\n function Bits(b) {\n this.bits = 0 | b;\n }\n var subdv_table = [\n [0, 0],\n [0, 0],\n [0, 0],\n [0, 0],\n [0, 0],\n [0, 1],\n [1, 1],\n [1, 1],\n [1, 2],\n [2, 2],\n [2, 3],\n [2, 3],\n [3, 4],\n [3, 4],\n [3, 4],\n [4, 5],\n [4, 5],\n [4, 6],\n [5, 6],\n [5, 6],\n [5, 7],\n [6, 7],\n [6, 7]\n ];\n function quantize_lines_xrpow_01(l, istep, xr, xrPos, ix, ixPos) {\n var compareval0 = (1 - 0.4054) / istep;\n l = l >> 1;\n while (l-- != 0) {\n ix[ixPos++] = compareval0 > xr[xrPos++] ? 0 : 1;\n ix[ixPos++] = compareval0 > xr[xrPos++] ? 0 : 1;\n }\n }\n function quantize_lines_xrpow(l, istep, xr, xrPos, ix, ixPos) {\n l = l >> 1;\n var remaining = l % 2;\n l = l >> 1;\n while (l-- != 0) {\n var x0, x1, x2, x3;\n var rx0, rx1, rx2, rx3;\n x0 = xr[xrPos++] * istep;\n x1 = xr[xrPos++] * istep;\n rx0 = 0 | x0;\n x2 = xr[xrPos++] * istep;\n rx1 = 0 | x1;\n x3 = xr[xrPos++] * istep;\n rx2 = 0 | x2;\n x0 += qupvt.adj43[rx0];\n rx3 = 0 | x3;\n x1 += qupvt.adj43[rx1];\n ix[ixPos++] = 0 | x0;\n x2 += qupvt.adj43[rx2];\n ix[ixPos++] = 0 | x1;\n x3 += qupvt.adj43[rx3];\n ix[ixPos++] = 0 | x2;\n ix[ixPos++] = 0 | x3;\n }\n if (remaining != 0) {\n var x0, x1;\n var rx0, rx1;\n x0 = xr[xrPos++] * istep;\n x1 = xr[xrPos++] * istep;\n rx0 = 0 | x0;\n rx1 = 0 | x1;\n x0 += qupvt.adj43[rx0];\n x1 += qupvt.adj43[rx1];\n ix[ixPos++] = 0 | x0;\n ix[ixPos++] = 0 | x1;\n }\n }\n function quantize_xrpow(xp, pi, istep, codInfo, prevNoise) {\n var sfb;\n var sfbmax;\n var j = 0;\n var prev_data_use;\n var accumulate = 0;\n var accumulate01 = 0;\n var xpPos = 0;\n var iData = pi;\n var iDataPos = 0;\n var acc_iData = iData;\n var acc_iDataPos = 0;\n var acc_xp = xp;\n var acc_xpPos = 0;\n prev_data_use = prevNoise != null && codInfo.global_gain == prevNoise.global_gain;\n if (codInfo.block_type == Encoder.SHORT_TYPE)\n sfbmax = 38;\n else\n sfbmax = 21;\n for (sfb = 0; sfb <= sfbmax; sfb++) {\n var step = -1;\n if (prev_data_use || codInfo.block_type == Encoder.NORM_TYPE) {\n step = codInfo.global_gain - (codInfo.scalefac[sfb] + (codInfo.preflag != 0 ? qupvt.pretab[sfb] : 0) << codInfo.scalefac_scale + 1) - codInfo.subblock_gain[codInfo.window[sfb]] * 8;\n }\n assert$6(codInfo.width[sfb] >= 0);\n if (prev_data_use && prevNoise.step[sfb] == step) {\n if (accumulate != 0) {\n quantize_lines_xrpow(\n accumulate,\n istep,\n acc_xp,\n acc_xpPos,\n acc_iData,\n acc_iDataPos\n );\n accumulate = 0;\n }\n if (accumulate01 != 0) {\n quantize_lines_xrpow_01(\n accumulate01,\n istep,\n acc_xp,\n acc_xpPos,\n acc_iData,\n acc_iDataPos\n );\n accumulate01 = 0;\n }\n } else {\n var l = codInfo.width[sfb];\n if (j + codInfo.width[sfb] > codInfo.max_nonzero_coeff) {\n var usefullsize;\n usefullsize = codInfo.max_nonzero_coeff - j + 1;\n Arrays$3.fill(pi, codInfo.max_nonzero_coeff, 576, 0);\n l = usefullsize;\n if (l < 0) {\n l = 0;\n }\n sfb = sfbmax + 1;\n }\n if (accumulate == 0 && accumulate01 == 0) {\n acc_iData = iData;\n acc_iDataPos = iDataPos;\n acc_xp = xp;\n acc_xpPos = xpPos;\n }\n if (prevNoise != null && prevNoise.sfb_count1 > 0 && sfb >= prevNoise.sfb_count1 && prevNoise.step[sfb] > 0 && step >= prevNoise.step[sfb]) {\n if (accumulate != 0) {\n quantize_lines_xrpow(\n accumulate,\n istep,\n acc_xp,\n acc_xpPos,\n acc_iData,\n acc_iDataPos\n );\n accumulate = 0;\n acc_iData = iData;\n acc_iDataPos = iDataPos;\n acc_xp = xp;\n acc_xpPos = xpPos;\n }\n accumulate01 += l;\n } else {\n if (accumulate01 != 0) {\n quantize_lines_xrpow_01(\n accumulate01,\n istep,\n acc_xp,\n acc_xpPos,\n acc_iData,\n acc_iDataPos\n );\n accumulate01 = 0;\n acc_iData = iData;\n acc_iDataPos = iDataPos;\n acc_xp = xp;\n acc_xpPos = xpPos;\n }\n accumulate += l;\n }\n if (l <= 0) {\n if (accumulate01 != 0) {\n quantize_lines_xrpow_01(\n accumulate01,\n istep,\n acc_xp,\n acc_xpPos,\n acc_iData,\n acc_iDataPos\n );\n accumulate01 = 0;\n }\n if (accumulate != 0) {\n quantize_lines_xrpow(\n accumulate,\n istep,\n acc_xp,\n acc_xpPos,\n acc_iData,\n acc_iDataPos\n );\n accumulate = 0;\n }\n break;\n }\n }\n if (sfb <= sfbmax) {\n iDataPos += codInfo.width[sfb];\n xpPos += codInfo.width[sfb];\n j += codInfo.width[sfb];\n }\n }\n if (accumulate != 0) {\n quantize_lines_xrpow(\n accumulate,\n istep,\n acc_xp,\n acc_xpPos,\n acc_iData,\n acc_iDataPos\n );\n accumulate = 0;\n }\n if (accumulate01 != 0) {\n quantize_lines_xrpow_01(\n accumulate01,\n istep,\n acc_xp,\n acc_xpPos,\n acc_iData,\n acc_iDataPos\n );\n accumulate01 = 0;\n }\n }\n function ix_max(ix, ixPos, endPos) {\n var max1 = 0;\n var max2 = 0;\n do {\n var x1 = ix[ixPos++];\n var x2 = ix[ixPos++];\n if (max1 < x1)\n max1 = x1;\n if (max2 < x2)\n max2 = x2;\n } while (ixPos < endPos);\n if (max1 < max2)\n max1 = max2;\n return max1;\n }\n function count_bit_ESC(ix, ixPos, end, t1, t2, s) {\n var linbits = Tables$1.ht[t1].xlen * 65536 + Tables$1.ht[t2].xlen;\n var sum = 0;\n var sum2;\n do {\n var x = ix[ixPos++];\n var y = ix[ixPos++];\n if (x != 0) {\n if (x > 14) {\n x = 15;\n sum += linbits;\n }\n x *= 16;\n }\n if (y != 0) {\n if (y > 14) {\n y = 15;\n sum += linbits;\n }\n x += y;\n }\n sum += Tables$1.largetbl[x];\n } while (ixPos < end);\n sum2 = sum & 65535;\n sum >>= 16;\n if (sum > sum2) {\n sum = sum2;\n t1 = t2;\n }\n s.bits += sum;\n return t1;\n }\n function count_bit_noESC(ix, ixPos, end, s) {\n var sum1 = 0;\n var hlen1 = Tables$1.ht[1].hlen;\n do {\n var x = ix[ixPos + 0] * 2 + ix[ixPos + 1];\n ixPos += 2;\n sum1 += hlen1[x];\n } while (ixPos < end);\n s.bits += sum1;\n return 1;\n }\n function count_bit_noESC_from2(ix, ixPos, end, t1, s) {\n var sum = 0;\n var sum2;\n var xlen = Tables$1.ht[t1].xlen;\n var hlen;\n if (t1 == 2)\n hlen = Tables$1.table23;\n else\n hlen = Tables$1.table56;\n do {\n var x = ix[ixPos + 0] * xlen + ix[ixPos + 1];\n ixPos += 2;\n sum += hlen[x];\n } while (ixPos < end);\n sum2 = sum & 65535;\n sum >>= 16;\n if (sum > sum2) {\n sum = sum2;\n t1++;\n }\n s.bits += sum;\n return t1;\n }\n function count_bit_noESC_from3(ix, ixPos, end, t1, s) {\n var sum1 = 0;\n var sum2 = 0;\n var sum3 = 0;\n var xlen = Tables$1.ht[t1].xlen;\n var hlen1 = Tables$1.ht[t1].hlen;\n var hlen2 = Tables$1.ht[t1 + 1].hlen;\n var hlen3 = Tables$1.ht[t1 + 2].hlen;\n do {\n var x = ix[ixPos + 0] * xlen + ix[ixPos + 1];\n ixPos += 2;\n sum1 += hlen1[x];\n sum2 += hlen2[x];\n sum3 += hlen3[x];\n } while (ixPos < end);\n var t = t1;\n if (sum1 > sum2) {\n sum1 = sum2;\n t++;\n }\n if (sum1 > sum3) {\n sum1 = sum3;\n t = t1 + 2;\n }\n s.bits += sum1;\n return t;\n }\n var huf_tbl_noESC = [1, 2, 5, 7, 7, 10, 10, 13, 13, 13, 13, 13, 13, 13, 13];\n function choose_table(ix, ixPos, endPos, s) {\n var max = ix_max(ix, ixPos, endPos);\n switch (max) {\n case 0:\n return max;\n case 1:\n return count_bit_noESC(ix, ixPos, endPos, s);\n case 2:\n case 3:\n return count_bit_noESC_from2(\n ix,\n ixPos,\n endPos,\n huf_tbl_noESC[max - 1],\n s\n );\n case 4:\n case 5:\n case 6:\n case 7:\n case 8:\n case 9:\n case 10:\n case 11:\n case 12:\n case 13:\n case 14:\n case 15:\n return count_bit_noESC_from3(\n ix,\n ixPos,\n endPos,\n huf_tbl_noESC[max - 1],\n s\n );\n default:\n if (max > QuantizePVT.IXMAX_VAL) {\n s.bits = QuantizePVT.LARGE_BITS;\n return -1;\n }\n max -= 15;\n var choice2;\n for (choice2 = 24; choice2 < 32; choice2++) {\n if (Tables$1.ht[choice2].linmax >= max) {\n break;\n }\n }\n var choice;\n for (choice = choice2 - 8; choice < 24; choice++) {\n if (Tables$1.ht[choice].linmax >= max) {\n break;\n }\n }\n return count_bit_ESC(ix, ixPos, endPos, choice, choice2, s);\n }\n }\n this.noquant_count_bits = function(gfc, gi, prev_noise) {\n var ix = gi.l3_enc;\n var i = Math.min(576, gi.max_nonzero_coeff + 2 >> 1 << 1);\n if (prev_noise != null)\n prev_noise.sfb_count1 = 0;\n for (; i > 1; i -= 2)\n if ((ix[i - 1] | ix[i - 2]) != 0)\n break;\n gi.count1 = i;\n var a1 = 0;\n var a2 = 0;\n for (; i > 3; i -= 4) {\n var p2;\n if (((ix[i - 1] | ix[i - 2] | ix[i - 3] | ix[i - 4]) & 2147483647) > 1) {\n break;\n }\n p2 = ((ix[i - 4] * 2 + ix[i - 3]) * 2 + ix[i - 2]) * 2 + ix[i - 1];\n a1 += Tables$1.t32l[p2];\n a2 += Tables$1.t33l[p2];\n }\n var bits = a1;\n gi.count1table_select = 0;\n if (a1 > a2) {\n bits = a2;\n gi.count1table_select = 1;\n }\n gi.count1bits = bits;\n gi.big_values = i;\n if (i == 0)\n return bits;\n if (gi.block_type == Encoder.SHORT_TYPE) {\n a1 = 3 * gfc.scalefac_band.s[3];\n if (a1 > gi.big_values)\n a1 = gi.big_values;\n a2 = gi.big_values;\n } else if (gi.block_type == Encoder.NORM_TYPE) {\n a1 = gi.region0_count = gfc.bv_scf[i - 2];\n a2 = gi.region1_count = gfc.bv_scf[i - 1];\n a2 = gfc.scalefac_band.l[a1 + a2 + 2];\n a1 = gfc.scalefac_band.l[a1 + 1];\n if (a2 < i) {\n var bi = new Bits(bits);\n gi.table_select[2] = choose_table(ix, a2, i, bi);\n bits = bi.bits;\n }\n } else {\n gi.region0_count = 7;\n gi.region1_count = Encoder.SBMAX_l - 1 - 7 - 1;\n a1 = gfc.scalefac_band.l[7 + 1];\n a2 = i;\n if (a1 > a2) {\n a1 = a2;\n }\n }\n a1 = Math.min(a1, i);\n a2 = Math.min(a2, i);\n if (a1 > 0) {\n var bi = new Bits(bits);\n gi.table_select[0] = choose_table(ix, 0, a1, bi);\n bits = bi.bits;\n }\n if (a1 < a2) {\n var bi = new Bits(bits);\n gi.table_select[1] = choose_table(ix, a1, a2, bi);\n bits = bi.bits;\n }\n if (gfc.use_best_huffman == 2) {\n gi.part2_3_length = bits;\n best_huffman_divide(gfc, gi);\n bits = gi.part2_3_length;\n }\n if (prev_noise != null) {\n if (gi.block_type == Encoder.NORM_TYPE) {\n var sfb = 0;\n while (gfc.scalefac_band.l[sfb] < gi.big_values) {\n sfb++;\n }\n prev_noise.sfb_count1 = sfb;\n }\n }\n return bits;\n };\n this.count_bits = function(gfc, xr, gi, prev_noise) {\n var ix = gi.l3_enc;\n var w = QuantizePVT.IXMAX_VAL / qupvt.IPOW20(gi.global_gain);\n if (gi.xrpow_max > w)\n return QuantizePVT.LARGE_BITS;\n quantize_xrpow(xr, ix, qupvt.IPOW20(gi.global_gain), gi, prev_noise);\n if ((gfc.substep_shaping & 2) != 0) {\n var j = 0;\n var gain = gi.global_gain + gi.scalefac_scale;\n var roundfac = 0.634521682242439 / qupvt.IPOW20(gain);\n for (var sfb = 0; sfb < gi.sfbmax; sfb++) {\n var width = gi.width[sfb];\n if (gfc.pseudohalf[sfb] == 0) {\n j += width;\n } else {\n var k;\n for (k = j, j += width; k < j; ++k) {\n ix[k] = xr[k] >= roundfac ? ix[k] : 0;\n }\n }\n }\n }\n return this.noquant_count_bits(gfc, gi, prev_noise);\n };\n function recalc_divide_init(gfc, cod_info, ix, r01_bits, r01_div, r0_tbl, r1_tbl) {\n var bigv = cod_info.big_values;\n for (var r0 = 0; r0 <= 7 + 15; r0++) {\n r01_bits[r0] = QuantizePVT.LARGE_BITS;\n }\n for (var r0 = 0; r0 < 16; r0++) {\n var a1 = gfc.scalefac_band.l[r0 + 1];\n if (a1 >= bigv)\n break;\n var r0bits = 0;\n var bi = new Bits(r0bits);\n var r0t = choose_table(ix, 0, a1, bi);\n r0bits = bi.bits;\n for (var r1 = 0; r1 < 8; r1++) {\n var a2 = gfc.scalefac_band.l[r0 + r1 + 2];\n if (a2 >= bigv)\n break;\n var bits = r0bits;\n bi = new Bits(bits);\n var r1t = choose_table(ix, a1, a2, bi);\n bits = bi.bits;\n if (r01_bits[r0 + r1] > bits) {\n r01_bits[r0 + r1] = bits;\n r01_div[r0 + r1] = r0;\n r0_tbl[r0 + r1] = r0t;\n r1_tbl[r0 + r1] = r1t;\n }\n }\n }\n }\n function recalc_divide_sub(gfc, cod_info2, gi, ix, r01_bits, r01_div, r0_tbl, r1_tbl) {\n var bigv = cod_info2.big_values;\n for (var r2 = 2; r2 < Encoder.SBMAX_l + 1; r2++) {\n var a2 = gfc.scalefac_band.l[r2];\n if (a2 >= bigv)\n break;\n var bits = r01_bits[r2 - 2] + cod_info2.count1bits;\n if (gi.part2_3_length <= bits)\n break;\n var bi = new Bits(bits);\n var r2t = choose_table(ix, a2, bigv, bi);\n bits = bi.bits;\n if (gi.part2_3_length <= bits)\n continue;\n gi.assign(cod_info2);\n gi.part2_3_length = bits;\n gi.region0_count = r01_div[r2 - 2];\n gi.region1_count = r2 - 2 - r01_div[r2 - 2];\n gi.table_select[0] = r0_tbl[r2 - 2];\n gi.table_select[1] = r1_tbl[r2 - 2];\n gi.table_select[2] = r2t;\n }\n }\n this.best_huffman_divide = function(gfc, gi) {\n var cod_info2 = new GrInfo();\n var ix = gi.l3_enc;\n var r01_bits = new_int$2(7 + 15 + 1);\n var r01_div = new_int$2(7 + 15 + 1);\n var r0_tbl = new_int$2(7 + 15 + 1);\n var r1_tbl = new_int$2(7 + 15 + 1);\n if (gi.block_type == Encoder.SHORT_TYPE && gfc.mode_gr == 1)\n return;\n cod_info2.assign(gi);\n if (gi.block_type == Encoder.NORM_TYPE) {\n recalc_divide_init(gfc, gi, ix, r01_bits, r01_div, r0_tbl, r1_tbl);\n recalc_divide_sub(\n gfc,\n cod_info2,\n gi,\n ix,\n r01_bits,\n r01_div,\n r0_tbl,\n r1_tbl\n );\n }\n var i = cod_info2.big_values;\n if (i == 0 || (ix[i - 2] | ix[i - 1]) > 1)\n return;\n i = gi.count1 + 2;\n if (i > 576)\n return;\n cod_info2.assign(gi);\n cod_info2.count1 = i;\n var a1 = 0;\n var a2 = 0;\n for (; i > cod_info2.big_values; i -= 4) {\n var p2 = ((ix[i - 4] * 2 + ix[i - 3]) * 2 + ix[i - 2]) * 2 + ix[i - 1];\n a1 += Tables$1.t32l[p2];\n a2 += Tables$1.t33l[p2];\n }\n cod_info2.big_values = i;\n cod_info2.count1table_select = 0;\n if (a1 > a2) {\n a1 = a2;\n cod_info2.count1table_select = 1;\n }\n cod_info2.count1bits = a1;\n if (cod_info2.block_type == Encoder.NORM_TYPE) {\n recalc_divide_sub(\n gfc,\n cod_info2,\n gi,\n ix,\n r01_bits,\n r01_div,\n r0_tbl,\n r1_tbl\n );\n } else {\n cod_info2.part2_3_length = a1;\n a1 = gfc.scalefac_band.l[7 + 1];\n if (a1 > i) {\n a1 = i;\n }\n if (a1 > 0) {\n var bi = new Bits(cod_info2.part2_3_length);\n cod_info2.table_select[0] = choose_table(ix, 0, a1, bi);\n cod_info2.part2_3_length = bi.bits;\n }\n if (i > a1) {\n var bi = new Bits(cod_info2.part2_3_length);\n cod_info2.table_select[1] = choose_table(ix, a1, i, bi);\n cod_info2.part2_3_length = bi.bits;\n }\n if (gi.part2_3_length > cod_info2.part2_3_length)\n gi.assign(cod_info2);\n }\n };\n var slen1_n = [1, 1, 1, 1, 8, 2, 2, 2, 4, 4, 4, 8, 8, 8, 16, 16];\n var slen2_n = [1, 2, 4, 8, 1, 2, 4, 8, 2, 4, 8, 2, 4, 8, 4, 8];\n var slen1_tab = [0, 0, 0, 0, 3, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4];\n var slen2_tab = [0, 1, 2, 3, 0, 1, 2, 3, 1, 2, 3, 1, 2, 3, 2, 3];\n Takehiro.slen1_tab = slen1_tab;\n Takehiro.slen2_tab = slen2_tab;\n function scfsi_calc(ch, l3_side) {\n var sfb;\n var gi = l3_side.tt[1][ch];\n var g0 = l3_side.tt[0][ch];\n for (var i = 0; i < Tables$1.scfsi_band.length - 1; i++) {\n for (sfb = Tables$1.scfsi_band[i]; sfb < Tables$1.scfsi_band[i + 1]; sfb++) {\n if (g0.scalefac[sfb] != gi.scalefac[sfb] && gi.scalefac[sfb] >= 0)\n break;\n }\n if (sfb == Tables$1.scfsi_band[i + 1]) {\n for (sfb = Tables$1.scfsi_band[i]; sfb < Tables$1.scfsi_band[i + 1]; sfb++) {\n gi.scalefac[sfb] = -1;\n }\n l3_side.scfsi[ch][i] = 1;\n }\n }\n var s1 = 0;\n var c1 = 0;\n for (sfb = 0; sfb < 11; sfb++) {\n if (gi.scalefac[sfb] == -1)\n continue;\n c1++;\n if (s1 < gi.scalefac[sfb])\n s1 = gi.scalefac[sfb];\n }\n var s2 = 0;\n var c2 = 0;\n for (; sfb < Encoder.SBPSY_l; sfb++) {\n if (gi.scalefac[sfb] == -1)\n continue;\n c2++;\n if (s2 < gi.scalefac[sfb])\n s2 = gi.scalefac[sfb];\n }\n for (var i = 0; i < 16; i++) {\n if (s1 < slen1_n[i] && s2 < slen2_n[i]) {\n var c = slen1_tab[i] * c1 + slen2_tab[i] * c2;\n if (gi.part2_length > c) {\n gi.part2_length = c;\n gi.scalefac_compress = i;\n }\n }\n }\n }\n this.best_scalefac_store = function(gfc, gr, ch, l3_side) {\n var gi = l3_side.tt[gr][ch];\n var sfb, i, j, l;\n var recalc = 0;\n j = 0;\n for (sfb = 0; sfb < gi.sfbmax; sfb++) {\n var width = gi.width[sfb];\n j += width;\n for (l = -width; l < 0; l++) {\n if (gi.l3_enc[l + j] != 0)\n break;\n }\n if (l == 0)\n gi.scalefac[sfb] = recalc = -2;\n }\n if (gi.scalefac_scale == 0 && gi.preflag == 0) {\n var s = 0;\n for (sfb = 0; sfb < gi.sfbmax; sfb++) {\n if (gi.scalefac[sfb] > 0)\n s |= gi.scalefac[sfb];\n }\n if ((s & 1) == 0 && s != 0) {\n for (sfb = 0; sfb < gi.sfbmax; sfb++) {\n if (gi.scalefac[sfb] > 0)\n gi.scalefac[sfb] >>= 1;\n }\n gi.scalefac_scale = recalc = 1;\n }\n }\n if (gi.preflag == 0 && gi.block_type != Encoder.SHORT_TYPE && gfc.mode_gr == 2) {\n for (sfb = 11; sfb < Encoder.SBPSY_l; sfb++) {\n if (gi.scalefac[sfb] < qupvt.pretab[sfb] && gi.scalefac[sfb] != -2) {\n break;\n }\n }\n if (sfb == Encoder.SBPSY_l) {\n for (sfb = 11; sfb < Encoder.SBPSY_l; sfb++) {\n if (gi.scalefac[sfb] > 0)\n gi.scalefac[sfb] -= qupvt.pretab[sfb];\n }\n gi.preflag = recalc = 1;\n }\n }\n for (i = 0; i < 4; i++)\n l3_side.scfsi[ch][i] = 0;\n if (gfc.mode_gr == 2 && gr == 1 && l3_side.tt[0][ch].block_type != Encoder.SHORT_TYPE && l3_side.tt[1][ch].block_type != Encoder.SHORT_TYPE) {\n scfsi_calc(ch, l3_side);\n recalc = 0;\n }\n for (sfb = 0; sfb < gi.sfbmax; sfb++) {\n if (gi.scalefac[sfb] == -2) {\n gi.scalefac[sfb] = 0;\n }\n }\n if (recalc != 0) {\n if (gfc.mode_gr == 2) {\n this.scale_bitcount(gi);\n } else {\n this.scale_bitcount_lsf(gfc, gi);\n }\n }\n };\n function all_scalefactors_not_negative(scalefac, n) {\n for (var i = 0; i < n; ++i) {\n if (scalefac[i] < 0)\n return false;\n }\n return true;\n }\n var scale_short = [\n 0,\n 18,\n 36,\n 54,\n 54,\n 36,\n 54,\n 72,\n 54,\n 72,\n 90,\n 72,\n 90,\n 108,\n 108,\n 126\n ];\n var scale_mixed = [\n 0,\n 18,\n 36,\n 54,\n 51,\n 35,\n 53,\n 71,\n 52,\n 70,\n 88,\n 69,\n 87,\n 105,\n 104,\n 122\n ];\n var scale_long = [\n 0,\n 10,\n 20,\n 30,\n 33,\n 21,\n 31,\n 41,\n 32,\n 42,\n 52,\n 43,\n 53,\n 63,\n 64,\n 74\n ];\n this.scale_bitcount = function(cod_info) {\n var k;\n var sfb;\n var max_slen1 = 0;\n var max_slen2 = 0;\n var tab;\n var scalefac = cod_info.scalefac;\n assert$6(all_scalefactors_not_negative(scalefac, cod_info.sfbmax));\n if (cod_info.block_type == Encoder.SHORT_TYPE) {\n tab = scale_short;\n if (cod_info.mixed_block_flag != 0)\n tab = scale_mixed;\n } else {\n tab = scale_long;\n if (cod_info.preflag == 0) {\n for (sfb = 11; sfb < Encoder.SBPSY_l; sfb++) {\n if (scalefac[sfb] < qupvt.pretab[sfb])\n break;\n }\n if (sfb == Encoder.SBPSY_l) {\n cod_info.preflag = 1;\n for (sfb = 11; sfb < Encoder.SBPSY_l; sfb++) {\n scalefac[sfb] -= qupvt.pretab[sfb];\n }\n }\n }\n }\n for (sfb = 0; sfb < cod_info.sfbdivide; sfb++) {\n if (max_slen1 < scalefac[sfb])\n max_slen1 = scalefac[sfb];\n }\n for (; sfb < cod_info.sfbmax; sfb++) {\n if (max_slen2 < scalefac[sfb])\n max_slen2 = scalefac[sfb];\n }\n cod_info.part2_length = QuantizePVT.LARGE_BITS;\n for (k = 0; k < 16; k++) {\n if (max_slen1 < slen1_n[k] && max_slen2 < slen2_n[k] && cod_info.part2_length > tab[k]) {\n cod_info.part2_length = tab[k];\n cod_info.scalefac_compress = k;\n }\n }\n return cod_info.part2_length == QuantizePVT.LARGE_BITS;\n };\n var max_range_sfac_tab = [\n [15, 15, 7, 7],\n [15, 15, 7, 0],\n [7, 3, 0, 0],\n [15, 31, 31, 0],\n [7, 7, 7, 0],\n [3, 3, 0, 0]\n ];\n this.scale_bitcount_lsf = function(gfc, cod_info) {\n var table_number, row_in_table, partition, nr_sfb, window2;\n var over;\n var i, sfb;\n var max_sfac = new_int$2(4);\n var scalefac = cod_info.scalefac;\n if (cod_info.preflag != 0)\n table_number = 2;\n else\n table_number = 0;\n for (i = 0; i < 4; i++)\n max_sfac[i] = 0;\n if (cod_info.block_type == Encoder.SHORT_TYPE) {\n row_in_table = 1;\n var partition_table = qupvt.nr_of_sfb_block[table_number][row_in_table];\n for (sfb = 0, partition = 0; partition < 4; partition++) {\n nr_sfb = partition_table[partition] / 3;\n for (i = 0; i < nr_sfb; i++, sfb++) {\n for (window2 = 0; window2 < 3; window2++) {\n if (scalefac[sfb * 3 + window2] > max_sfac[partition]) {\n max_sfac[partition] = scalefac[sfb * 3 + window2];\n }\n }\n }\n }\n } else {\n row_in_table = 0;\n var partition_table = qupvt.nr_of_sfb_block[table_number][row_in_table];\n for (sfb = 0, partition = 0; partition < 4; partition++) {\n nr_sfb = partition_table[partition];\n for (i = 0; i < nr_sfb; i++, sfb++) {\n if (scalefac[sfb] > max_sfac[partition]) {\n max_sfac[partition] = scalefac[sfb];\n }\n }\n }\n }\n for (over = false, partition = 0; partition < 4; partition++) {\n if (max_sfac[partition] > max_range_sfac_tab[table_number][partition]) {\n over = true;\n }\n }\n if (!over) {\n var slen1, slen2, slen3, slen4;\n cod_info.sfb_partition_table = qupvt.nr_of_sfb_block[table_number][row_in_table];\n for (partition = 0; partition < 4; partition++) {\n cod_info.slen[partition] = log2tab[max_sfac[partition]];\n }\n slen1 = cod_info.slen[0];\n slen2 = cod_info.slen[1];\n slen3 = cod_info.slen[2];\n slen4 = cod_info.slen[3];\n switch (table_number) {\n case 0:\n cod_info.scalefac_compress = (slen1 * 5 + slen2 << 4) + (slen3 << 2) + slen4;\n break;\n case 1:\n cod_info.scalefac_compress = 400 + (slen1 * 5 + slen2 << 2) + slen3;\n break;\n case 2:\n cod_info.scalefac_compress = 500 + slen1 * 3 + slen2;\n break;\n default:\n System$4.err.printf(\"intensity stereo not implemented yet\\n\");\n break;\n }\n }\n if (!over) {\n assert$6(cod_info.sfb_partition_table != null);\n cod_info.part2_length = 0;\n for (partition = 0; partition < 4; partition++) {\n cod_info.part2_length += cod_info.slen[partition] * cod_info.sfb_partition_table[partition];\n }\n }\n return over;\n };\n var log2tab = [0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4];\n this.huffman_init = function(gfc) {\n for (var i = 2; i <= 576; i += 2) {\n var scfb_anz = 0;\n var bv_index;\n while (gfc.scalefac_band.l[++scfb_anz] < i)\n ;\n bv_index = subdv_table[scfb_anz][0];\n while (gfc.scalefac_band.l[bv_index + 1] > i)\n bv_index--;\n if (bv_index < 0) {\n bv_index = subdv_table[scfb_anz][0];\n }\n gfc.bv_scf[i - 2] = bv_index;\n bv_index = subdv_table[scfb_anz][1];\n while (gfc.scalefac_band.l[bv_index + gfc.bv_scf[i - 2] + 2] > i) {\n bv_index--;\n }\n if (bv_index < 0) {\n bv_index = subdv_table[scfb_anz][1];\n }\n gfc.bv_scf[i - 1] = bv_index;\n }\n };\n}\nvar System$3 = common.System;\nvar Arrays$2 = common.Arrays;\nvar new_byte$2 = common.new_byte;\nvar new_float_n = common.new_float_n;\nvar new_int$1 = common.new_int;\nvar assert$5 = common.assert;\nBitStream$1.EQ = function(a, b) {\n return Math.abs(a) > Math.abs(b) ? Math.abs(a - b) <= Math.abs(a) * 1e-6 : Math.abs(a - b) <= Math.abs(b) * 1e-6;\n};\nBitStream$1.NEQ = function(a, b) {\n return !BitStream$1.EQ(a, b);\n};\nfunction BitStream$1() {\n var self2 = this;\n var CRC16_POLYNOMIAL = 32773;\n var ga = null;\n var mpg = null;\n var ver = null;\n var vbr = null;\n this.setModules = function(_ga, _mpg, _ver, _vbr) {\n ga = _ga;\n mpg = _mpg;\n ver = _ver;\n vbr = _vbr;\n };\n var buf = null;\n var totbit = 0;\n var bufByteIdx = 0;\n var bufBitIdx = 0;\n this.getframebits = function(gfp) {\n var gfc = gfp.internal_flags;\n var bit_rate;\n if (gfc.bitrate_index != 0) {\n bit_rate = Tables$1.bitrate_table[gfp.version][gfc.bitrate_index];\n } else\n bit_rate = gfp.brate;\n var bytes = 0 | (gfp.version + 1) * 72e3 * bit_rate / gfp.out_samplerate + gfc.padding;\n return 8 * bytes;\n };\n function putheader_bits(gfc) {\n System$3.arraycopy(\n gfc.header[gfc.w_ptr].buf,\n 0,\n buf,\n bufByteIdx,\n gfc.sideinfo_len\n );\n bufByteIdx += gfc.sideinfo_len;\n totbit += gfc.sideinfo_len * 8;\n gfc.w_ptr = gfc.w_ptr + 1 & LameInternalFlags$1.MAX_HEADER_BUF - 1;\n }\n function putbits2(gfc, val, j) {\n while (j > 0) {\n var k;\n if (bufBitIdx == 0) {\n bufBitIdx = 8;\n bufByteIdx++;\n assert$5(gfc.header[gfc.w_ptr].write_timing >= totbit);\n if (gfc.header[gfc.w_ptr].write_timing == totbit) {\n putheader_bits(gfc);\n }\n buf[bufByteIdx] = 0;\n }\n k = Math.min(j, bufBitIdx);\n j -= k;\n bufBitIdx -= k;\n buf[bufByteIdx] |= val >> j << bufBitIdx;\n totbit += k;\n }\n }\n function putbits_noheaders(gfc, val, j) {\n while (j > 0) {\n var k;\n if (bufBitIdx == 0) {\n bufBitIdx = 8;\n bufByteIdx++;\n buf[bufByteIdx] = 0;\n }\n k = Math.min(j, bufBitIdx);\n j -= k;\n bufBitIdx -= k;\n buf[bufByteIdx] |= val >> j << bufBitIdx;\n totbit += k;\n }\n }\n function drain_into_ancillary(gfp, remainingBits) {\n var gfc = gfp.internal_flags;\n var i;\n if (remainingBits >= 8) {\n putbits2(gfc, 76, 8);\n remainingBits -= 8;\n }\n if (remainingBits >= 8) {\n putbits2(gfc, 65, 8);\n remainingBits -= 8;\n }\n if (remainingBits >= 8) {\n putbits2(gfc, 77, 8);\n remainingBits -= 8;\n }\n if (remainingBits >= 8) {\n putbits2(gfc, 69, 8);\n remainingBits -= 8;\n }\n if (remainingBits >= 32) {\n var version2 = ver.getLameShortVersion();\n if (remainingBits >= 32) {\n for (i = 0; i < version2.length && remainingBits >= 8; ++i) {\n remainingBits -= 8;\n putbits2(gfc, version2.charAt(i), 8);\n }\n }\n }\n for (; remainingBits >= 1; remainingBits -= 1) {\n putbits2(gfc, gfc.ancillary_flag, 1);\n gfc.ancillary_flag ^= !gfp.disable_reservoir ? 1 : 0;\n }\n }\n function writeheader(gfc, val, j) {\n var ptr = gfc.header[gfc.h_ptr].ptr;\n while (j > 0) {\n var k = Math.min(j, 8 - (ptr & 7));\n j -= k;\n gfc.header[gfc.h_ptr].buf[ptr >> 3] |= val >> j << 8 - (ptr & 7) - k;\n ptr += k;\n }\n gfc.header[gfc.h_ptr].ptr = ptr;\n }\n function CRC_update(value, crc) {\n value <<= 8;\n for (var i = 0; i < 8; i++) {\n value <<= 1;\n crc <<= 1;\n if (((crc ^ value) & 65536) != 0)\n crc ^= CRC16_POLYNOMIAL;\n }\n return crc;\n }\n this.CRC_writeheader = function(gfc, header) {\n var crc = 65535;\n crc = CRC_update(header[2] & 255, crc);\n crc = CRC_update(header[3] & 255, crc);\n for (var i = 6; i < gfc.sideinfo_len; i++) {\n crc = CRC_update(header[i] & 255, crc);\n }\n header[4] = byte(crc >> 8);\n header[5] = byte(crc & 255);\n };\n function encodeSideInfo2(gfp, bitsPerFrame) {\n var gfc = gfp.internal_flags;\n var l3_side;\n var gr, ch;\n l3_side = gfc.l3_side;\n gfc.header[gfc.h_ptr].ptr = 0;\n Arrays$2.fill(gfc.header[gfc.h_ptr].buf, 0, gfc.sideinfo_len, 0);\n if (gfp.out_samplerate < 16e3)\n writeheader(gfc, 4094, 12);\n else\n writeheader(gfc, 4095, 12);\n writeheader(gfc, gfp.version, 1);\n writeheader(gfc, 4 - 3, 2);\n writeheader(gfc, !gfp.error_protection ? 1 : 0, 1);\n writeheader(gfc, gfc.bitrate_index, 4);\n writeheader(gfc, gfc.samplerate_index, 2);\n writeheader(gfc, gfc.padding, 1);\n writeheader(gfc, gfp.extension, 1);\n writeheader(gfc, gfp.mode.ordinal(), 2);\n writeheader(gfc, gfc.mode_ext, 2);\n writeheader(gfc, gfp.copyright, 1);\n writeheader(gfc, gfp.original, 1);\n writeheader(gfc, gfp.emphasis, 2);\n if (gfp.error_protection) {\n writeheader(gfc, 0, 16);\n }\n if (gfp.version == 1) {\n assert$5(l3_side.main_data_begin >= 0);\n writeheader(gfc, l3_side.main_data_begin, 9);\n if (gfc.channels_out == 2)\n writeheader(gfc, l3_side.private_bits, 3);\n else\n writeheader(gfc, l3_side.private_bits, 5);\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var band;\n for (band = 0; band < 4; band++) {\n writeheader(gfc, l3_side.scfsi[ch][band], 1);\n }\n }\n for (gr = 0; gr < 2; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var gi = l3_side.tt[gr][ch];\n writeheader(gfc, gi.part2_3_length + gi.part2_length, 12);\n writeheader(gfc, gi.big_values / 2, 9);\n writeheader(gfc, gi.global_gain, 8);\n writeheader(gfc, gi.scalefac_compress, 4);\n if (gi.block_type != Encoder.NORM_TYPE) {\n writeheader(gfc, 1, 1);\n writeheader(gfc, gi.block_type, 2);\n writeheader(gfc, gi.mixed_block_flag, 1);\n if (gi.table_select[0] == 14)\n gi.table_select[0] = 16;\n writeheader(gfc, gi.table_select[0], 5);\n if (gi.table_select[1] == 14)\n gi.table_select[1] = 16;\n writeheader(gfc, gi.table_select[1], 5);\n writeheader(gfc, gi.subblock_gain[0], 3);\n writeheader(gfc, gi.subblock_gain[1], 3);\n writeheader(gfc, gi.subblock_gain[2], 3);\n } else {\n writeheader(gfc, 0, 1);\n if (gi.table_select[0] == 14)\n gi.table_select[0] = 16;\n writeheader(gfc, gi.table_select[0], 5);\n if (gi.table_select[1] == 14)\n gi.table_select[1] = 16;\n writeheader(gfc, gi.table_select[1], 5);\n if (gi.table_select[2] == 14)\n gi.table_select[2] = 16;\n writeheader(gfc, gi.table_select[2], 5);\n assert$5(gi.region0_count >= 0 && gi.region0_count < 16);\n assert$5(gi.region1_count >= 0 && gi.region1_count < 8);\n writeheader(gfc, gi.region0_count, 4);\n writeheader(gfc, gi.region1_count, 3);\n }\n writeheader(gfc, gi.preflag, 1);\n writeheader(gfc, gi.scalefac_scale, 1);\n writeheader(gfc, gi.count1table_select, 1);\n }\n }\n } else {\n assert$5(l3_side.main_data_begin >= 0);\n writeheader(gfc, l3_side.main_data_begin, 8);\n writeheader(gfc, l3_side.private_bits, gfc.channels_out);\n gr = 0;\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var gi = l3_side.tt[gr][ch];\n writeheader(gfc, gi.part2_3_length + gi.part2_length, 12);\n writeheader(gfc, gi.big_values / 2, 9);\n writeheader(gfc, gi.global_gain, 8);\n writeheader(gfc, gi.scalefac_compress, 9);\n if (gi.block_type != Encoder.NORM_TYPE) {\n writeheader(gfc, 1, 1);\n writeheader(gfc, gi.block_type, 2);\n writeheader(gfc, gi.mixed_block_flag, 1);\n if (gi.table_select[0] == 14)\n gi.table_select[0] = 16;\n writeheader(gfc, gi.table_select[0], 5);\n if (gi.table_select[1] == 14)\n gi.table_select[1] = 16;\n writeheader(gfc, gi.table_select[1], 5);\n writeheader(gfc, gi.subblock_gain[0], 3);\n writeheader(gfc, gi.subblock_gain[1], 3);\n writeheader(gfc, gi.subblock_gain[2], 3);\n } else {\n writeheader(gfc, 0, 1);\n if (gi.table_select[0] == 14)\n gi.table_select[0] = 16;\n writeheader(gfc, gi.table_select[0], 5);\n if (gi.table_select[1] == 14)\n gi.table_select[1] = 16;\n writeheader(gfc, gi.table_select[1], 5);\n if (gi.table_select[2] == 14)\n gi.table_select[2] = 16;\n writeheader(gfc, gi.table_select[2], 5);\n assert$5(gi.region0_count >= 0 && gi.region0_count < 16);\n assert$5(gi.region1_count >= 0 && gi.region1_count < 8);\n writeheader(gfc, gi.region0_count, 4);\n writeheader(gfc, gi.region1_count, 3);\n }\n writeheader(gfc, gi.scalefac_scale, 1);\n writeheader(gfc, gi.count1table_select, 1);\n }\n }\n if (gfp.error_protection) {\n CRC_writeheader(gfc, gfc.header[gfc.h_ptr].buf);\n }\n {\n var old = gfc.h_ptr;\n assert$5(gfc.header[old].ptr == gfc.sideinfo_len * 8);\n gfc.h_ptr = old + 1 & LameInternalFlags$1.MAX_HEADER_BUF - 1;\n gfc.header[gfc.h_ptr].write_timing = gfc.header[old].write_timing + bitsPerFrame;\n if (gfc.h_ptr == gfc.w_ptr) {\n System$3.err.println(\"Error: MAX_HEADER_BUF too small in bitstream.c \\n\");\n }\n }\n }\n function huffman_coder_count1(gfc, gi) {\n var h2 = Tables$1.ht[gi.count1table_select + 32];\n var i;\n var bits = 0;\n var ix = gi.big_values;\n var xr = gi.big_values;\n assert$5(gi.count1table_select < 2);\n for (i = (gi.count1 - gi.big_values) / 4; i > 0; --i) {\n var huffbits = 0;\n var p2 = 0;\n var v;\n v = gi.l3_enc[ix + 0];\n if (v != 0) {\n p2 += 8;\n if (gi.xr[xr + 0] < 0)\n huffbits++;\n }\n v = gi.l3_enc[ix + 1];\n if (v != 0) {\n p2 += 4;\n huffbits *= 2;\n if (gi.xr[xr + 1] < 0)\n huffbits++;\n }\n v = gi.l3_enc[ix + 2];\n if (v != 0) {\n p2 += 2;\n huffbits *= 2;\n if (gi.xr[xr + 2] < 0)\n huffbits++;\n }\n v = gi.l3_enc[ix + 3];\n if (v != 0) {\n p2++;\n huffbits *= 2;\n if (gi.xr[xr + 3] < 0)\n huffbits++;\n }\n ix += 4;\n xr += 4;\n putbits2(gfc, huffbits + h2.table[p2], h2.hlen[p2]);\n bits += h2.hlen[p2];\n }\n return bits;\n }\n function Huffmancode(gfc, tableindex, start, end, gi) {\n var h2 = Tables$1.ht[tableindex];\n var bits = 0;\n if (tableindex == 0)\n return bits;\n for (var i = start; i < end; i += 2) {\n var cbits = 0;\n var xbits = 0;\n var linbits = h2.xlen;\n var xlen = h2.xlen;\n var ext = 0;\n var x1 = gi.l3_enc[i];\n var x2 = gi.l3_enc[i + 1];\n if (x1 != 0) {\n if (gi.xr[i] < 0)\n ext++;\n cbits--;\n }\n if (tableindex > 15) {\n if (x1 > 14) {\n var linbits_x1 = x1 - 15;\n assert$5(linbits_x1 <= h2.linmax);\n ext |= linbits_x1 << 1;\n xbits = linbits;\n x1 = 15;\n }\n if (x2 > 14) {\n var linbits_x2 = x2 - 15;\n assert$5(linbits_x2 <= h2.linmax);\n ext <<= linbits;\n ext |= linbits_x2;\n xbits += linbits;\n x2 = 15;\n }\n xlen = 16;\n }\n if (x2 != 0) {\n ext <<= 1;\n if (gi.xr[i + 1] < 0)\n ext++;\n cbits--;\n }\n x1 = x1 * xlen + x2;\n xbits -= cbits;\n cbits += h2.hlen[x1];\n putbits2(gfc, h2.table[x1], cbits);\n putbits2(gfc, ext, xbits);\n bits += cbits + xbits;\n }\n return bits;\n }\n function ShortHuffmancodebits(gfc, gi) {\n var region1Start = 3 * gfc.scalefac_band.s[3];\n if (region1Start > gi.big_values)\n region1Start = gi.big_values;\n var bits = Huffmancode(gfc, gi.table_select[0], 0, region1Start, gi);\n bits += Huffmancode(\n gfc,\n gi.table_select[1],\n region1Start,\n gi.big_values,\n gi\n );\n return bits;\n }\n function LongHuffmancodebits(gfc, gi) {\n var bigvalues, bits;\n var region1Start, region2Start;\n bigvalues = gi.big_values;\n var i = gi.region0_count + 1;\n assert$5(i < gfc.scalefac_band.l.length);\n region1Start = gfc.scalefac_band.l[i];\n i += gi.region1_count + 1;\n assert$5(i < gfc.scalefac_band.l.length);\n region2Start = gfc.scalefac_band.l[i];\n if (region1Start > bigvalues)\n region1Start = bigvalues;\n if (region2Start > bigvalues)\n region2Start = bigvalues;\n bits = Huffmancode(gfc, gi.table_select[0], 0, region1Start, gi);\n bits += Huffmancode(gfc, gi.table_select[1], region1Start, region2Start, gi);\n bits += Huffmancode(gfc, gi.table_select[2], region2Start, bigvalues, gi);\n return bits;\n }\n function writeMainData(gfp) {\n var gr;\n var ch;\n var sfb;\n var data_bits;\n var tot_bits = 0;\n var gfc = gfp.internal_flags;\n var l3_side = gfc.l3_side;\n if (gfp.version == 1) {\n for (gr = 0; gr < 2; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var gi = l3_side.tt[gr][ch];\n var slen1 = Takehiro.slen1_tab[gi.scalefac_compress];\n var slen2 = Takehiro.slen2_tab[gi.scalefac_compress];\n data_bits = 0;\n for (sfb = 0; sfb < gi.sfbdivide; sfb++) {\n if (gi.scalefac[sfb] == -1)\n continue;\n putbits2(gfc, gi.scalefac[sfb], slen1);\n data_bits += slen1;\n }\n for (; sfb < gi.sfbmax; sfb++) {\n if (gi.scalefac[sfb] == -1)\n continue;\n putbits2(gfc, gi.scalefac[sfb], slen2);\n data_bits += slen2;\n }\n assert$5(data_bits == gi.part2_length);\n if (gi.block_type == Encoder.SHORT_TYPE) {\n data_bits += ShortHuffmancodebits(gfc, gi);\n } else {\n data_bits += LongHuffmancodebits(gfc, gi);\n }\n data_bits += huffman_coder_count1(gfc, gi);\n assert$5(data_bits == gi.part2_3_length + gi.part2_length);\n tot_bits += data_bits;\n }\n }\n } else {\n gr = 0;\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var gi = l3_side.tt[gr][ch];\n var i;\n var sfb_partition;\n var scale_bits = 0;\n assert$5(gi.sfb_partition_table != null);\n data_bits = 0;\n sfb = 0;\n sfb_partition = 0;\n if (gi.block_type == Encoder.SHORT_TYPE) {\n for (; sfb_partition < 4; sfb_partition++) {\n var sfbs = gi.sfb_partition_table[sfb_partition] / 3;\n var slen = gi.slen[sfb_partition];\n for (i = 0; i < sfbs; i++, sfb++) {\n putbits2(gfc, Math.max(gi.scalefac[sfb * 3 + 0], 0), slen);\n putbits2(gfc, Math.max(gi.scalefac[sfb * 3 + 1], 0), slen);\n putbits2(gfc, Math.max(gi.scalefac[sfb * 3 + 2], 0), slen);\n scale_bits += 3 * slen;\n }\n }\n data_bits += ShortHuffmancodebits(gfc, gi);\n } else {\n for (; sfb_partition < 4; sfb_partition++) {\n var sfbs = gi.sfb_partition_table[sfb_partition];\n var slen = gi.slen[sfb_partition];\n for (i = 0; i < sfbs; i++, sfb++) {\n putbits2(gfc, Math.max(gi.scalefac[sfb], 0), slen);\n scale_bits += slen;\n }\n }\n data_bits += LongHuffmancodebits(gfc, gi);\n }\n data_bits += huffman_coder_count1(gfc, gi);\n assert$5(data_bits == gi.part2_3_length);\n assert$5(scale_bits == gi.part2_length);\n tot_bits += scale_bits + data_bits;\n }\n }\n return tot_bits;\n }\n function TotalBytes() {\n this.total = 0;\n }\n function compute_flushbits(gfp, total_bytes_output) {\n var gfc = gfp.internal_flags;\n var flushbits, remaining_headers;\n var bitsPerFrame;\n var last_ptr, first_ptr;\n first_ptr = gfc.w_ptr;\n last_ptr = gfc.h_ptr - 1;\n if (last_ptr == -1)\n last_ptr = LameInternalFlags$1.MAX_HEADER_BUF - 1;\n flushbits = gfc.header[last_ptr].write_timing - totbit;\n total_bytes_output.total = flushbits;\n if (flushbits >= 0) {\n remaining_headers = 1 + last_ptr - first_ptr;\n if (last_ptr < first_ptr) {\n remaining_headers = 1 + last_ptr - first_ptr + LameInternalFlags$1.MAX_HEADER_BUF;\n }\n flushbits -= remaining_headers * 8 * gfc.sideinfo_len;\n }\n bitsPerFrame = self2.getframebits(gfp);\n flushbits += bitsPerFrame;\n total_bytes_output.total += bitsPerFrame;\n if (total_bytes_output.total % 8 != 0) {\n total_bytes_output.total = 1 + total_bytes_output.total / 8;\n } else\n total_bytes_output.total = total_bytes_output.total / 8;\n total_bytes_output.total += bufByteIdx + 1;\n if (flushbits < 0) {\n System$3.err.println(\"strange error flushing buffer ... \\n\");\n }\n return flushbits;\n }\n this.flush_bitstream = function(gfp) {\n var gfc = gfp.internal_flags;\n var l3_side;\n var flushbits;\n var last_ptr = gfc.h_ptr - 1;\n if (last_ptr == -1)\n last_ptr = LameInternalFlags$1.MAX_HEADER_BUF - 1;\n l3_side = gfc.l3_side;\n if ((flushbits = compute_flushbits(gfp, new TotalBytes())) < 0)\n return;\n drain_into_ancillary(gfp, flushbits);\n assert$5(gfc.header[last_ptr].write_timing + this.getframebits(gfp) == totbit);\n gfc.ResvSize = 0;\n l3_side.main_data_begin = 0;\n if (gfc.findReplayGain) {\n var RadioGain = ga.GetTitleGain(gfc.rgdata);\n assert$5(NEQ(RadioGain, GainAnalysis.GAIN_NOT_ENOUGH_SAMPLES));\n gfc.RadioGain = Math.floor(RadioGain * 10 + 0.5) | 0;\n }\n if (gfc.findPeakSample) {\n gfc.noclipGainChange = Math.ceil(Math.log10(gfc.PeakSample / 32767) * 20 * 10) | 0;\n if (gfc.noclipGainChange > 0) {\n if (EQ(gfp.scale, 1) || EQ(gfp.scale, 0)) {\n gfc.noclipScale = Math.floor(32767 / gfc.PeakSample * 100) / 100;\n } else {\n gfc.noclipScale = -1;\n }\n } else {\n gfc.noclipScale = -1;\n }\n }\n };\n this.add_dummy_byte = function(gfp, val, n) {\n var gfc = gfp.internal_flags;\n var i;\n while (n-- > 0) {\n putbits_noheaders(gfc, val, 8);\n for (i = 0; i < LameInternalFlags$1.MAX_HEADER_BUF; ++i) {\n gfc.header[i].write_timing += 8;\n }\n }\n };\n this.format_bitstream = function(gfp) {\n var gfc = gfp.internal_flags;\n var l3_side;\n l3_side = gfc.l3_side;\n var bitsPerFrame = this.getframebits(gfp);\n drain_into_ancillary(gfp, l3_side.resvDrain_pre);\n encodeSideInfo2(gfp, bitsPerFrame);\n var bits = 8 * gfc.sideinfo_len;\n bits += writeMainData(gfp);\n drain_into_ancillary(gfp, l3_side.resvDrain_post);\n bits += l3_side.resvDrain_post;\n l3_side.main_data_begin += (bitsPerFrame - bits) / 8;\n if (compute_flushbits(gfp, new TotalBytes()) != gfc.ResvSize) {\n System$3.err.println(\"Internal buffer inconsistency. flushbits <> ResvSize\");\n }\n if (l3_side.main_data_begin * 8 != gfc.ResvSize) {\n System$3.err.printf(\n \"bit reservoir error: \\nl3_side.main_data_begin: %d \\nResvoir size: %d \\nresv drain (post) %d \\nresv drain (pre) %d \\nheader and sideinfo: %d \\ndata bits: %d \\ntotal bits: %d (remainder: %d) \\nbitsperframe: %d \\n\",\n 8 * l3_side.main_data_begin,\n gfc.ResvSize,\n l3_side.resvDrain_post,\n l3_side.resvDrain_pre,\n 8 * gfc.sideinfo_len,\n bits - l3_side.resvDrain_post - 8 * gfc.sideinfo_len,\n bits,\n bits % 8,\n bitsPerFrame\n );\n System$3.err.println(\n \"This is a fatal error. It has several possible causes:\"\n );\n System$3.err.println(\n \"90%% LAME compiled with buggy version of gcc using advanced optimizations\"\n );\n System$3.err.println(\" 9%% Your system is overclocked\");\n System$3.err.println(\" 1%% bug in LAME encoding library\");\n gfc.ResvSize = l3_side.main_data_begin * 8;\n }\n if (totbit > 1e9) {\n var i;\n for (i = 0; i < LameInternalFlags$1.MAX_HEADER_BUF; ++i) {\n gfc.header[i].write_timing -= totbit;\n }\n totbit = 0;\n }\n return 0;\n };\n this.copy_buffer = function(gfc, buffer, bufferPos, size2, mp3data) {\n var minimum = bufByteIdx + 1;\n if (minimum <= 0)\n return 0;\n if (size2 != 0 && minimum > size2) {\n return -1;\n }\n System$3.arraycopy(buf, 0, buffer, bufferPos, minimum);\n bufByteIdx = -1;\n bufBitIdx = 0;\n if (mp3data != 0) {\n var crc = new_int$1(1);\n crc[0] = gfc.nMusicCRC;\n vbr.updateMusicCRC(crc, buffer, bufferPos, minimum);\n gfc.nMusicCRC = crc[0];\n if (minimum > 0) {\n gfc.VBR_seek_table.nBytesWritten += minimum;\n }\n if (gfc.decode_on_the_fly) {\n var pcm_buf = new_float_n([2, 1152]);\n var mp3_in = minimum;\n var samples_out = -1;\n var i;\n while (samples_out != 0) {\n samples_out = mpg.hip_decode1_unclipped(\n gfc.hip,\n buffer,\n bufferPos,\n mp3_in,\n pcm_buf[0],\n pcm_buf[1]\n );\n mp3_in = 0;\n if (samples_out == -1) {\n samples_out = 0;\n }\n if (samples_out > 0) {\n if (gfc.findPeakSample) {\n for (i = 0; i < samples_out; i++) {\n if (pcm_buf[0][i] > gfc.PeakSample) {\n gfc.PeakSample = pcm_buf[0][i];\n } else if (-pcm_buf[0][i] > gfc.PeakSample) {\n gfc.PeakSample = -pcm_buf[0][i];\n }\n }\n if (gfc.channels_out > 1) {\n for (i = 0; i < samples_out; i++) {\n if (pcm_buf[1][i] > gfc.PeakSample) {\n gfc.PeakSample = pcm_buf[1][i];\n } else if (-pcm_buf[1][i] > gfc.PeakSample) {\n gfc.PeakSample = -pcm_buf[1][i];\n }\n }\n }\n }\n if (gfc.findReplayGain) {\n if (ga.AnalyzeSamples(\n gfc.rgdata,\n pcm_buf[0],\n 0,\n pcm_buf[1],\n 0,\n samples_out,\n gfc.channels_out\n ) == GainAnalysis.GAIN_ANALYSIS_ERROR) {\n return -6;\n }\n }\n }\n }\n }\n }\n return minimum;\n };\n this.init_bit_stream_w = function(gfc) {\n buf = new_byte$2(Lame$1.LAME_MAXMP3BUFFER);\n gfc.h_ptr = gfc.w_ptr = 0;\n gfc.header[gfc.h_ptr].write_timing = 0;\n bufByteIdx = -1;\n bufBitIdx = 0;\n totbit = 0;\n };\n}\nvar System$2 = common.System;\nvar VbrMode$3 = common.VbrMode;\nvar ShortBlock$1 = common.ShortBlock;\nvar new_float$2 = common.new_float;\nvar new_int_n = common.new_int_n;\nvar new_short_n = common.new_short_n;\nvar assert$4 = common.assert;\nfunction Lame$1() {\n var self2 = this;\n var LAME_MAXALBUMART = 128 * 1024;\n Lame$1.V9 = 410;\n Lame$1.V8 = 420;\n Lame$1.V7 = 430;\n Lame$1.V6 = 440;\n Lame$1.V5 = 450;\n Lame$1.V4 = 460;\n Lame$1.V3 = 470;\n Lame$1.V2 = 480;\n Lame$1.V1 = 490;\n Lame$1.V0 = 500;\n Lame$1.R3MIX = 1e3;\n Lame$1.STANDARD = 1001;\n Lame$1.EXTREME = 1002;\n Lame$1.INSANE = 1003;\n Lame$1.STANDARD_FAST = 1004;\n Lame$1.EXTREME_FAST = 1005;\n Lame$1.MEDIUM = 1006;\n Lame$1.MEDIUM_FAST = 1007;\n var LAME_MAXMP3BUFFER = 16384 + LAME_MAXALBUMART;\n Lame$1.LAME_MAXMP3BUFFER = LAME_MAXMP3BUFFER;\n var ga;\n var bs;\n var p2;\n var qupvt;\n var qu;\n var psy = new PsyModel();\n var vbr;\n var id3;\n var mpglib;\n this.enc = new Encoder();\n this.setModules = function(_ga, _bs, _p, _qupvt, _qu, _vbr, _ver, _id3, _mpglib) {\n ga = _ga;\n bs = _bs;\n p2 = _p;\n qupvt = _qupvt;\n qu = _qu;\n vbr = _vbr;\n id3 = _id3;\n mpglib = _mpglib;\n this.enc.setModules(bs, psy, qupvt, vbr);\n };\n function PSY() {\n this.mask_adjust = 0;\n this.mask_adjust_short = 0;\n this.bo_l_weight = new_float$2(Encoder.SBMAX_l);\n this.bo_s_weight = new_float$2(Encoder.SBMAX_s);\n }\n function LowPassHighPass() {\n this.lowerlimit = 0;\n }\n function BandPass(bitrate, lPass) {\n this.lowpass = lPass;\n }\n var LAME_ID = 4294479419;\n function lame_init_old(gfp) {\n var gfc;\n gfp.class_id = LAME_ID;\n gfc = gfp.internal_flags = new LameInternalFlags$1();\n gfp.mode = MPEGMode.NOT_SET;\n gfp.original = 1;\n gfp.in_samplerate = 44100;\n gfp.num_channels = 2;\n gfp.num_samples = -1;\n gfp.bWriteVbrTag = true;\n gfp.quality = -1;\n gfp.short_blocks = null;\n gfc.subblock_gain = -1;\n gfp.lowpassfreq = 0;\n gfp.highpassfreq = 0;\n gfp.lowpasswidth = -1;\n gfp.highpasswidth = -1;\n gfp.VBR = VbrMode$3.vbr_off;\n gfp.VBR_q = 4;\n gfp.ATHcurve = -1;\n gfp.VBR_mean_bitrate_kbps = 128;\n gfp.VBR_min_bitrate_kbps = 0;\n gfp.VBR_max_bitrate_kbps = 0;\n gfp.VBR_hard_min = 0;\n gfc.VBR_min_bitrate = 1;\n gfc.VBR_max_bitrate = 13;\n gfp.quant_comp = -1;\n gfp.quant_comp_short = -1;\n gfp.msfix = -1;\n gfc.resample_ratio = 1;\n gfc.OldValue[0] = 180;\n gfc.OldValue[1] = 180;\n gfc.CurrentStep[0] = 4;\n gfc.CurrentStep[1] = 4;\n gfc.masking_lower = 1;\n gfc.nsPsy.attackthre = -1;\n gfc.nsPsy.attackthre_s = -1;\n gfp.scale = -1;\n gfp.athaa_type = -1;\n gfp.ATHtype = -1;\n gfp.athaa_loudapprox = -1;\n gfp.athaa_sensitivity = 0;\n gfp.useTemporal = null;\n gfp.interChRatio = -1;\n gfc.mf_samples_to_encode = Encoder.ENCDELAY + Encoder.POSTDELAY;\n gfp.encoder_padding = 0;\n gfc.mf_size = Encoder.ENCDELAY - Encoder.MDCTDELAY;\n gfp.findReplayGain = false;\n gfp.decode_on_the_fly = false;\n gfc.decode_on_the_fly = false;\n gfc.findReplayGain = false;\n gfc.findPeakSample = false;\n gfc.RadioGain = 0;\n gfc.AudiophileGain = 0;\n gfc.noclipGainChange = 0;\n gfc.noclipScale = -1;\n gfp.preset = 0;\n gfp.write_id3tag_automatic = true;\n return 0;\n }\n this.lame_init = function() {\n var gfp = new LameGlobalFlags();\n lame_init_old(gfp);\n gfp.lame_allocated_gfp = 1;\n return gfp;\n };\n function filter_coef(x) {\n if (x > 1)\n return 0;\n if (x <= 0)\n return 1;\n return Math.cos(Math.PI / 2 * x);\n }\n this.nearestBitrateFullIndex = function(bitrate) {\n var full_bitrate_table = [\n 8,\n 16,\n 24,\n 32,\n 40,\n 48,\n 56,\n 64,\n 80,\n 96,\n 112,\n 128,\n 160,\n 192,\n 224,\n 256,\n 320\n ];\n var lower_range = 0;\n var lower_range_kbps = 0;\n var upper_range = 0;\n var upper_range_kbps = 0;\n upper_range_kbps = full_bitrate_table[16];\n upper_range = 16;\n lower_range_kbps = full_bitrate_table[16];\n lower_range = 16;\n for (var b = 0; b < 16; b++) {\n if (Math.max(bitrate, full_bitrate_table[b + 1]) != bitrate) {\n upper_range_kbps = full_bitrate_table[b + 1];\n upper_range = b + 1;\n lower_range_kbps = full_bitrate_table[b];\n lower_range = b;\n break;\n }\n }\n if (upper_range_kbps - bitrate > bitrate - lower_range_kbps) {\n return lower_range;\n }\n return upper_range;\n };\n function optimum_samplefreq(lowpassfreq, input_samplefreq) {\n var suggested_samplefreq = 44100;\n if (input_samplefreq >= 48e3)\n suggested_samplefreq = 48e3;\n else if (input_samplefreq >= 44100)\n suggested_samplefreq = 44100;\n else if (input_samplefreq >= 32e3)\n suggested_samplefreq = 32e3;\n else if (input_samplefreq >= 24e3)\n suggested_samplefreq = 24e3;\n else if (input_samplefreq >= 22050)\n suggested_samplefreq = 22050;\n else if (input_samplefreq >= 16e3)\n suggested_samplefreq = 16e3;\n else if (input_samplefreq >= 12e3)\n suggested_samplefreq = 12e3;\n else if (input_samplefreq >= 11025)\n suggested_samplefreq = 11025;\n else if (input_samplefreq >= 8e3)\n suggested_samplefreq = 8e3;\n if (lowpassfreq == -1)\n return suggested_samplefreq;\n if (lowpassfreq <= 15960)\n suggested_samplefreq = 44100;\n if (lowpassfreq <= 15250)\n suggested_samplefreq = 32e3;\n if (lowpassfreq <= 11220)\n suggested_samplefreq = 24e3;\n if (lowpassfreq <= 9970)\n suggested_samplefreq = 22050;\n if (lowpassfreq <= 7230)\n suggested_samplefreq = 16e3;\n if (lowpassfreq <= 5420)\n suggested_samplefreq = 12e3;\n if (lowpassfreq <= 4510)\n suggested_samplefreq = 11025;\n if (lowpassfreq <= 3970)\n suggested_samplefreq = 8e3;\n if (input_samplefreq < suggested_samplefreq) {\n if (input_samplefreq > 44100) {\n return 48e3;\n }\n if (input_samplefreq > 32e3) {\n return 44100;\n }\n if (input_samplefreq > 24e3) {\n return 32e3;\n }\n if (input_samplefreq > 22050) {\n return 24e3;\n }\n if (input_samplefreq > 16e3) {\n return 22050;\n }\n if (input_samplefreq > 12e3) {\n return 16e3;\n }\n if (input_samplefreq > 11025) {\n return 12e3;\n }\n if (input_samplefreq > 8e3) {\n return 11025;\n }\n return 8e3;\n }\n return suggested_samplefreq;\n }\n function SmpFrqIndex(sample_freq, gpf) {\n switch (sample_freq) {\n case 44100:\n gpf.version = 1;\n return 0;\n case 48e3:\n gpf.version = 1;\n return 1;\n case 32e3:\n gpf.version = 1;\n return 2;\n case 22050:\n gpf.version = 0;\n return 0;\n case 24e3:\n gpf.version = 0;\n return 1;\n case 16e3:\n gpf.version = 0;\n return 2;\n case 11025:\n gpf.version = 0;\n return 0;\n case 12e3:\n gpf.version = 0;\n return 1;\n case 8e3:\n gpf.version = 0;\n return 2;\n default:\n gpf.version = 0;\n return -1;\n }\n }\n function FindNearestBitrate(bRate, version2, samplerate) {\n if (samplerate < 16e3)\n version2 = 2;\n var bitrate = Tables$1.bitrate_table[version2][1];\n for (var i = 2; i <= 14; i++) {\n if (Tables$1.bitrate_table[version2][i] > 0) {\n if (Math.abs(Tables$1.bitrate_table[version2][i] - bRate) < Math.abs(bitrate - bRate)) {\n bitrate = Tables$1.bitrate_table[version2][i];\n }\n }\n }\n return bitrate;\n }\n function BitrateIndex(bRate, version2, samplerate) {\n if (samplerate < 16e3)\n version2 = 2;\n for (var i = 0; i <= 14; i++) {\n if (Tables$1.bitrate_table[version2][i] > 0) {\n if (Tables$1.bitrate_table[version2][i] == bRate) {\n return i;\n }\n }\n }\n return -1;\n }\n function optimum_bandwidth(lh, bitrate) {\n var freq_map = [\n new BandPass(8, 2e3),\n new BandPass(16, 3700),\n new BandPass(24, 3900),\n new BandPass(32, 5500),\n new BandPass(40, 7e3),\n new BandPass(48, 7500),\n new BandPass(56, 1e4),\n new BandPass(64, 11e3),\n new BandPass(80, 13500),\n new BandPass(96, 15100),\n new BandPass(112, 15600),\n new BandPass(128, 17e3),\n new BandPass(160, 17500),\n new BandPass(192, 18600),\n new BandPass(224, 19400),\n new BandPass(256, 19700),\n new BandPass(320, 20500)\n ];\n var table_index = self2.nearestBitrateFullIndex(bitrate);\n lh.lowerlimit = freq_map[table_index].lowpass;\n }\n function lame_init_params_ppflt(gfp) {\n var gfc = gfp.internal_flags;\n var lowpass_band = 32;\n var highpass_band = -1;\n if (gfc.lowpass1 > 0) {\n var minband = 999;\n for (var band = 0; band <= 31; band++) {\n var freq = band / 31;\n if (freq >= gfc.lowpass2) {\n lowpass_band = Math.min(lowpass_band, band);\n }\n if (gfc.lowpass1 < freq && freq < gfc.lowpass2) {\n minband = Math.min(minband, band);\n }\n }\n if (minband == 999) {\n gfc.lowpass1 = (lowpass_band - 0.75) / 31;\n } else {\n gfc.lowpass1 = (minband - 0.75) / 31;\n }\n gfc.lowpass2 = lowpass_band / 31;\n }\n if (gfc.highpass2 > 0) {\n if (gfc.highpass2 < 0.9 * (0.75 / 31)) {\n gfc.highpass1 = 0;\n gfc.highpass2 = 0;\n System$2.err.println(\n \"Warning: highpass filter disabled. highpass frequency too small\\n\"\n );\n }\n }\n if (gfc.highpass2 > 0) {\n var maxband = -1;\n for (var band = 0; band <= 31; band++) {\n var freq = band / 31;\n if (freq <= gfc.highpass1) {\n highpass_band = Math.max(highpass_band, band);\n }\n if (gfc.highpass1 < freq && freq < gfc.highpass2) {\n maxband = Math.max(maxband, band);\n }\n }\n gfc.highpass1 = highpass_band / 31;\n if (maxband == -1) {\n gfc.highpass2 = (highpass_band + 0.75) / 31;\n } else {\n gfc.highpass2 = (maxband + 0.75) / 31;\n }\n }\n for (var band = 0; band < 32; band++) {\n var fc1, fc2;\n var freq = band / 31;\n if (gfc.highpass2 > gfc.highpass1) {\n fc1 = filter_coef(\n (gfc.highpass2 - freq) / (gfc.highpass2 - gfc.highpass1 + 1e-20)\n );\n } else {\n fc1 = 1;\n }\n if (gfc.lowpass2 > gfc.lowpass1) {\n fc2 = filter_coef(\n (freq - gfc.lowpass1) / (gfc.lowpass2 - gfc.lowpass1 + 1e-20)\n );\n } else {\n fc2 = 1;\n }\n gfc.amp_filter[band] = fc1 * fc2;\n }\n }\n function lame_init_qval(gfp) {\n var gfc = gfp.internal_flags;\n switch (gfp.quality) {\n default:\n case 9:\n gfc.psymodel = 0;\n gfc.noise_shaping = 0;\n gfc.noise_shaping_amp = 0;\n gfc.noise_shaping_stop = 0;\n gfc.use_best_huffman = 0;\n gfc.full_outer_loop = 0;\n break;\n case 8:\n gfp.quality = 7;\n case 7:\n gfc.psymodel = 1;\n gfc.noise_shaping = 0;\n gfc.noise_shaping_amp = 0;\n gfc.noise_shaping_stop = 0;\n gfc.use_best_huffman = 0;\n gfc.full_outer_loop = 0;\n break;\n case 6:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0)\n gfc.noise_shaping = 1;\n gfc.noise_shaping_amp = 0;\n gfc.noise_shaping_stop = 0;\n if (gfc.subblock_gain == -1)\n gfc.subblock_gain = 1;\n gfc.use_best_huffman = 0;\n gfc.full_outer_loop = 0;\n break;\n case 5:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0)\n gfc.noise_shaping = 1;\n gfc.noise_shaping_amp = 0;\n gfc.noise_shaping_stop = 0;\n if (gfc.subblock_gain == -1)\n gfc.subblock_gain = 1;\n gfc.use_best_huffman = 0;\n gfc.full_outer_loop = 0;\n break;\n case 4:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0)\n gfc.noise_shaping = 1;\n gfc.noise_shaping_amp = 0;\n gfc.noise_shaping_stop = 0;\n if (gfc.subblock_gain == -1)\n gfc.subblock_gain = 1;\n gfc.use_best_huffman = 1;\n gfc.full_outer_loop = 0;\n break;\n case 3:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0)\n gfc.noise_shaping = 1;\n gfc.noise_shaping_amp = 1;\n gfc.noise_shaping_stop = 1;\n if (gfc.subblock_gain == -1)\n gfc.subblock_gain = 1;\n gfc.use_best_huffman = 1;\n gfc.full_outer_loop = 0;\n break;\n case 2:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0)\n gfc.noise_shaping = 1;\n if (gfc.substep_shaping == 0)\n gfc.substep_shaping = 2;\n gfc.noise_shaping_amp = 1;\n gfc.noise_shaping_stop = 1;\n if (gfc.subblock_gain == -1)\n gfc.subblock_gain = 1;\n gfc.use_best_huffman = 1;\n gfc.full_outer_loop = 0;\n break;\n case 1:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0)\n gfc.noise_shaping = 1;\n if (gfc.substep_shaping == 0)\n gfc.substep_shaping = 2;\n gfc.noise_shaping_amp = 2;\n gfc.noise_shaping_stop = 1;\n if (gfc.subblock_gain == -1)\n gfc.subblock_gain = 1;\n gfc.use_best_huffman = 1;\n gfc.full_outer_loop = 0;\n break;\n case 0:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0)\n gfc.noise_shaping = 1;\n if (gfc.substep_shaping == 0)\n gfc.substep_shaping = 2;\n gfc.noise_shaping_amp = 2;\n gfc.noise_shaping_stop = 1;\n if (gfc.subblock_gain == -1)\n gfc.subblock_gain = 1;\n gfc.use_best_huffman = 1;\n gfc.full_outer_loop = 0;\n break;\n }\n }\n function lame_init_bitstream(gfp) {\n var gfc = gfp.internal_flags;\n gfp.frameNum = 0;\n if (gfp.write_id3tag_automatic) {\n id3.id3tag_write_v2(gfp);\n }\n gfc.bitrate_stereoMode_Hist = new_int_n([16, 4 + 1]);\n gfc.bitrate_blockType_Hist = new_int_n([16, 4 + 1 + 1]);\n gfc.PeakSample = 0;\n if (gfp.bWriteVbrTag)\n vbr.InitVbrTag(gfp);\n }\n this.lame_init_params = function(gfp) {\n var gfc = gfp.internal_flags;\n gfc.Class_ID = 0;\n if (gfc.ATH == null)\n gfc.ATH = new ATH();\n if (gfc.PSY == null)\n gfc.PSY = new PSY();\n if (gfc.rgdata == null)\n gfc.rgdata = new ReplayGain();\n gfc.channels_in = gfp.num_channels;\n if (gfc.channels_in == 1)\n gfp.mode = MPEGMode.MONO;\n gfc.channels_out = gfp.mode == MPEGMode.MONO ? 1 : 2;\n gfc.mode_ext = Encoder.MPG_MD_MS_LR;\n if (gfp.mode == MPEGMode.MONO)\n gfp.force_ms = false;\n if (gfp.VBR == VbrMode$3.vbr_off && gfp.VBR_mean_bitrate_kbps != 128 && gfp.brate == 0) {\n gfp.brate = gfp.VBR_mean_bitrate_kbps;\n }\n if (gfp.VBR == VbrMode$3.vbr_off || gfp.VBR == VbrMode$3.vbr_mtrh || gfp.VBR == VbrMode$3.vbr_mt)\n ;\n else {\n gfp.free_format = false;\n }\n if (gfp.VBR == VbrMode$3.vbr_off && gfp.brate == 0) {\n if (BitStream$1.EQ(gfp.compression_ratio, 0))\n gfp.compression_ratio = 11.025;\n }\n if (gfp.VBR == VbrMode$3.vbr_off && gfp.compression_ratio > 0) {\n if (gfp.out_samplerate == 0) {\n gfp.out_samplerate = map2MP3Frequency(int(0.97 * gfp.in_samplerate));\n }\n gfp.brate = 0 | gfp.out_samplerate * 16 * gfc.channels_out / (1e3 * gfp.compression_ratio);\n gfc.samplerate_index = SmpFrqIndex(gfp.out_samplerate, gfp);\n if (!gfp.free_format) {\n gfp.brate = FindNearestBitrate(\n gfp.brate,\n gfp.version,\n gfp.out_samplerate\n );\n }\n }\n if (gfp.out_samplerate != 0) {\n if (gfp.out_samplerate < 16e3) {\n gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps, 8);\n gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps, 64);\n } else if (gfp.out_samplerate < 32e3) {\n gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps, 8);\n gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps, 160);\n } else {\n gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps, 32);\n gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps, 320);\n }\n }\n if (gfp.lowpassfreq == 0) {\n var lowpass = 16e3;\n switch (gfp.VBR) {\n case VbrMode$3.vbr_off: {\n var lh = new LowPassHighPass();\n optimum_bandwidth(lh, gfp.brate);\n lowpass = lh.lowerlimit;\n break;\n }\n case VbrMode$3.vbr_abr: {\n var lh = new LowPassHighPass();\n optimum_bandwidth(lh, gfp.VBR_mean_bitrate_kbps);\n lowpass = lh.lowerlimit;\n break;\n }\n case VbrMode$3.vbr_rh: {\n var x = [\n 19500,\n 19e3,\n 18600,\n 18e3,\n 17500,\n 16e3,\n 15600,\n 14900,\n 12500,\n 1e4,\n 3950\n ];\n if (gfp.VBR_q >= 0 && gfp.VBR_q <= 9) {\n var a = x[gfp.VBR_q];\n var b = x[gfp.VBR_q + 1];\n var m = gfp.VBR_q_frac;\n lowpass = linear_int(a, b, m);\n } else {\n lowpass = 19500;\n }\n break;\n }\n default: {\n var x = [\n 19500,\n 19e3,\n 18500,\n 18e3,\n 17500,\n 16500,\n 15500,\n 14500,\n 12500,\n 9500,\n 3950\n ];\n if (gfp.VBR_q >= 0 && gfp.VBR_q <= 9) {\n var a = x[gfp.VBR_q];\n var b = x[gfp.VBR_q + 1];\n var m = gfp.VBR_q_frac;\n lowpass = linear_int(a, b, m);\n } else {\n lowpass = 19500;\n }\n }\n }\n if (gfp.mode == MPEGMode.MONO && (gfp.VBR == VbrMode$3.vbr_off || gfp.VBR == VbrMode$3.vbr_abr)) {\n lowpass *= 1.5;\n }\n gfp.lowpassfreq = lowpass | 0;\n }\n if (gfp.out_samplerate == 0) {\n if (2 * gfp.lowpassfreq > gfp.in_samplerate) {\n gfp.lowpassfreq = gfp.in_samplerate / 2;\n }\n gfp.out_samplerate = optimum_samplefreq(\n gfp.lowpassfreq | 0,\n gfp.in_samplerate\n );\n }\n gfp.lowpassfreq = Math.min(20500, gfp.lowpassfreq);\n gfp.lowpassfreq = Math.min(gfp.out_samplerate / 2, gfp.lowpassfreq);\n if (gfp.VBR == VbrMode$3.vbr_off) {\n gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out / (1e3 * gfp.brate);\n }\n if (gfp.VBR == VbrMode$3.vbr_abr) {\n gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out / (1e3 * gfp.VBR_mean_bitrate_kbps);\n }\n if (!gfp.bWriteVbrTag) {\n gfp.findReplayGain = false;\n gfp.decode_on_the_fly = false;\n gfc.findPeakSample = false;\n }\n gfc.findReplayGain = gfp.findReplayGain;\n gfc.decode_on_the_fly = gfp.decode_on_the_fly;\n if (gfc.decode_on_the_fly)\n gfc.findPeakSample = true;\n if (gfc.findReplayGain) {\n if (ga.InitGainAnalysis(gfc.rgdata, gfp.out_samplerate) == GainAnalysis.INIT_GAIN_ANALYSIS_ERROR) {\n gfp.internal_flags = null;\n return -6;\n }\n }\n if (gfc.decode_on_the_fly && !gfp.decode_only) {\n if (gfc.hip != null) {\n mpglib.hip_decode_exit(gfc.hip);\n }\n gfc.hip = mpglib.hip_decode_init();\n }\n gfc.mode_gr = gfp.out_samplerate <= 24e3 ? 1 : 2;\n gfp.framesize = 576 * gfc.mode_gr;\n gfp.encoder_delay = Encoder.ENCDELAY;\n gfc.resample_ratio = gfp.in_samplerate / gfp.out_samplerate;\n switch (gfp.VBR) {\n case VbrMode$3.vbr_mt:\n case VbrMode$3.vbr_rh:\n case VbrMode$3.vbr_mtrh:\n {\n var cmp = [5.7, 6.5, 7.3, 8.2, 10, 11.9, 13, 14, 15, 16.5];\n gfp.compression_ratio = cmp[gfp.VBR_q];\n }\n break;\n case VbrMode$3.vbr_abr:\n gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out / (1e3 * gfp.VBR_mean_bitrate_kbps);\n break;\n default:\n gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out / (1e3 * gfp.brate);\n break;\n }\n if (gfp.mode == MPEGMode.NOT_SET) {\n gfp.mode = MPEGMode.JOINT_STEREO;\n }\n if (gfp.highpassfreq > 0) {\n gfc.highpass1 = 2 * gfp.highpassfreq;\n if (gfp.highpasswidth >= 0) {\n gfc.highpass2 = 2 * (gfp.highpassfreq + gfp.highpasswidth);\n } else {\n gfc.highpass2 = (1 + 0) * 2 * gfp.highpassfreq;\n }\n gfc.highpass1 /= gfp.out_samplerate;\n gfc.highpass2 /= gfp.out_samplerate;\n } else {\n gfc.highpass1 = 0;\n gfc.highpass2 = 0;\n }\n if (gfp.lowpassfreq > 0) {\n gfc.lowpass2 = 2 * gfp.lowpassfreq;\n if (gfp.lowpasswidth >= 0) {\n gfc.lowpass1 = 2 * (gfp.lowpassfreq - gfp.lowpasswidth);\n if (gfc.lowpass1 < 0)\n gfc.lowpass1 = 0;\n } else {\n gfc.lowpass1 = (1 - 0) * 2 * gfp.lowpassfreq;\n }\n gfc.lowpass1 /= gfp.out_samplerate;\n gfc.lowpass2 /= gfp.out_samplerate;\n } else {\n gfc.lowpass1 = 0;\n gfc.lowpass2 = 0;\n }\n lame_init_params_ppflt(gfp);\n gfc.samplerate_index = SmpFrqIndex(gfp.out_samplerate, gfp);\n if (gfc.samplerate_index < 0) {\n gfp.internal_flags = null;\n return -1;\n }\n if (gfp.VBR == VbrMode$3.vbr_off) {\n if (gfp.free_format) {\n gfc.bitrate_index = 0;\n } else {\n gfp.brate = FindNearestBitrate(\n gfp.brate,\n gfp.version,\n gfp.out_samplerate\n );\n gfc.bitrate_index = BitrateIndex(\n gfp.brate,\n gfp.version,\n gfp.out_samplerate\n );\n if (gfc.bitrate_index <= 0) {\n gfp.internal_flags = null;\n return -1;\n }\n }\n } else {\n gfc.bitrate_index = 1;\n }\n if (gfp.analysis)\n gfp.bWriteVbrTag = false;\n if (gfc.pinfo != null)\n gfp.bWriteVbrTag = false;\n bs.init_bit_stream_w(gfc);\n var j = gfc.samplerate_index + 3 * gfp.version + 6 * (gfp.out_samplerate < 16e3 ? 1 : 0);\n for (var i = 0; i < Encoder.SBMAX_l + 1; i++) {\n gfc.scalefac_band.l[i] = qupvt.sfBandIndex[j].l[i];\n }\n for (var i = 0; i < Encoder.PSFB21 + 1; i++) {\n var size2 = (gfc.scalefac_band.l[22] - gfc.scalefac_band.l[21]) / Encoder.PSFB21;\n var start = gfc.scalefac_band.l[21] + i * size2;\n gfc.scalefac_band.psfb21[i] = start;\n }\n gfc.scalefac_band.psfb21[Encoder.PSFB21] = 576;\n for (var i = 0; i < Encoder.SBMAX_s + 1; i++) {\n gfc.scalefac_band.s[i] = qupvt.sfBandIndex[j].s[i];\n }\n for (var i = 0; i < Encoder.PSFB12 + 1; i++) {\n var size2 = (gfc.scalefac_band.s[13] - gfc.scalefac_band.s[12]) / Encoder.PSFB12;\n var start = gfc.scalefac_band.s[12] + i * size2;\n gfc.scalefac_band.psfb12[i] = start;\n }\n gfc.scalefac_band.psfb12[Encoder.PSFB12] = 192;\n if (gfp.version == 1) {\n gfc.sideinfo_len = gfc.channels_out == 1 ? 4 + 17 : 4 + 32;\n } else\n gfc.sideinfo_len = gfc.channels_out == 1 ? 4 + 9 : 4 + 17;\n if (gfp.error_protection)\n gfc.sideinfo_len += 2;\n lame_init_bitstream(gfp);\n gfc.Class_ID = LAME_ID;\n {\n var k;\n for (k = 0; k < 19; k++) {\n gfc.nsPsy.pefirbuf[k] = 700 * gfc.mode_gr * gfc.channels_out;\n }\n if (gfp.ATHtype == -1)\n gfp.ATHtype = 4;\n }\n assert$4(gfp.VBR_q <= 9);\n assert$4(gfp.VBR_q >= 0);\n switch (gfp.VBR) {\n case VbrMode$3.vbr_mt:\n gfp.VBR = VbrMode$3.vbr_mtrh;\n case VbrMode$3.vbr_mtrh: {\n if (gfp.useTemporal == null) {\n gfp.useTemporal = false;\n }\n p2.apply_preset(gfp, 500 - gfp.VBR_q * 10, 0);\n if (gfp.quality < 0)\n gfp.quality = LAME_DEFAULT_QUALITY;\n if (gfp.quality < 5)\n gfp.quality = 0;\n if (gfp.quality > 5)\n gfp.quality = 5;\n gfc.PSY.mask_adjust = gfp.maskingadjust;\n gfc.PSY.mask_adjust_short = gfp.maskingadjust_short;\n if (gfp.experimentalY)\n gfc.sfb21_extra = false;\n else\n gfc.sfb21_extra = gfp.out_samplerate > 44e3;\n gfc.iteration_loop = new VBRNewIterationLoop(qu);\n break;\n }\n case VbrMode$3.vbr_rh: {\n p2.apply_preset(gfp, 500 - gfp.VBR_q * 10, 0);\n gfc.PSY.mask_adjust = gfp.maskingadjust;\n gfc.PSY.mask_adjust_short = gfp.maskingadjust_short;\n if (gfp.experimentalY)\n gfc.sfb21_extra = false;\n else\n gfc.sfb21_extra = gfp.out_samplerate > 44e3;\n if (gfp.quality > 6)\n gfp.quality = 6;\n if (gfp.quality < 0)\n gfp.quality = LAME_DEFAULT_QUALITY;\n gfc.iteration_loop = new VBROldIterationLoop(qu);\n break;\n }\n default: {\n var vbrmode;\n gfc.sfb21_extra = false;\n if (gfp.quality < 0)\n gfp.quality = LAME_DEFAULT_QUALITY;\n vbrmode = gfp.VBR;\n if (vbrmode == VbrMode$3.vbr_off)\n gfp.VBR_mean_bitrate_kbps = gfp.brate;\n p2.apply_preset(gfp, gfp.VBR_mean_bitrate_kbps, 0);\n gfp.VBR = vbrmode;\n gfc.PSY.mask_adjust = gfp.maskingadjust;\n gfc.PSY.mask_adjust_short = gfp.maskingadjust_short;\n if (vbrmode == VbrMode$3.vbr_off) {\n gfc.iteration_loop = new CBRNewIterationLoop(qu);\n } else {\n gfc.iteration_loop = new ABRIterationLoop(qu);\n }\n break;\n }\n }\n assert$4(gfp.scale >= 0);\n if (gfp.VBR != VbrMode$3.vbr_off) {\n gfc.VBR_min_bitrate = 1;\n gfc.VBR_max_bitrate = 14;\n if (gfp.out_samplerate < 16e3)\n gfc.VBR_max_bitrate = 8;\n if (gfp.VBR_min_bitrate_kbps != 0) {\n gfp.VBR_min_bitrate_kbps = FindNearestBitrate(\n gfp.VBR_min_bitrate_kbps,\n gfp.version,\n gfp.out_samplerate\n );\n gfc.VBR_min_bitrate = BitrateIndex(\n gfp.VBR_min_bitrate_kbps,\n gfp.version,\n gfp.out_samplerate\n );\n if (gfc.VBR_min_bitrate < 0)\n return -1;\n }\n if (gfp.VBR_max_bitrate_kbps != 0) {\n gfp.VBR_max_bitrate_kbps = FindNearestBitrate(\n gfp.VBR_max_bitrate_kbps,\n gfp.version,\n gfp.out_samplerate\n );\n gfc.VBR_max_bitrate = BitrateIndex(\n gfp.VBR_max_bitrate_kbps,\n gfp.version,\n gfp.out_samplerate\n );\n if (gfc.VBR_max_bitrate < 0)\n return -1;\n }\n gfp.VBR_min_bitrate_kbps = Tables$1.bitrate_table[gfp.version][gfc.VBR_min_bitrate];\n gfp.VBR_max_bitrate_kbps = Tables$1.bitrate_table[gfp.version][gfc.VBR_max_bitrate];\n gfp.VBR_mean_bitrate_kbps = Math.min(\n Tables$1.bitrate_table[gfp.version][gfc.VBR_max_bitrate],\n gfp.VBR_mean_bitrate_kbps\n );\n gfp.VBR_mean_bitrate_kbps = Math.max(\n Tables$1.bitrate_table[gfp.version][gfc.VBR_min_bitrate],\n gfp.VBR_mean_bitrate_kbps\n );\n }\n if (gfp.tune) {\n gfc.PSY.mask_adjust += gfp.tune_value_a;\n gfc.PSY.mask_adjust_short += gfp.tune_value_a;\n }\n lame_init_qval(gfp);\n assert$4(gfp.scale >= 0);\n if (gfp.athaa_type < 0)\n gfc.ATH.useAdjust = 3;\n else\n gfc.ATH.useAdjust = gfp.athaa_type;\n gfc.ATH.aaSensitivityP = Math.pow(10, gfp.athaa_sensitivity / -10);\n if (gfp.short_blocks == null) {\n gfp.short_blocks = ShortBlock$1.short_block_allowed;\n }\n if (gfp.short_blocks == ShortBlock$1.short_block_allowed && (gfp.mode == MPEGMode.JOINT_STEREO || gfp.mode == MPEGMode.STEREO)) {\n gfp.short_blocks = ShortBlock$1.short_block_coupled;\n }\n if (gfp.quant_comp < 0)\n gfp.quant_comp = 1;\n if (gfp.quant_comp_short < 0)\n gfp.quant_comp_short = 0;\n if (gfp.msfix < 0)\n gfp.msfix = 0;\n gfp.exp_nspsytune = gfp.exp_nspsytune | 1;\n if (gfp.internal_flags.nsPsy.attackthre < 0) {\n gfp.internal_flags.nsPsy.attackthre = PsyModel.NSATTACKTHRE;\n }\n if (gfp.internal_flags.nsPsy.attackthre_s < 0) {\n gfp.internal_flags.nsPsy.attackthre_s = PsyModel.NSATTACKTHRE_S;\n }\n assert$4(gfp.scale >= 0);\n if (gfp.scale < 0)\n gfp.scale = 1;\n if (gfp.ATHtype < 0)\n gfp.ATHtype = 4;\n if (gfp.ATHcurve < 0)\n gfp.ATHcurve = 4;\n if (gfp.athaa_loudapprox < 0)\n gfp.athaa_loudapprox = 2;\n if (gfp.interChRatio < 0)\n gfp.interChRatio = 0;\n if (gfp.useTemporal == null)\n gfp.useTemporal = true;\n gfc.slot_lag = gfc.frac_SpF = 0;\n if (gfp.VBR == VbrMode$3.vbr_off) {\n gfc.slot_lag = gfc.frac_SpF = (gfp.version + 1) * 72e3 * gfp.brate % gfp.out_samplerate | 0;\n }\n qupvt.iteration_init(gfp);\n psy.psymodel_init(gfp);\n assert$4(gfp.scale >= 0);\n return 0;\n };\n function update_inbuffer_size(gfc, nsamples) {\n if (gfc.in_buffer_0 == null || gfc.in_buffer_nsamples < nsamples) {\n gfc.in_buffer_0 = new_float$2(nsamples);\n gfc.in_buffer_1 = new_float$2(nsamples);\n gfc.in_buffer_nsamples = nsamples;\n }\n }\n this.lame_encode_flush = function(gfp, mp3buffer, mp3bufferPos, mp3buffer_size) {\n var gfc = gfp.internal_flags;\n var buffer = new_short_n([2, 1152]);\n var imp3 = 0;\n var mp3count;\n var mp3buffer_size_remaining;\n var end_padding;\n var frames_left;\n var samples_to_encode = gfc.mf_samples_to_encode - Encoder.POSTDELAY;\n var mf_needed = calcNeeded(gfp);\n if (gfc.mf_samples_to_encode < 1) {\n return 0;\n }\n mp3count = 0;\n if (gfp.in_samplerate != gfp.out_samplerate) {\n samples_to_encode += 16 * gfp.out_samplerate / gfp.in_samplerate;\n }\n end_padding = gfp.framesize - samples_to_encode % gfp.framesize;\n if (end_padding < 576)\n end_padding += gfp.framesize;\n gfp.encoder_padding = end_padding;\n frames_left = (samples_to_encode + end_padding) / gfp.framesize;\n while (frames_left > 0 && imp3 >= 0) {\n var bunch = mf_needed - gfc.mf_size;\n var frame_num = gfp.frameNum;\n bunch *= gfp.in_samplerate;\n bunch /= gfp.out_samplerate;\n if (bunch > 1152)\n bunch = 1152;\n if (bunch < 1)\n bunch = 1;\n mp3buffer_size_remaining = mp3buffer_size - mp3count;\n if (mp3buffer_size == 0)\n mp3buffer_size_remaining = 0;\n imp3 = this.lame_encode_buffer(\n gfp,\n buffer[0],\n buffer[1],\n bunch,\n mp3buffer,\n mp3bufferPos,\n mp3buffer_size_remaining\n );\n mp3bufferPos += imp3;\n mp3count += imp3;\n frames_left -= frame_num != gfp.frameNum ? 1 : 0;\n }\n gfc.mf_samples_to_encode = 0;\n if (imp3 < 0) {\n return imp3;\n }\n mp3buffer_size_remaining = mp3buffer_size - mp3count;\n if (mp3buffer_size == 0)\n mp3buffer_size_remaining = 0;\n bs.flush_bitstream(gfp);\n imp3 = bs.copy_buffer(\n gfc,\n mp3buffer,\n mp3bufferPos,\n mp3buffer_size_remaining,\n 1\n );\n if (imp3 < 0) {\n return imp3;\n }\n mp3bufferPos += imp3;\n mp3count += imp3;\n mp3buffer_size_remaining = mp3buffer_size - mp3count;\n if (mp3buffer_size == 0)\n mp3buffer_size_remaining = 0;\n if (gfp.write_id3tag_automatic) {\n id3.id3tag_write_v1(gfp);\n imp3 = bs.copy_buffer(\n gfc,\n mp3buffer,\n mp3bufferPos,\n mp3buffer_size_remaining,\n 0\n );\n if (imp3 < 0) {\n return imp3;\n }\n mp3count += imp3;\n }\n return mp3count;\n };\n this.lame_encode_buffer = function(gfp, buffer_l, buffer_r, nsamples, mp3buf, mp3bufPos, mp3buf_size) {\n var gfc = gfp.internal_flags;\n var in_buffer = [null, null];\n if (gfc.Class_ID != LAME_ID)\n return -3;\n if (nsamples == 0)\n return 0;\n update_inbuffer_size(gfc, nsamples);\n in_buffer[0] = gfc.in_buffer_0;\n in_buffer[1] = gfc.in_buffer_1;\n for (var i = 0; i < nsamples; i++) {\n in_buffer[0][i] = buffer_l[i];\n if (gfc.channels_in > 1)\n in_buffer[1][i] = buffer_r[i];\n }\n return lame_encode_buffer_sample(\n gfp,\n in_buffer[0],\n in_buffer[1],\n nsamples,\n mp3buf,\n mp3bufPos,\n mp3buf_size\n );\n };\n function calcNeeded(gfp) {\n var mf_needed = Encoder.BLKSIZE + gfp.framesize - Encoder.FFTOFFSET;\n mf_needed = Math.max(mf_needed, 512 + gfp.framesize - 32);\n return mf_needed;\n }\n function lame_encode_buffer_sample(gfp, buffer_l, buffer_r, nsamples, mp3buf, mp3bufPos, mp3buf_size) {\n var gfc = gfp.internal_flags;\n var mp3size = 0;\n var ret;\n var i;\n var ch;\n var mf_needed;\n var mp3out;\n var mfbuf = [null, null];\n var in_buffer = [null, null];\n if (gfc.Class_ID != LAME_ID)\n return -3;\n if (nsamples == 0)\n return 0;\n mp3out = bs.copy_buffer(gfc, mp3buf, mp3bufPos, mp3buf_size, 0);\n if (mp3out < 0)\n return mp3out;\n mp3bufPos += mp3out;\n mp3size += mp3out;\n in_buffer[0] = buffer_l;\n in_buffer[1] = buffer_r;\n if (BitStream$1.NEQ(gfp.scale, 0) && BitStream$1.NEQ(gfp.scale, 1)) {\n for (i = 0; i < nsamples; ++i) {\n in_buffer[0][i] *= gfp.scale;\n if (gfc.channels_out == 2)\n in_buffer[1][i] *= gfp.scale;\n }\n }\n if (BitStream$1.NEQ(gfp.scale_left, 0) && BitStream$1.NEQ(gfp.scale_left, 1)) {\n for (i = 0; i < nsamples; ++i) {\n in_buffer[0][i] *= gfp.scale_left;\n }\n }\n if (BitStream$1.NEQ(gfp.scale_right, 0) && BitStream$1.NEQ(gfp.scale_right, 1)) {\n for (i = 0; i < nsamples; ++i) {\n in_buffer[1][i] *= gfp.scale_right;\n }\n }\n if (gfp.num_channels == 2 && gfc.channels_out == 1) {\n for (i = 0; i < nsamples; ++i) {\n in_buffer[0][i] = 0.5 * (in_buffer[0][i] + in_buffer[1][i]);\n in_buffer[1][i] = 0;\n }\n }\n mf_needed = calcNeeded(gfp);\n mfbuf[0] = gfc.mfbuf[0];\n mfbuf[1] = gfc.mfbuf[1];\n var in_bufferPos = 0;\n while (nsamples > 0) {\n var in_buffer_ptr = [null, null];\n var n_in = 0;\n var n_out = 0;\n in_buffer_ptr[0] = in_buffer[0];\n in_buffer_ptr[1] = in_buffer[1];\n var inOut = new InOut();\n fill_buffer(gfp, mfbuf, in_buffer_ptr, in_bufferPos, nsamples, inOut);\n n_in = inOut.n_in;\n n_out = inOut.n_out;\n if (gfc.findReplayGain && !gfc.decode_on_the_fly) {\n if (ga.AnalyzeSamples(\n gfc.rgdata,\n mfbuf[0],\n gfc.mf_size,\n mfbuf[1],\n gfc.mf_size,\n n_out,\n gfc.channels_out\n ) == GainAnalysis.GAIN_ANALYSIS_ERROR) {\n return -6;\n }\n }\n nsamples -= n_in;\n in_bufferPos += n_in;\n if (gfc.channels_out == 2)\n ;\n gfc.mf_size += n_out;\n assert$4(gfc.mf_size <= LameInternalFlags$1.MFSIZE);\n if (gfc.mf_samples_to_encode < 1) {\n gfc.mf_samples_to_encode = Encoder.ENCDELAY + Encoder.POSTDELAY;\n }\n gfc.mf_samples_to_encode += n_out;\n if (gfc.mf_size >= mf_needed) {\n var buf_size = mp3buf_size - mp3size;\n if (mp3buf_size == 0)\n buf_size = 0;\n ret = lame_encode_frame(\n gfp,\n mfbuf[0],\n mfbuf[1],\n mp3buf,\n mp3bufPos,\n buf_size\n );\n if (ret < 0)\n return ret;\n mp3bufPos += ret;\n mp3size += ret;\n gfc.mf_size -= gfp.framesize;\n gfc.mf_samples_to_encode -= gfp.framesize;\n for (ch = 0; ch < gfc.channels_out; ch++) {\n for (i = 0; i < gfc.mf_size; i++) {\n mfbuf[ch][i] = mfbuf[ch][i + gfp.framesize];\n }\n }\n }\n }\n return mp3size;\n }\n function lame_encode_frame(gfp, inbuf_l, inbuf_r, mp3buf, mp3bufPos, mp3buf_size) {\n var ret = self2.enc.lame_encode_mp3_frame(\n gfp,\n inbuf_l,\n inbuf_r,\n mp3buf,\n mp3bufPos,\n mp3buf_size\n );\n gfp.frameNum++;\n return ret;\n }\n function InOut() {\n this.n_in = 0;\n this.n_out = 0;\n }\n function NumUsed() {\n this.num_used = 0;\n }\n function gcd(i, j) {\n return j != 0 ? gcd(j, i % j) : i;\n }\n function blackman(x, fcn, l) {\n var wcn = Math.PI * fcn;\n x /= l;\n if (x < 0)\n x = 0;\n if (x > 1)\n x = 1;\n var x2 = x - 0.5;\n var bkwn = 0.42 - 0.5 * Math.cos(2 * x * Math.PI) + 0.08 * Math.cos(4 * x * Math.PI);\n if (Math.abs(x2) < 1e-9)\n return wcn / Math.PI;\n else\n return bkwn * Math.sin(l * wcn * x2) / (Math.PI * l * x2);\n }\n function fill_buffer_resample(gfp, outbuf, outbufPos, desired_len, inbuf, in_bufferPos, len, num_used, ch) {\n var gfc = gfp.internal_flags;\n var i;\n var j = 0;\n var k;\n var bpc = gfp.out_samplerate / gcd(gfp.out_samplerate, gfp.in_samplerate);\n if (bpc > LameInternalFlags$1.BPC)\n bpc = LameInternalFlags$1.BPC;\n var intratio = Math.abs(gfc.resample_ratio - Math.floor(0.5 + gfc.resample_ratio)) < 1e-4 ? 1 : 0;\n var fcn = 1 / gfc.resample_ratio;\n if (fcn > 1)\n fcn = 1;\n var filter_l = 31;\n if (filter_l % 2 == 0)\n --filter_l;\n filter_l += intratio;\n var BLACKSIZE = filter_l + 1;\n if (gfc.fill_buffer_resample_init == 0) {\n gfc.inbuf_old[0] = new_float$2(BLACKSIZE);\n gfc.inbuf_old[1] = new_float$2(BLACKSIZE);\n for (i = 0; i <= 2 * bpc; ++i)\n gfc.blackfilt[i] = new_float$2(BLACKSIZE);\n gfc.itime[0] = 0;\n gfc.itime[1] = 0;\n for (j = 0; j <= 2 * bpc; j++) {\n var sum = 0;\n var offset = (j - bpc) / (2 * bpc);\n for (i = 0; i <= filter_l; i++) {\n sum += gfc.blackfilt[j][i] = blackman(i - offset, fcn, filter_l);\n }\n for (i = 0; i <= filter_l; i++)\n gfc.blackfilt[j][i] /= sum;\n }\n gfc.fill_buffer_resample_init = 1;\n }\n var inbuf_old = gfc.inbuf_old[ch];\n for (k = 0; k < desired_len; k++) {\n var time0;\n var joff;\n time0 = k * gfc.resample_ratio;\n j = 0 | Math.floor(time0 - gfc.itime[ch]);\n if (filter_l + j - filter_l / 2 >= len)\n break;\n var offset = time0 - gfc.itime[ch] - (j + 0.5 * (filter_l % 2));\n joff = 0 | Math.floor(offset * 2 * bpc + bpc + 0.5);\n var xvalue = 0;\n for (i = 0; i <= filter_l; ++i) {\n var j2 = 0 | i + j - filter_l / 2;\n var y;\n y = j2 < 0 ? inbuf_old[BLACKSIZE + j2] : inbuf[in_bufferPos + j2];\n xvalue += y * gfc.blackfilt[joff][i];\n }\n outbuf[outbufPos + k] = xvalue;\n }\n num_used.num_used = Math.min(len, filter_l + j - filter_l / 2);\n gfc.itime[ch] += num_used.num_used - k * gfc.resample_ratio;\n if (num_used.num_used >= BLACKSIZE) {\n for (i = 0; i < BLACKSIZE; i++) {\n inbuf_old[i] = inbuf[in_bufferPos + num_used.num_used + i - BLACKSIZE];\n }\n } else {\n var n_shift = BLACKSIZE - num_used.num_used;\n for (i = 0; i < n_shift; ++i) {\n inbuf_old[i] = inbuf_old[i + num_used.num_used];\n }\n for (j = 0; i < BLACKSIZE; ++i, ++j) {\n inbuf_old[i] = inbuf[in_bufferPos + j];\n }\n assert$4(j == num_used.num_used);\n }\n return k;\n }\n function fill_buffer(gfp, mfbuf, in_buffer, in_bufferPos, nsamples, io) {\n var gfc = gfp.internal_flags;\n if (gfc.resample_ratio < 0.9999 || gfc.resample_ratio > 1.0001) {\n for (var ch = 0; ch < gfc.channels_out; ch++) {\n var numUsed = new NumUsed();\n io.n_out = fill_buffer_resample(\n gfp,\n mfbuf[ch],\n gfc.mf_size,\n gfp.framesize,\n in_buffer[ch],\n in_bufferPos,\n nsamples,\n numUsed,\n ch\n );\n io.n_in = numUsed.num_used;\n }\n } else {\n io.n_out = Math.min(gfp.framesize, nsamples);\n io.n_in = io.n_out;\n for (var i = 0; i < io.n_out; ++i) {\n mfbuf[0][gfc.mf_size + i] = in_buffer[0][in_bufferPos + i];\n if (gfc.channels_out == 2) {\n mfbuf[1][gfc.mf_size + i] = in_buffer[1][in_bufferPos + i];\n }\n }\n }\n }\n}\nvar VbrMode$2 = common.VbrMode;\nfunction Presets() {\n function VBRPresets(qual, comp, compS, y, shThreshold, shThresholdS, adj, adjShort, lower, curve, sens, inter, joint, mod, fix) {\n this.vbr_q = qual;\n this.quant_comp = comp;\n this.quant_comp_s = compS;\n this.expY = y;\n this.st_lrm = shThreshold;\n this.st_s = shThresholdS;\n this.masking_adj = adj;\n this.masking_adj_short = adjShort;\n this.ath_lower = lower;\n this.ath_curve = curve;\n this.ath_sensitivity = sens;\n this.interch = inter;\n this.safejoint = joint;\n this.sfb21mod = mod;\n this.msfix = fix;\n }\n function ABRPresets(kbps, comp, compS, joint, fix, shThreshold, shThresholdS, bass, sc, mask, lower, curve, interCh, sfScale) {\n this.quant_comp = comp;\n this.quant_comp_s = compS;\n this.safejoint = joint;\n this.nsmsfix = fix;\n this.st_lrm = shThreshold;\n this.st_s = shThresholdS;\n this.nsbass = bass;\n this.scale = sc;\n this.masking_adj = mask;\n this.ath_lower = lower;\n this.ath_curve = curve;\n this.interch = interCh;\n this.sfscale = sfScale;\n }\n var lame;\n this.setModules = function(_lame) {\n lame = _lame;\n };\n var vbr_old_switch_map = [\n new VBRPresets(\n 0,\n 9,\n 9,\n 0,\n 5.2,\n 125,\n -4.2,\n -6.3,\n 4.8,\n 1,\n 0,\n 0,\n 2,\n 21,\n 0.97\n ),\n new VBRPresets(\n 1,\n 9,\n 9,\n 0,\n 5.3,\n 125,\n -3.6,\n -5.6,\n 4.5,\n 1.5,\n 0,\n 0,\n 2,\n 21,\n 1.35\n ),\n new VBRPresets(\n 2,\n 9,\n 9,\n 0,\n 5.6,\n 125,\n -2.2,\n -3.5,\n 2.8,\n 2,\n 0,\n 0,\n 2,\n 21,\n 1.49\n ),\n new VBRPresets(\n 3,\n 9,\n 9,\n 1,\n 5.8,\n 130,\n -1.8,\n -2.8,\n 2.6,\n 3,\n -4,\n 0,\n 2,\n 20,\n 1.64\n ),\n new VBRPresets(\n 4,\n 9,\n 9,\n 1,\n 6,\n 135,\n -0.7,\n -1.1,\n 1.1,\n 3.5,\n -8,\n 0,\n 2,\n 0,\n 1.79\n ),\n new VBRPresets(\n 5,\n 9,\n 9,\n 1,\n 6.4,\n 140,\n 0.5,\n 0.4,\n -7.5,\n 4,\n -12,\n 2e-4,\n 0,\n 0,\n 1.95\n ),\n new VBRPresets(\n 6,\n 9,\n 9,\n 1,\n 6.6,\n 145,\n 0.67,\n 0.65,\n -14.7,\n 6.5,\n -19,\n 4e-4,\n 0,\n 0,\n 2.3\n ),\n new VBRPresets(\n 7,\n 9,\n 9,\n 1,\n 6.6,\n 145,\n 0.8,\n 0.75,\n -19.7,\n 8,\n -22,\n 6e-4,\n 0,\n 0,\n 2.7\n ),\n new VBRPresets(\n 8,\n 9,\n 9,\n 1,\n 6.6,\n 145,\n 1.2,\n 1.15,\n -27.5,\n 10,\n -23,\n 7e-4,\n 0,\n 0,\n 0\n ),\n new VBRPresets(\n 9,\n 9,\n 9,\n 1,\n 6.6,\n 145,\n 1.6,\n 1.6,\n -36,\n 11,\n -25,\n 8e-4,\n 0,\n 0,\n 0\n ),\n new VBRPresets(\n 10,\n 9,\n 9,\n 1,\n 6.6,\n 145,\n 2,\n 2,\n -36,\n 12,\n -25,\n 8e-4,\n 0,\n 0,\n 0\n )\n ];\n var vbr_psy_switch_map = [\n new VBRPresets(\n 0,\n 9,\n 9,\n 0,\n 4.2,\n 25,\n -7,\n -4,\n 7.5,\n 1,\n 0,\n 0,\n 2,\n 26,\n 0.97\n ),\n new VBRPresets(\n 1,\n 9,\n 9,\n 0,\n 4.2,\n 25,\n -5.6,\n -3.6,\n 4.5,\n 1.5,\n 0,\n 0,\n 2,\n 21,\n 1.35\n ),\n new VBRPresets(2, 9, 9, 0, 4.2, 25, -4.4, -1.8, 2, 2, 0, 0, 2, 18, 1.49),\n new VBRPresets(\n 3,\n 9,\n 9,\n 1,\n 4.2,\n 25,\n -3.4,\n -1.25,\n 1.1,\n 3,\n -4,\n 0,\n 2,\n 15,\n 1.64\n ),\n new VBRPresets(4, 9, 9, 1, 4.2, 25, -2.2, 0.1, 0, 3.5, -8, 0, 2, 0, 1.79),\n new VBRPresets(\n 5,\n 9,\n 9,\n 1,\n 4.2,\n 25,\n -1,\n 1.65,\n -7.7,\n 4,\n -12,\n 2e-4,\n 0,\n 0,\n 1.95\n ),\n new VBRPresets(\n 6,\n 9,\n 9,\n 1,\n 4.2,\n 25,\n -0,\n 2.47,\n -7.7,\n 6.5,\n -19,\n 4e-4,\n 0,\n 0,\n 2\n ),\n new VBRPresets(\n 7,\n 9,\n 9,\n 1,\n 4.2,\n 25,\n 0.5,\n 2,\n -14.5,\n 8,\n -22,\n 6e-4,\n 0,\n 0,\n 2\n ),\n new VBRPresets(\n 8,\n 9,\n 9,\n 1,\n 4.2,\n 25,\n 1,\n 2.4,\n -22,\n 10,\n -23,\n 7e-4,\n 0,\n 0,\n 2\n ),\n new VBRPresets(\n 9,\n 9,\n 9,\n 1,\n 4.2,\n 25,\n 1.5,\n 2.95,\n -30,\n 11,\n -25,\n 8e-4,\n 0,\n 0,\n 2\n ),\n new VBRPresets(\n 10,\n 9,\n 9,\n 1,\n 4.2,\n 25,\n 2,\n 2.95,\n -36,\n 12,\n -30,\n 8e-4,\n 0,\n 0,\n 2\n )\n ];\n function apply_vbr_preset(gfp, a, enforce) {\n var vbr_preset = gfp.VBR == VbrMode$2.vbr_rh ? vbr_old_switch_map : vbr_psy_switch_map;\n var x = gfp.VBR_q_frac;\n var p2 = vbr_preset[a];\n var q = vbr_preset[a + 1];\n var set2 = p2;\n p2.st_lrm = p2.st_lrm + x * (q.st_lrm - p2.st_lrm);\n p2.st_s = p2.st_s + x * (q.st_s - p2.st_s);\n p2.masking_adj = p2.masking_adj + x * (q.masking_adj - p2.masking_adj);\n p2.masking_adj_short = p2.masking_adj_short + x * (q.masking_adj_short - p2.masking_adj_short);\n p2.ath_lower = p2.ath_lower + x * (q.ath_lower - p2.ath_lower);\n p2.ath_curve = p2.ath_curve + x * (q.ath_curve - p2.ath_curve);\n p2.ath_sensitivity = p2.ath_sensitivity + x * (q.ath_sensitivity - p2.ath_sensitivity);\n p2.interch = p2.interch + x * (q.interch - p2.interch);\n p2.msfix = p2.msfix + x * (q.msfix - p2.msfix);\n lame_set_VBR_q(gfp, set2.vbr_q);\n if (enforce != 0)\n gfp.quant_comp = set2.quant_comp;\n else if (!(Math.abs(gfp.quant_comp - -1) > 0)) {\n gfp.quant_comp = set2.quant_comp;\n }\n if (enforce != 0)\n gfp.quant_comp_short = set2.quant_comp_s;\n else if (!(Math.abs(gfp.quant_comp_short - -1) > 0)) {\n gfp.quant_comp_short = set2.quant_comp_s;\n }\n if (set2.expY != 0) {\n gfp.experimentalY = set2.expY != 0;\n }\n if (enforce != 0)\n gfp.internal_flags.nsPsy.attackthre = set2.st_lrm;\n else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre - -1) > 0)) {\n gfp.internal_flags.nsPsy.attackthre = set2.st_lrm;\n }\n if (enforce != 0)\n gfp.internal_flags.nsPsy.attackthre_s = set2.st_s;\n else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre_s - -1) > 0)) {\n gfp.internal_flags.nsPsy.attackthre_s = set2.st_s;\n }\n if (enforce != 0)\n gfp.maskingadjust = set2.masking_adj;\n else if (!(Math.abs(gfp.maskingadjust - 0) > 0)) {\n gfp.maskingadjust = set2.masking_adj;\n }\n if (enforce != 0)\n gfp.maskingadjust_short = set2.masking_adj_short;\n else if (!(Math.abs(gfp.maskingadjust_short - 0) > 0)) {\n gfp.maskingadjust_short = set2.masking_adj_short;\n }\n if (enforce != 0)\n gfp.ATHlower = -set2.ath_lower / 10;\n else if (!(Math.abs(-gfp.ATHlower * 10 - 0) > 0)) {\n gfp.ATHlower = -set2.ath_lower / 10;\n }\n if (enforce != 0)\n gfp.ATHcurve = set2.ath_curve;\n else if (!(Math.abs(gfp.ATHcurve - -1) > 0))\n gfp.ATHcurve = set2.ath_curve;\n if (enforce != 0)\n gfp.athaa_sensitivity = set2.ath_sensitivity;\n else if (!(Math.abs(gfp.athaa_sensitivity - -1) > 0)) {\n gfp.athaa_sensitivity = set2.ath_sensitivity;\n }\n if (set2.interch > 0) {\n if (enforce != 0)\n gfp.interChRatio = set2.interch;\n else if (!(Math.abs(gfp.interChRatio - -1) > 0)) {\n gfp.interChRatio = set2.interch;\n }\n }\n if (set2.safejoint > 0) {\n gfp.exp_nspsytune = gfp.exp_nspsytune | set2.safejoint;\n }\n if (set2.sfb21mod > 0) {\n gfp.exp_nspsytune = gfp.exp_nspsytune | set2.sfb21mod << 20;\n }\n if (enforce != 0)\n gfp.msfix = set2.msfix;\n else if (!(Math.abs(gfp.msfix - -1) > 0))\n gfp.msfix = set2.msfix;\n if (enforce == 0) {\n gfp.VBR_q = a;\n gfp.VBR_q_frac = x;\n }\n }\n var abr_switch_map = [\n new ABRPresets(\n 8,\n 9,\n 9,\n 0,\n 0,\n 6.6,\n 145,\n 0,\n 0.95,\n 0,\n -30,\n 11,\n 12e-4,\n 1\n ),\n new ABRPresets(\n 16,\n 9,\n 9,\n 0,\n 0,\n 6.6,\n 145,\n 0,\n 0.95,\n 0,\n -25,\n 11,\n 1e-3,\n 1\n ),\n new ABRPresets(\n 24,\n 9,\n 9,\n 0,\n 0,\n 6.6,\n 145,\n 0,\n 0.95,\n 0,\n -20,\n 11,\n 1e-3,\n 1\n ),\n new ABRPresets(\n 32,\n 9,\n 9,\n 0,\n 0,\n 6.6,\n 145,\n 0,\n 0.95,\n 0,\n -15,\n 11,\n 1e-3,\n 1\n ),\n new ABRPresets(\n 40,\n 9,\n 9,\n 0,\n 0,\n 6.6,\n 145,\n 0,\n 0.95,\n 0,\n -10,\n 11,\n 9e-4,\n 1\n ),\n new ABRPresets(\n 48,\n 9,\n 9,\n 0,\n 0,\n 6.6,\n 145,\n 0,\n 0.95,\n 0,\n -10,\n 11,\n 9e-4,\n 1\n ),\n new ABRPresets(\n 56,\n 9,\n 9,\n 0,\n 0,\n 6.6,\n 145,\n 0,\n 0.95,\n 0,\n -6,\n 11,\n 8e-4,\n 1\n ),\n new ABRPresets(\n 64,\n 9,\n 9,\n 0,\n 0,\n 6.6,\n 145,\n 0,\n 0.95,\n 0,\n -2,\n 11,\n 8e-4,\n 1\n ),\n new ABRPresets(\n 80,\n 9,\n 9,\n 0,\n 0,\n 6.6,\n 145,\n 0,\n 0.95,\n 0,\n 0,\n 8,\n 7e-4,\n 1\n ),\n new ABRPresets(\n 96,\n 9,\n 9,\n 0,\n 2.5,\n 6.6,\n 145,\n 0,\n 0.95,\n 0,\n 1,\n 5.5,\n 6e-4,\n 1\n ),\n new ABRPresets(\n 112,\n 9,\n 9,\n 0,\n 2.25,\n 6.6,\n 145,\n 0,\n 0.95,\n 0,\n 2,\n 4.5,\n 5e-4,\n 1\n ),\n new ABRPresets(\n 128,\n 9,\n 9,\n 0,\n 1.95,\n 6.4,\n 140,\n 0,\n 0.95,\n 0,\n 3,\n 4,\n 2e-4,\n 1\n ),\n new ABRPresets(\n 160,\n 9,\n 9,\n 1,\n 1.79,\n 6,\n 135,\n 0,\n 0.95,\n -2,\n 5,\n 3.5,\n 0,\n 1\n ),\n new ABRPresets(\n 192,\n 9,\n 9,\n 1,\n 1.49,\n 5.6,\n 125,\n 0,\n 0.97,\n -4,\n 7,\n 3,\n 0,\n 0\n ),\n new ABRPresets(\n 224,\n 9,\n 9,\n 1,\n 1.25,\n 5.2,\n 125,\n 0,\n 0.98,\n -6,\n 9,\n 2,\n 0,\n 0\n ),\n new ABRPresets(\n 256,\n 9,\n 9,\n 1,\n 0.97,\n 5.2,\n 125,\n 0,\n 1,\n -8,\n 10,\n 1,\n 0,\n 0\n ),\n new ABRPresets(\n 320,\n 9,\n 9,\n 1,\n 0.9,\n 5.2,\n 125,\n 0,\n 1,\n -10,\n 12,\n 0,\n 0,\n 0\n )\n ];\n function apply_abr_preset(gfp, preset, enforce) {\n var actual_bitrate = preset;\n var r = lame.nearestBitrateFullIndex(preset);\n gfp.VBR = VbrMode$2.vbr_abr;\n gfp.VBR_mean_bitrate_kbps = actual_bitrate;\n gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps, 320);\n gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps, 8);\n gfp.brate = gfp.VBR_mean_bitrate_kbps;\n if (gfp.VBR_mean_bitrate_kbps > 320) {\n gfp.disable_reservoir = true;\n }\n if (abr_switch_map[r].safejoint > 0) {\n gfp.exp_nspsytune = gfp.exp_nspsytune | 2;\n }\n if (abr_switch_map[r].sfscale > 0) {\n gfp.internal_flags.noise_shaping = 2;\n }\n if (Math.abs(abr_switch_map[r].nsbass) > 0) {\n var k = int(abr_switch_map[r].nsbass * 4);\n if (k < 0)\n k += 64;\n gfp.exp_nspsytune = gfp.exp_nspsytune | k << 2;\n }\n if (enforce != 0)\n gfp.quant_comp = abr_switch_map[r].quant_comp;\n else if (!(Math.abs(gfp.quant_comp - -1) > 0)) {\n gfp.quant_comp = abr_switch_map[r].quant_comp;\n }\n if (enforce != 0)\n gfp.quant_comp_short = abr_switch_map[r].quant_comp_s;\n else if (!(Math.abs(gfp.quant_comp_short - -1) > 0)) {\n gfp.quant_comp_short = abr_switch_map[r].quant_comp_s;\n }\n if (enforce != 0)\n gfp.msfix = abr_switch_map[r].nsmsfix;\n else if (!(Math.abs(gfp.msfix - -1) > 0)) {\n gfp.msfix = abr_switch_map[r].nsmsfix;\n }\n if (enforce != 0) {\n gfp.internal_flags.nsPsy.attackthre = abr_switch_map[r].st_lrm;\n } else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre - -1) > 0)) {\n gfp.internal_flags.nsPsy.attackthre = abr_switch_map[r].st_lrm;\n }\n if (enforce != 0) {\n gfp.internal_flags.nsPsy.attackthre_s = abr_switch_map[r].st_s;\n } else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre_s - -1) > 0)) {\n gfp.internal_flags.nsPsy.attackthre_s = abr_switch_map[r].st_s;\n }\n if (enforce != 0)\n gfp.scale = abr_switch_map[r].scale;\n else if (!(Math.abs(gfp.scale - -1) > 0)) {\n gfp.scale = abr_switch_map[r].scale;\n }\n if (enforce != 0)\n gfp.maskingadjust = abr_switch_map[r].masking_adj;\n else if (!(Math.abs(gfp.maskingadjust - 0) > 0)) {\n gfp.maskingadjust = abr_switch_map[r].masking_adj;\n }\n if (abr_switch_map[r].masking_adj > 0) {\n if (enforce != 0) {\n gfp.maskingadjust_short = abr_switch_map[r].masking_adj * 0.9;\n } else if (!(Math.abs(gfp.maskingadjust_short - 0) > 0)) {\n gfp.maskingadjust_short = abr_switch_map[r].masking_adj * 0.9;\n }\n } else {\n if (enforce != 0) {\n gfp.maskingadjust_short = abr_switch_map[r].masking_adj * 1.1;\n } else if (!(Math.abs(gfp.maskingadjust_short - 0) > 0)) {\n gfp.maskingadjust_short = abr_switch_map[r].masking_adj * 1.1;\n }\n }\n if (enforce != 0)\n gfp.ATHlower = -abr_switch_map[r].ath_lower / 10;\n else if (!(Math.abs(-gfp.ATHlower * 10 - 0) > 0)) {\n gfp.ATHlower = -abr_switch_map[r].ath_lower / 10;\n }\n if (enforce != 0)\n gfp.ATHcurve = abr_switch_map[r].ath_curve;\n else if (!(Math.abs(gfp.ATHcurve - -1) > 0)) {\n gfp.ATHcurve = abr_switch_map[r].ath_curve;\n }\n if (enforce != 0)\n gfp.interChRatio = abr_switch_map[r].interch;\n else if (!(Math.abs(gfp.interChRatio - -1) > 0)) {\n gfp.interChRatio = abr_switch_map[r].interch;\n }\n return preset;\n }\n this.apply_preset = function(gfp, preset, enforce) {\n switch (preset) {\n case Lame$1.R3MIX: {\n preset = Lame$1.V3;\n gfp.VBR = VbrMode$2.vbr_mtrh;\n break;\n }\n case Lame$1.MEDIUM: {\n preset = Lame$1.V4;\n gfp.VBR = VbrMode$2.vbr_rh;\n break;\n }\n case Lame$1.MEDIUM_FAST: {\n preset = Lame$1.V4;\n gfp.VBR = VbrMode$2.vbr_mtrh;\n break;\n }\n case Lame$1.STANDARD: {\n preset = Lame$1.V2;\n gfp.VBR = VbrMode$2.vbr_rh;\n break;\n }\n case Lame$1.STANDARD_FAST: {\n preset = Lame$1.V2;\n gfp.VBR = VbrMode$2.vbr_mtrh;\n break;\n }\n case Lame$1.EXTREME: {\n preset = Lame$1.V0;\n gfp.VBR = VbrMode$2.vbr_rh;\n break;\n }\n case Lame$1.EXTREME_FAST: {\n preset = Lame$1.V0;\n gfp.VBR = VbrMode$2.vbr_mtrh;\n break;\n }\n case Lame$1.INSANE: {\n preset = 320;\n gfp.preset = preset;\n apply_abr_preset(gfp, preset, enforce);\n gfp.VBR = VbrMode$2.vbr_off;\n return preset;\n }\n }\n gfp.preset = preset;\n {\n switch (preset) {\n case Lame$1.V9:\n apply_vbr_preset(gfp, 9, enforce);\n return preset;\n case Lame$1.V8:\n apply_vbr_preset(gfp, 8, enforce);\n return preset;\n case Lame$1.V7:\n apply_vbr_preset(gfp, 7, enforce);\n return preset;\n case Lame$1.V6:\n apply_vbr_preset(gfp, 6, enforce);\n return preset;\n case Lame$1.V5:\n apply_vbr_preset(gfp, 5, enforce);\n return preset;\n case Lame$1.V4:\n apply_vbr_preset(gfp, 4, enforce);\n return preset;\n case Lame$1.V3:\n apply_vbr_preset(gfp, 3, enforce);\n return preset;\n case Lame$1.V2:\n apply_vbr_preset(gfp, 2, enforce);\n return preset;\n case Lame$1.V1:\n apply_vbr_preset(gfp, 1, enforce);\n return preset;\n case Lame$1.V0:\n apply_vbr_preset(gfp, 0, enforce);\n return preset;\n }\n }\n if (preset >= 8 && preset <= 320) {\n return apply_abr_preset(gfp, preset, enforce);\n }\n gfp.preset = 0;\n return preset;\n };\n function lame_set_VBR_q(gfp, VBR_q) {\n var ret = 0;\n if (VBR_q < 0) {\n ret = -1;\n VBR_q = 0;\n }\n if (VBR_q > 9) {\n ret = -1;\n VBR_q = 9;\n }\n gfp.VBR_q = VBR_q;\n gfp.VBR_q_frac = 0;\n return ret;\n }\n}\nfunction VBRQuantize() {\n this.setModules = function(_qupvt, _tk) {\n };\n}\nfunction CalcNoiseResult$1() {\n this.over_noise = 0;\n this.tot_noise = 0;\n this.max_noise = 0;\n this.over_count = 0;\n this.over_SSD = 0;\n this.bits = 0;\n}\nvar new_float$1 = common.new_float;\nvar new_int = common.new_int;\nfunction CalcNoiseData() {\n this.global_gain = 0;\n this.sfb_count1 = 0;\n this.step = new_int(39);\n this.noise = new_float$1(39);\n this.noise_log = new_float$1(39);\n}\nvar System$1 = common.System;\nvar VbrMode$1 = common.VbrMode;\nvar Util = common.Util;\nvar Arrays$1 = common.Arrays;\nvar new_float = common.new_float;\nvar assert$3 = common.assert;\nfunction Quantize() {\n var bs;\n this.rv = null;\n var rv;\n this.qupvt = null;\n var qupvt;\n var vbr = new VBRQuantize();\n var tk;\n this.setModules = function(_bs, _rv, _qupvt, _tk) {\n bs = _bs;\n rv = _rv;\n this.rv = _rv;\n qupvt = _qupvt;\n this.qupvt = _qupvt;\n tk = _tk;\n vbr.setModules(qupvt, tk);\n };\n this.ms_convert = function(l3_side, gr) {\n for (var i = 0; i < 576; ++i) {\n var l = l3_side.tt[gr][0].xr[i];\n var r = l3_side.tt[gr][1].xr[i];\n l3_side.tt[gr][0].xr[i] = (l + r) * (Util.SQRT2 * 0.5);\n l3_side.tt[gr][1].xr[i] = (l - r) * (Util.SQRT2 * 0.5);\n }\n };\n function init_xrpow_core(cod_info, xrpow, upper, sum) {\n sum = 0;\n for (var i = 0; i <= upper; ++i) {\n var tmp = Math.abs(cod_info.xr[i]);\n sum += tmp;\n xrpow[i] = Math.sqrt(tmp * Math.sqrt(tmp));\n if (xrpow[i] > cod_info.xrpow_max)\n cod_info.xrpow_max = xrpow[i];\n }\n return sum;\n }\n this.init_xrpow = function(gfc, cod_info, xrpow) {\n var sum = 0;\n var upper = 0 | cod_info.max_nonzero_coeff;\n cod_info.xrpow_max = 0;\n Arrays$1.fill(xrpow, upper, 576, 0);\n sum = init_xrpow_core(cod_info, xrpow, upper, sum);\n if (sum > 1e-20) {\n var j = 0;\n if ((gfc.substep_shaping & 2) != 0)\n j = 1;\n for (var i = 0; i < cod_info.psymax; i++)\n gfc.pseudohalf[i] = j;\n return true;\n }\n Arrays$1.fill(cod_info.l3_enc, 0, 576, 0);\n return false;\n };\n function psfb21_analogsilence(gfc, cod_info) {\n var ath = gfc.ATH;\n var xr = cod_info.xr;\n if (cod_info.block_type != Encoder.SHORT_TYPE) {\n var stop = false;\n for (var gsfb = Encoder.PSFB21 - 1; gsfb >= 0 && !stop; gsfb--) {\n var start = gfc.scalefac_band.psfb21[gsfb];\n var end = gfc.scalefac_band.psfb21[gsfb + 1];\n var ath21 = qupvt.athAdjust(ath.adjust, ath.psfb21[gsfb], ath.floor);\n if (gfc.nsPsy.longfact[21] > 1e-12)\n ath21 *= gfc.nsPsy.longfact[21];\n for (var j = end - 1; j >= start; j--) {\n if (Math.abs(xr[j]) < ath21)\n xr[j] = 0;\n else {\n stop = true;\n break;\n }\n }\n }\n } else {\n for (var block = 0; block < 3; block++) {\n var stop = false;\n for (var gsfb = Encoder.PSFB12 - 1; gsfb >= 0 && !stop; gsfb--) {\n var start = gfc.scalefac_band.s[12] * 3 + (gfc.scalefac_band.s[13] - gfc.scalefac_band.s[12]) * block + (gfc.scalefac_band.psfb12[gsfb] - gfc.scalefac_band.psfb12[0]);\n var end = start + (gfc.scalefac_band.psfb12[gsfb + 1] - gfc.scalefac_band.psfb12[gsfb]);\n var ath12 = qupvt.athAdjust(ath.adjust, ath.psfb12[gsfb], ath.floor);\n if (gfc.nsPsy.shortfact[12] > 1e-12)\n ath12 *= gfc.nsPsy.shortfact[12];\n for (var j = end - 1; j >= start; j--) {\n if (Math.abs(xr[j]) < ath12)\n xr[j] = 0;\n else {\n stop = true;\n break;\n }\n }\n }\n }\n }\n }\n this.init_outer_loop = function(gfc, cod_info) {\n cod_info.part2_3_length = 0;\n cod_info.big_values = 0;\n cod_info.count1 = 0;\n cod_info.global_gain = 210;\n cod_info.scalefac_compress = 0;\n cod_info.table_select[0] = 0;\n cod_info.table_select[1] = 0;\n cod_info.table_select[2] = 0;\n cod_info.subblock_gain[0] = 0;\n cod_info.subblock_gain[1] = 0;\n cod_info.subblock_gain[2] = 0;\n cod_info.subblock_gain[3] = 0;\n cod_info.region0_count = 0;\n cod_info.region1_count = 0;\n cod_info.preflag = 0;\n cod_info.scalefac_scale = 0;\n cod_info.count1table_select = 0;\n cod_info.part2_length = 0;\n cod_info.sfb_lmax = Encoder.SBPSY_l;\n cod_info.sfb_smin = Encoder.SBPSY_s;\n cod_info.psy_lmax = gfc.sfb21_extra ? Encoder.SBMAX_l : Encoder.SBPSY_l;\n cod_info.psymax = cod_info.psy_lmax;\n cod_info.sfbmax = cod_info.sfb_lmax;\n cod_info.sfbdivide = 11;\n for (var sfb = 0; sfb < Encoder.SBMAX_l; sfb++) {\n cod_info.width[sfb] = gfc.scalefac_band.l[sfb + 1] - gfc.scalefac_band.l[sfb];\n cod_info.window[sfb] = 3;\n }\n if (cod_info.block_type == Encoder.SHORT_TYPE) {\n var ixwork = new_float(576);\n cod_info.sfb_smin = 0;\n cod_info.sfb_lmax = 0;\n if (cod_info.mixed_block_flag != 0) {\n cod_info.sfb_smin = 3;\n cod_info.sfb_lmax = gfc.mode_gr * 2 + 4;\n }\n cod_info.psymax = cod_info.sfb_lmax + 3 * ((gfc.sfb21_extra ? Encoder.SBMAX_s : Encoder.SBPSY_s) - cod_info.sfb_smin);\n cod_info.sfbmax = cod_info.sfb_lmax + 3 * (Encoder.SBPSY_s - cod_info.sfb_smin);\n cod_info.sfbdivide = cod_info.sfbmax - 18;\n cod_info.psy_lmax = cod_info.sfb_lmax;\n var ix = gfc.scalefac_band.l[cod_info.sfb_lmax];\n System$1.arraycopy(cod_info.xr, 0, ixwork, 0, 576);\n for (var sfb = cod_info.sfb_smin; sfb < Encoder.SBMAX_s; sfb++) {\n var start = gfc.scalefac_band.s[sfb];\n var end = gfc.scalefac_band.s[sfb + 1];\n for (var window2 = 0; window2 < 3; window2++) {\n for (var l = start; l < end; l++) {\n cod_info.xr[ix++] = ixwork[3 * l + window2];\n }\n }\n }\n var j = cod_info.sfb_lmax;\n for (var sfb = cod_info.sfb_smin; sfb < Encoder.SBMAX_s; sfb++) {\n cod_info.width[j] = cod_info.width[j + 1] = cod_info.width[j + 2] = gfc.scalefac_band.s[sfb + 1] - gfc.scalefac_band.s[sfb];\n cod_info.window[j] = 0;\n cod_info.window[j + 1] = 1;\n cod_info.window[j + 2] = 2;\n j += 3;\n }\n }\n cod_info.count1bits = 0;\n cod_info.sfb_partition_table = qupvt.nr_of_sfb_block[0][0];\n cod_info.slen[0] = 0;\n cod_info.slen[1] = 0;\n cod_info.slen[2] = 0;\n cod_info.slen[3] = 0;\n cod_info.max_nonzero_coeff = 575;\n Arrays$1.fill(cod_info.scalefac, 0);\n psfb21_analogsilence(gfc, cod_info);\n };\n function BinSearchDirection(ordinal) {\n this.ordinal = ordinal;\n }\n BinSearchDirection.BINSEARCH_NONE = new BinSearchDirection(0);\n BinSearchDirection.BINSEARCH_UP = new BinSearchDirection(1);\n BinSearchDirection.BINSEARCH_DOWN = new BinSearchDirection(2);\n function bin_search_StepSize(gfc, cod_info, desired_rate, ch, xrpow) {\n var nBits;\n var CurrentStep = gfc.CurrentStep[ch];\n var flagGoneOver = false;\n var start = gfc.OldValue[ch];\n var Direction = BinSearchDirection.BINSEARCH_NONE;\n cod_info.global_gain = start;\n desired_rate -= cod_info.part2_length;\n for (; ; ) {\n var step;\n nBits = tk.count_bits(gfc, xrpow, cod_info, null);\n if (CurrentStep == 1 || nBits == desired_rate)\n break;\n if (nBits > desired_rate) {\n if (Direction == BinSearchDirection.BINSEARCH_DOWN)\n flagGoneOver = true;\n if (flagGoneOver)\n CurrentStep /= 2;\n Direction = BinSearchDirection.BINSEARCH_UP;\n step = CurrentStep;\n } else {\n if (Direction == BinSearchDirection.BINSEARCH_UP)\n flagGoneOver = true;\n if (flagGoneOver)\n CurrentStep /= 2;\n Direction = BinSearchDirection.BINSEARCH_DOWN;\n step = -CurrentStep;\n }\n cod_info.global_gain += step;\n if (cod_info.global_gain < 0) {\n cod_info.global_gain = 0;\n flagGoneOver = true;\n }\n if (cod_info.global_gain > 255) {\n cod_info.global_gain = 255;\n flagGoneOver = true;\n }\n }\n assert$3(cod_info.global_gain >= 0);\n assert$3(cod_info.global_gain < 256);\n while (nBits > desired_rate && cod_info.global_gain < 255) {\n cod_info.global_gain++;\n nBits = tk.count_bits(gfc, xrpow, cod_info, null);\n }\n gfc.CurrentStep[ch] = start - cod_info.global_gain >= 4 ? 4 : 2;\n gfc.OldValue[ch] = cod_info.global_gain;\n cod_info.part2_3_length = nBits;\n return nBits;\n }\n this.trancate_smallspectrums = function(gfc, gi, l3_xmin, work) {\n var distort = new_float(L3Side$1.SFBMAX);\n if ((gfc.substep_shaping & 4) == 0 && gi.block_type == Encoder.SHORT_TYPE || (gfc.substep_shaping & 128) != 0) {\n return;\n }\n qupvt.calc_noise(gi, l3_xmin, distort, new CalcNoiseResult$1(), null);\n for (var j = 0; j < 576; j++) {\n var xr = 0;\n if (gi.l3_enc[j] != 0)\n xr = Math.abs(gi.xr[j]);\n work[j] = xr;\n }\n var j = 0;\n var sfb = 8;\n if (gi.block_type == Encoder.SHORT_TYPE)\n sfb = 6;\n do {\n var allowedNoise, trancateThreshold;\n var nsame, start;\n var width = gi.width[sfb];\n j += width;\n if (distort[sfb] >= 1)\n continue;\n Arrays$1.sort(work, j - width, width);\n if (BitStream.EQ(work[j - 1], 0))\n continue;\n allowedNoise = (1 - distort[sfb]) * l3_xmin[sfb];\n trancateThreshold = 0;\n start = 0;\n do {\n var noise;\n for (nsame = 1; start + nsame < width; nsame++) {\n if (BitStream.NEQ(\n work[start + j - width],\n work[start + j + nsame - width]\n )) {\n break;\n }\n }\n noise = work[start + j - width] * work[start + j - width] * nsame;\n if (allowedNoise < noise) {\n if (start != 0)\n trancateThreshold = work[start + j - width - 1];\n break;\n }\n allowedNoise -= noise;\n start += nsame;\n } while (start < width);\n if (BitStream.EQ(trancateThreshold, 0))\n continue;\n do {\n if (Math.abs(gi.xr[j - width]) <= trancateThreshold) {\n gi.l3_enc[j - width] = 0;\n }\n } while (--width > 0);\n } while (++sfb < gi.psymax);\n gi.part2_3_length = tk.noquant_count_bits(gfc, gi, null);\n };\n function loop_break(cod_info) {\n for (var sfb = 0; sfb < cod_info.sfbmax; sfb++) {\n if (cod_info.scalefac[sfb] + cod_info.subblock_gain[cod_info.window[sfb]] == 0) {\n return false;\n }\n }\n return true;\n }\n function penalties(noise) {\n return Util.FAST_LOG10(0.368 + 0.632 * noise * noise * noise);\n }\n function get_klemm_noise(distort, gi) {\n var klemm_noise = 1e-37;\n for (var sfb = 0; sfb < gi.psymax; sfb++) {\n klemm_noise += penalties(distort[sfb]);\n }\n return Math.max(1e-20, klemm_noise);\n }\n function quant_compare(quant_comp, best, calc, gi, distort) {\n var better;\n switch (quant_comp) {\n default:\n case 9: {\n if (best.over_count > 0) {\n better = calc.over_SSD <= best.over_SSD;\n if (calc.over_SSD == best.over_SSD)\n better = calc.bits < best.bits;\n } else {\n better = calc.max_noise < 0 && calc.max_noise * 10 + calc.bits <= best.max_noise * 10 + best.bits;\n }\n break;\n }\n case 0:\n better = calc.over_count < best.over_count || calc.over_count == best.over_count && calc.over_noise < best.over_noise || calc.over_count == best.over_count && BitStream.EQ(calc.over_noise, best.over_noise) && calc.tot_noise < best.tot_noise;\n break;\n case 8:\n calc.max_noise = get_klemm_noise(distort, gi);\n case 1:\n better = calc.max_noise < best.max_noise;\n break;\n case 2:\n better = calc.tot_noise < best.tot_noise;\n break;\n case 3:\n better = calc.tot_noise < best.tot_noise && calc.max_noise < best.max_noise;\n break;\n case 4:\n better = calc.max_noise <= 0 && best.max_noise > 0.2 || calc.max_noise <= 0 && best.max_noise < 0 && best.max_noise > calc.max_noise - 0.2 && calc.tot_noise < best.tot_noise || calc.max_noise <= 0 && best.max_noise > 0 && best.max_noise > calc.max_noise - 0.2 && calc.tot_noise < best.tot_noise + best.over_noise || calc.max_noise > 0 && best.max_noise > -0.05 && best.max_noise > calc.max_noise - 0.1 && calc.tot_noise + calc.over_noise < best.tot_noise + best.over_noise || calc.max_noise > 0 && best.max_noise > -0.1 && best.max_noise > calc.max_noise - 0.15 && calc.tot_noise + calc.over_noise + calc.over_noise < best.tot_noise + best.over_noise + best.over_noise;\n break;\n case 5:\n better = calc.over_noise < best.over_noise || BitStream.EQ(calc.over_noise, best.over_noise) && calc.tot_noise < best.tot_noise;\n break;\n case 6:\n better = calc.over_noise < best.over_noise || BitStream.EQ(calc.over_noise, best.over_noise) && (calc.max_noise < best.max_noise || BitStream.EQ(calc.max_noise, best.max_noise) && calc.tot_noise <= best.tot_noise);\n break;\n case 7:\n better = calc.over_count < best.over_count || calc.over_noise < best.over_noise;\n break;\n }\n if (best.over_count == 0) {\n better = better && calc.bits < best.bits;\n }\n return better;\n }\n function amp_scalefac_bands(gfp, cod_info, distort, xrpow, bRefine) {\n var gfc = gfp.internal_flags;\n var ifqstep34;\n if (cod_info.scalefac_scale == 0) {\n ifqstep34 = 1.2968395546510096;\n } else {\n ifqstep34 = 1.6817928305074292;\n }\n var trigger2 = 0;\n for (var sfb = 0; sfb < cod_info.sfbmax; sfb++) {\n if (trigger2 < distort[sfb])\n trigger2 = distort[sfb];\n }\n var noise_shaping_amp = gfc.noise_shaping_amp;\n if (noise_shaping_amp == 3) {\n if (bRefine)\n noise_shaping_amp = 2;\n else\n noise_shaping_amp = 1;\n }\n switch (noise_shaping_amp) {\n case 2:\n break;\n case 1:\n if (trigger2 > 1)\n trigger2 = Math.pow(trigger2, 0.5);\n else\n trigger2 *= 0.95;\n break;\n case 0:\n default:\n if (trigger2 > 1)\n trigger2 = 1;\n else\n trigger2 *= 0.95;\n break;\n }\n var j = 0;\n for (var sfb = 0; sfb < cod_info.sfbmax; sfb++) {\n var width = cod_info.width[sfb];\n var l;\n j += width;\n if (distort[sfb] < trigger2)\n continue;\n if ((gfc.substep_shaping & 2) != 0) {\n gfc.pseudohalf[sfb] = gfc.pseudohalf[sfb] == 0 ? 1 : 0;\n if (gfc.pseudohalf[sfb] == 0 && gfc.noise_shaping_amp == 2)\n return;\n }\n cod_info.scalefac[sfb]++;\n for (l = -width; l < 0; l++) {\n xrpow[j + l] *= ifqstep34;\n if (xrpow[j + l] > cod_info.xrpow_max)\n cod_info.xrpow_max = xrpow[j + l];\n }\n if (gfc.noise_shaping_amp == 2)\n return;\n }\n }\n function inc_scalefac_scale(cod_info, xrpow) {\n var ifqstep34 = 1.2968395546510096;\n var j = 0;\n for (var sfb = 0; sfb < cod_info.sfbmax; sfb++) {\n var width = cod_info.width[sfb];\n var s = cod_info.scalefac[sfb];\n if (cod_info.preflag != 0)\n s += qupvt.pretab[sfb];\n j += width;\n if ((s & 1) != 0) {\n s++;\n for (var l = -width; l < 0; l++) {\n xrpow[j + l] *= ifqstep34;\n if (xrpow[j + l] > cod_info.xrpow_max) {\n cod_info.xrpow_max = xrpow[j + l];\n }\n }\n }\n cod_info.scalefac[sfb] = s >> 1;\n }\n cod_info.preflag = 0;\n cod_info.scalefac_scale = 1;\n }\n function inc_subblock_gain(gfc, cod_info, xrpow) {\n var sfb;\n var scalefac = cod_info.scalefac;\n for (sfb = 0; sfb < cod_info.sfb_lmax; sfb++) {\n if (scalefac[sfb] >= 16)\n return true;\n }\n for (var window2 = 0; window2 < 3; window2++) {\n var s1 = 0;\n var s2 = 0;\n for (sfb = cod_info.sfb_lmax + window2; sfb < cod_info.sfbdivide; sfb += 3) {\n if (s1 < scalefac[sfb])\n s1 = scalefac[sfb];\n }\n for (; sfb < cod_info.sfbmax; sfb += 3) {\n if (s2 < scalefac[sfb])\n s2 = scalefac[sfb];\n }\n if (s1 < 16 && s2 < 8)\n continue;\n if (cod_info.subblock_gain[window2] >= 7)\n return true;\n cod_info.subblock_gain[window2]++;\n var j = gfc.scalefac_band.l[cod_info.sfb_lmax];\n for (sfb = cod_info.sfb_lmax + window2; sfb < cod_info.sfbmax; sfb += 3) {\n var amp;\n var width = cod_info.width[sfb];\n var s = scalefac[sfb];\n s = s - (4 >> cod_info.scalefac_scale);\n if (s >= 0) {\n scalefac[sfb] = s;\n j += width * 3;\n continue;\n }\n scalefac[sfb] = 0;\n {\n var gain = 210 + (s << cod_info.scalefac_scale + 1);\n amp = qupvt.IPOW20(gain);\n }\n j += width * (window2 + 1);\n for (var l = -width; l < 0; l++) {\n xrpow[j + l] *= amp;\n if (xrpow[j + l] > cod_info.xrpow_max) {\n cod_info.xrpow_max = xrpow[j + l];\n }\n }\n j += width * (3 - window2 - 1);\n }\n {\n var amp = qupvt.IPOW20(202);\n j += cod_info.width[sfb] * (window2 + 1);\n for (var l = -cod_info.width[sfb]; l < 0; l++) {\n xrpow[j + l] *= amp;\n if (xrpow[j + l] > cod_info.xrpow_max) {\n cod_info.xrpow_max = xrpow[j + l];\n }\n }\n }\n }\n return false;\n }\n function balance_noise(gfp, cod_info, distort, xrpow, bRefine) {\n var gfc = gfp.internal_flags;\n amp_scalefac_bands(gfp, cod_info, distort, xrpow, bRefine);\n var status = loop_break(cod_info);\n if (status)\n return false;\n if (gfc.mode_gr == 2)\n status = tk.scale_bitcount(cod_info);\n else\n status = tk.scale_bitcount_lsf(gfc, cod_info);\n if (!status)\n return true;\n if (gfc.noise_shaping > 1) {\n Arrays$1.fill(gfc.pseudohalf, 0);\n if (cod_info.scalefac_scale == 0) {\n inc_scalefac_scale(cod_info, xrpow);\n status = false;\n } else {\n if (cod_info.block_type == Encoder.SHORT_TYPE && gfc.subblock_gain > 0) {\n status = inc_subblock_gain(gfc, cod_info, xrpow) || loop_break(cod_info);\n }\n }\n }\n if (!status) {\n if (gfc.mode_gr == 2)\n status = tk.scale_bitcount(cod_info);\n else\n status = tk.scale_bitcount_lsf(gfc, cod_info);\n }\n return !status;\n }\n this.outer_loop = function(gfp, cod_info, l3_xmin, xrpow, ch, targ_bits) {\n var gfc = gfp.internal_flags;\n var cod_info_w = new GrInfo();\n var save_xrpow = new_float(576);\n var distort = new_float(L3Side$1.SFBMAX);\n var best_noise_info = new CalcNoiseResult$1();\n var better;\n var prev_noise = new CalcNoiseData();\n var best_part2_3_length = 9999999;\n var bEndOfSearch = false;\n var bRefine = false;\n var best_ggain_pass1 = 0;\n bin_search_StepSize(gfc, cod_info, targ_bits, ch, xrpow);\n if (gfc.noise_shaping == 0) {\n return 100;\n }\n qupvt.calc_noise(cod_info, l3_xmin, distort, best_noise_info, prev_noise);\n best_noise_info.bits = cod_info.part2_3_length;\n cod_info_w.assign(cod_info);\n var age = 0;\n System$1.arraycopy(xrpow, 0, save_xrpow, 0, 576);\n while (!bEndOfSearch) {\n do {\n var noise_info = new CalcNoiseResult$1();\n var search_limit;\n var maxggain = 255;\n if ((gfc.substep_shaping & 2) != 0) {\n search_limit = 20;\n } else {\n search_limit = 3;\n }\n if (gfc.sfb21_extra) {\n if (distort[cod_info_w.sfbmax] > 1)\n break;\n if (cod_info_w.block_type == Encoder.SHORT_TYPE && (distort[cod_info_w.sfbmax + 1] > 1 || distort[cod_info_w.sfbmax + 2] > 1)) {\n break;\n }\n }\n if (!balance_noise(gfp, cod_info_w, distort, xrpow, bRefine))\n break;\n if (cod_info_w.scalefac_scale != 0)\n maxggain = 254;\n var huff_bits = targ_bits - cod_info_w.part2_length;\n if (huff_bits <= 0)\n break;\n while ((cod_info_w.part2_3_length = tk.count_bits(\n gfc,\n xrpow,\n cod_info_w,\n prev_noise\n )) > huff_bits && cod_info_w.global_gain <= maxggain) {\n cod_info_w.global_gain++;\n }\n if (cod_info_w.global_gain > maxggain)\n break;\n if (best_noise_info.over_count == 0) {\n while ((cod_info_w.part2_3_length = tk.count_bits(\n gfc,\n xrpow,\n cod_info_w,\n prev_noise\n )) > best_part2_3_length && cod_info_w.global_gain <= maxggain) {\n cod_info_w.global_gain++;\n }\n if (cod_info_w.global_gain > maxggain)\n break;\n }\n qupvt.calc_noise(cod_info_w, l3_xmin, distort, noise_info, prev_noise);\n noise_info.bits = cod_info_w.part2_3_length;\n if (cod_info.block_type != Encoder.SHORT_TYPE) {\n better = gfp.quant_comp;\n } else\n better = gfp.quant_comp_short;\n better = quant_compare(\n better,\n best_noise_info,\n noise_info,\n cod_info_w,\n distort\n ) ? 1 : 0;\n if (better != 0) {\n best_part2_3_length = cod_info.part2_3_length;\n best_noise_info = noise_info;\n cod_info.assign(cod_info_w);\n age = 0;\n System$1.arraycopy(xrpow, 0, save_xrpow, 0, 576);\n } else {\n if (gfc.full_outer_loop == 0) {\n if (++age > search_limit && best_noise_info.over_count == 0)\n break;\n if (gfc.noise_shaping_amp == 3 && bRefine && age > 30)\n break;\n if (gfc.noise_shaping_amp == 3 && bRefine && cod_info_w.global_gain - best_ggain_pass1 > 15) {\n break;\n }\n }\n }\n } while (cod_info_w.global_gain + cod_info_w.scalefac_scale < 255);\n if (gfc.noise_shaping_amp == 3) {\n if (!bRefine) {\n cod_info_w.assign(cod_info);\n System$1.arraycopy(save_xrpow, 0, xrpow, 0, 576);\n age = 0;\n best_ggain_pass1 = cod_info_w.global_gain;\n bRefine = true;\n } else {\n bEndOfSearch = true;\n }\n } else {\n bEndOfSearch = true;\n }\n }\n assert$3(cod_info.global_gain + cod_info.scalefac_scale <= 255);\n if (gfp.VBR == VbrMode$1.vbr_rh || gfp.VBR == VbrMode$1.vbr_mtrh) {\n System$1.arraycopy(save_xrpow, 0, xrpow, 0, 576);\n } else if ((gfc.substep_shaping & 1) != 0) {\n trancate_smallspectrums(gfc, cod_info, l3_xmin, xrpow);\n }\n return best_noise_info.over_count;\n };\n this.iteration_finish_one = function(gfc, gr, ch) {\n var l3_side = gfc.l3_side;\n var cod_info = l3_side.tt[gr][ch];\n tk.best_scalefac_store(gfc, gr, ch, l3_side);\n if (gfc.use_best_huffman == 1)\n tk.best_huffman_divide(gfc, cod_info);\n rv.ResvAdjust(gfc, cod_info);\n };\n this.VBR_encode_granule = function(gfp, cod_info, l3_xmin, xrpow, ch, min_bits, max_bits) {\n var gfc = gfp.internal_flags;\n var bst_cod_info = new GrInfo();\n var bst_xrpow = new_float(576);\n var Max_bits = max_bits;\n var real_bits = max_bits + 1;\n var this_bits = (max_bits + min_bits) / 2;\n var dbits;\n var over;\n var found = 0;\n var sfb21_extra = gfc.sfb21_extra;\n assert$3(Max_bits <= LameInternalFlags.MAX_BITS_PER_CHANNEL);\n Arrays$1.fill(bst_cod_info.l3_enc, 0);\n do {\n if (this_bits > Max_bits - 42)\n gfc.sfb21_extra = false;\n else\n gfc.sfb21_extra = sfb21_extra;\n over = outer_loop(gfp, cod_info, l3_xmin, xrpow, ch, this_bits);\n if (over <= 0) {\n found = 1;\n real_bits = cod_info.part2_3_length;\n bst_cod_info.assign(cod_info);\n System$1.arraycopy(xrpow, 0, bst_xrpow, 0, 576);\n max_bits = real_bits - 32;\n dbits = max_bits - min_bits;\n this_bits = (max_bits + min_bits) / 2;\n } else {\n min_bits = this_bits + 32;\n dbits = max_bits - min_bits;\n this_bits = (max_bits + min_bits) / 2;\n if (found != 0) {\n found = 2;\n cod_info.assign(bst_cod_info);\n System$1.arraycopy(bst_xrpow, 0, xrpow, 0, 576);\n }\n }\n } while (dbits > 12);\n gfc.sfb21_extra = sfb21_extra;\n if (found == 2) {\n System$1.arraycopy(bst_cod_info.l3_enc, 0, cod_info.l3_enc, 0, 576);\n }\n assert$3(cod_info.part2_3_length <= Max_bits);\n };\n this.get_framebits = function(gfp, frameBits) {\n var gfc = gfp.internal_flags;\n gfc.bitrate_index = gfc.VBR_min_bitrate;\n var bitsPerFrame = bs.getframebits(gfp);\n gfc.bitrate_index = 1;\n bitsPerFrame = bs.getframebits(gfp);\n for (var i = 1; i <= gfc.VBR_max_bitrate; i++) {\n gfc.bitrate_index = i;\n var mb = new MeanBits(bitsPerFrame);\n frameBits[i] = rv.ResvFrameBegin(gfp, mb);\n bitsPerFrame = mb.bits;\n }\n };\n this.VBR_old_prepare = function(gfp, pe, ms_ener_ratio, ratio, l3_xmin, frameBits, min_bits, max_bits, bands) {\n var gfc = gfp.internal_flags;\n var masking_lower_db;\n var adjust = 0;\n var analog_silence = 1;\n var bits = 0;\n gfc.bitrate_index = gfc.VBR_max_bitrate;\n var avg = rv.ResvFrameBegin(gfp, new MeanBits(0)) / gfc.mode_gr;\n get_framebits(gfp, frameBits);\n for (var gr = 0; gr < gfc.mode_gr; gr++) {\n var mxb = qupvt.on_pe(gfp, pe, max_bits[gr], avg, gr, 0);\n if (gfc.mode_ext == Encoder.MPG_MD_MS_LR) {\n ms_convert(gfc.l3_side, gr);\n qupvt.reduce_side(max_bits[gr], ms_ener_ratio[gr], avg, mxb);\n }\n for (var ch = 0; ch < gfc.channels_out; ++ch) {\n var cod_info = gfc.l3_side.tt[gr][ch];\n if (cod_info.block_type != Encoder.SHORT_TYPE) {\n adjust = 1.28 / (1 + Math.exp(3.5 - pe[gr][ch] / 300)) - 0.05;\n masking_lower_db = gfc.PSY.mask_adjust - adjust;\n } else {\n adjust = 2.56 / (1 + Math.exp(3.5 - pe[gr][ch] / 300)) - 0.14;\n masking_lower_db = gfc.PSY.mask_adjust_short - adjust;\n }\n gfc.masking_lower = Math.pow(10, masking_lower_db * 0.1);\n init_outer_loop(gfc, cod_info);\n bands[gr][ch] = qupvt.calc_xmin(\n gfp,\n ratio[gr][ch],\n cod_info,\n l3_xmin[gr][ch]\n );\n if (bands[gr][ch] != 0)\n analog_silence = 0;\n min_bits[gr][ch] = 126;\n bits += max_bits[gr][ch];\n }\n }\n for (var gr = 0; gr < gfc.mode_gr; gr++) {\n for (var ch = 0; ch < gfc.channels_out; ch++) {\n if (bits > frameBits[gfc.VBR_max_bitrate]) {\n max_bits[gr][ch] *= frameBits[gfc.VBR_max_bitrate];\n max_bits[gr][ch] /= bits;\n }\n if (min_bits[gr][ch] > max_bits[gr][ch]) {\n min_bits[gr][ch] = max_bits[gr][ch];\n }\n }\n }\n return analog_silence;\n };\n this.bitpressure_strategy = function(gfc, l3_xmin, min_bits, max_bits) {\n for (var gr = 0; gr < gfc.mode_gr; gr++) {\n for (var ch = 0; ch < gfc.channels_out; ch++) {\n var gi = gfc.l3_side.tt[gr][ch];\n var pxmin = l3_xmin[gr][ch];\n var pxminPos = 0;\n for (var sfb = 0; sfb < gi.psy_lmax; sfb++) {\n pxmin[pxminPos++] *= 1 + 0.029 * sfb * sfb / Encoder.SBMAX_l / Encoder.SBMAX_l;\n }\n if (gi.block_type == Encoder.SHORT_TYPE) {\n for (var sfb = gi.sfb_smin; sfb < Encoder.SBMAX_s; sfb++) {\n pxmin[pxminPos++] *= 1 + 0.029 * sfb * sfb / Encoder.SBMAX_s / Encoder.SBMAX_s;\n pxmin[pxminPos++] *= 1 + 0.029 * sfb * sfb / Encoder.SBMAX_s / Encoder.SBMAX_s;\n pxmin[pxminPos++] *= 1 + 0.029 * sfb * sfb / Encoder.SBMAX_s / Encoder.SBMAX_s;\n }\n }\n max_bits[gr][ch] = 0 | Math.max(min_bits[gr][ch], 0.9 * max_bits[gr][ch]);\n }\n }\n };\n this.VBR_new_prepare = function(gfp, pe, ratio, l3_xmin, frameBits, max_bits) {\n var gfc = gfp.internal_flags;\n var analog_silence = 1;\n var avg = 0;\n var bits = 0;\n var maximum_framebits;\n if (!gfp.free_format) {\n gfc.bitrate_index = gfc.VBR_max_bitrate;\n var mb = new MeanBits(avg);\n rv.ResvFrameBegin(gfp, mb);\n avg = mb.bits;\n get_framebits(gfp, frameBits);\n maximum_framebits = frameBits[gfc.VBR_max_bitrate];\n } else {\n gfc.bitrate_index = 0;\n var mb = new MeanBits(avg);\n maximum_framebits = rv.ResvFrameBegin(gfp, mb);\n avg = mb.bits;\n frameBits[0] = maximum_framebits;\n }\n for (var gr = 0; gr < gfc.mode_gr; gr++) {\n qupvt.on_pe(gfp, pe, max_bits[gr], avg, gr, 0);\n if (gfc.mode_ext == Encoder.MPG_MD_MS_LR) {\n ms_convert(gfc.l3_side, gr);\n }\n for (var ch = 0; ch < gfc.channels_out; ++ch) {\n var cod_info = gfc.l3_side.tt[gr][ch];\n gfc.masking_lower = Math.pow(10, gfc.PSY.mask_adjust * 0.1);\n init_outer_loop(gfc, cod_info);\n if (qupvt.calc_xmin(gfp, ratio[gr][ch], cod_info, l3_xmin[gr][ch]) != 0) {\n analog_silence = 0;\n }\n bits += max_bits[gr][ch];\n }\n }\n for (var gr = 0; gr < gfc.mode_gr; gr++) {\n for (var ch = 0; ch < gfc.channels_out; ch++) {\n if (bits > maximum_framebits) {\n max_bits[gr][ch] *= maximum_framebits;\n max_bits[gr][ch] /= bits;\n }\n }\n }\n return analog_silence;\n };\n this.calc_target_bits = function(gfp, pe, ms_ener_ratio, targ_bits, analog_silence_bits, max_frame_bits) {\n var gfc = gfp.internal_flags;\n var l3_side = gfc.l3_side;\n var res_factor;\n var gr;\n var ch;\n var totbits;\n var mean_bits = 0;\n gfc.bitrate_index = gfc.VBR_max_bitrate;\n var mb = new MeanBits(mean_bits);\n max_frame_bits[0] = rv.ResvFrameBegin(gfp, mb);\n mean_bits = mb.bits;\n gfc.bitrate_index = 1;\n mean_bits = bs.getframebits(gfp) - gfc.sideinfo_len * 8;\n analog_silence_bits[0] = mean_bits / (gfc.mode_gr * gfc.channels_out);\n mean_bits = gfp.VBR_mean_bitrate_kbps * gfp.framesize * 1e3;\n if ((gfc.substep_shaping & 1) != 0)\n mean_bits *= 1.09;\n mean_bits /= gfp.out_samplerate;\n mean_bits -= gfc.sideinfo_len * 8;\n mean_bits /= gfc.mode_gr * gfc.channels_out;\n res_factor = 0.93 + 0.07 * (11 - gfp.compression_ratio) / (11 - 5.5);\n if (res_factor < 0.9)\n res_factor = 0.9;\n if (res_factor > 1)\n res_factor = 1;\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n var sum = 0;\n for (ch = 0; ch < gfc.channels_out; ch++) {\n targ_bits[gr][ch] = int(res_factor * mean_bits);\n if (pe[gr][ch] > 700) {\n var add_bits = int((pe[gr][ch] - 700) / 1.4);\n var cod_info = l3_side.tt[gr][ch];\n targ_bits[gr][ch] = int(res_factor * mean_bits);\n if (cod_info.block_type == Encoder.SHORT_TYPE) {\n if (add_bits < mean_bits / 2)\n add_bits = mean_bits / 2;\n }\n if (add_bits > mean_bits * 3 / 2)\n add_bits = mean_bits * 3 / 2;\n else if (add_bits < 0)\n add_bits = 0;\n targ_bits[gr][ch] += add_bits;\n }\n if (targ_bits[gr][ch] > LameInternalFlags.MAX_BITS_PER_CHANNEL) {\n targ_bits[gr][ch] = LameInternalFlags.MAX_BITS_PER_CHANNEL;\n }\n sum += targ_bits[gr][ch];\n }\n if (sum > LameInternalFlags.MAX_BITS_PER_GRANULE) {\n for (ch = 0; ch < gfc.channels_out; ++ch) {\n targ_bits[gr][ch] *= LameInternalFlags.MAX_BITS_PER_GRANULE;\n targ_bits[gr][ch] /= sum;\n }\n }\n }\n if (gfc.mode_ext == Encoder.MPG_MD_MS_LR) {\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n qupvt.reduce_side(\n targ_bits[gr],\n ms_ener_ratio[gr],\n mean_bits * gfc.channels_out,\n LameInternalFlags.MAX_BITS_PER_GRANULE\n );\n }\n }\n totbits = 0;\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n if (targ_bits[gr][ch] > LameInternalFlags.MAX_BITS_PER_CHANNEL) {\n targ_bits[gr][ch] = LameInternalFlags.MAX_BITS_PER_CHANNEL;\n }\n totbits += targ_bits[gr][ch];\n }\n }\n if (totbits > max_frame_bits[0]) {\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n targ_bits[gr][ch] *= max_frame_bits[0];\n targ_bits[gr][ch] /= totbits;\n }\n }\n }\n };\n}\nvar assert$2 = common.assert;\nfunction Reservoir() {\n var bs;\n this.setModules = function(_bs) {\n bs = _bs;\n };\n this.ResvFrameBegin = function(gfp, mean_bits) {\n var gfc = gfp.internal_flags;\n var maxmp3buf;\n var l3_side = gfc.l3_side;\n var frameLength = bs.getframebits(gfp);\n mean_bits.bits = (frameLength - gfc.sideinfo_len * 8) / gfc.mode_gr;\n var resvLimit = 8 * 256 * gfc.mode_gr - 8;\n if (gfp.brate > 320) {\n maxmp3buf = 8 * int(gfp.brate * 1e3 / (gfp.out_samplerate / 1152) / 8 + 0.5);\n } else {\n maxmp3buf = 8 * 1440;\n if (gfp.strict_ISO) {\n maxmp3buf = 8 * int(32e4 / (gfp.out_samplerate / 1152) / 8 + 0.5);\n }\n }\n gfc.ResvMax = maxmp3buf - frameLength;\n if (gfc.ResvMax > resvLimit)\n gfc.ResvMax = resvLimit;\n if (gfc.ResvMax < 0 || gfp.disable_reservoir)\n gfc.ResvMax = 0;\n var fullFrameBits = mean_bits.bits * gfc.mode_gr + Math.min(gfc.ResvSize, gfc.ResvMax);\n if (fullFrameBits > maxmp3buf)\n fullFrameBits = maxmp3buf;\n assert$2(gfc.ResvMax % 8 == 0);\n assert$2(gfc.ResvMax >= 0);\n l3_side.resvDrain_pre = 0;\n if (gfc.pinfo != null) {\n gfc.pinfo.mean_bits = mean_bits.bits / 2;\n gfc.pinfo.resvsize = gfc.ResvSize;\n }\n return fullFrameBits;\n };\n this.ResvMaxBits = function(gfp, mean_bits, targ_bits, cbr) {\n var gfc = gfp.internal_flags;\n var add_bits;\n var ResvSize = gfc.ResvSize;\n var ResvMax = gfc.ResvMax;\n if (cbr != 0)\n ResvSize += mean_bits;\n if ((gfc.substep_shaping & 1) != 0)\n ResvMax *= 0.9;\n targ_bits.bits = mean_bits;\n if (ResvSize * 10 > ResvMax * 9) {\n add_bits = ResvSize - ResvMax * 9 / 10;\n targ_bits.bits += add_bits;\n gfc.substep_shaping |= 128;\n } else {\n add_bits = 0;\n gfc.substep_shaping &= 127;\n if (!gfp.disable_reservoir && (gfc.substep_shaping & 1) == 0) {\n targ_bits.bits -= 0.1 * mean_bits;\n }\n }\n var extra_bits = ResvSize < gfc.ResvMax * 6 / 10 ? ResvSize : gfc.ResvMax * 6 / 10;\n extra_bits -= add_bits;\n if (extra_bits < 0)\n extra_bits = 0;\n return extra_bits;\n };\n this.ResvAdjust = function(gfc, gi) {\n gfc.ResvSize -= gi.part2_3_length + gi.part2_length;\n };\n this.ResvFrameEnd = function(gfc, mean_bits) {\n var over_bits;\n var l3_side = gfc.l3_side;\n gfc.ResvSize += mean_bits * gfc.mode_gr;\n var stuffingBits = 0;\n l3_side.resvDrain_post = 0;\n l3_side.resvDrain_pre = 0;\n if ((over_bits = gfc.ResvSize % 8) != 0)\n stuffingBits += over_bits;\n over_bits = gfc.ResvSize - stuffingBits - gfc.ResvMax;\n if (over_bits > 0) {\n stuffingBits += over_bits;\n }\n {\n var mdb_bytes = Math.min(l3_side.main_data_begin * 8, stuffingBits) / 8;\n l3_side.resvDrain_pre += 8 * mdb_bytes;\n stuffingBits -= 8 * mdb_bytes;\n gfc.ResvSize -= 8 * mdb_bytes;\n l3_side.main_data_begin -= mdb_bytes;\n }\n l3_side.resvDrain_post += stuffingBits;\n gfc.ResvSize -= stuffingBits;\n };\n}\nfunction Version() {\n var LAME_URL = \"http://www.mp3dev.org/\";\n var LAME_MAJOR_VERSION = 3;\n var LAME_MINOR_VERSION = 98;\n var LAME_PATCH_VERSION = 4;\n var PSY_MAJOR_VERSION = 0;\n var PSY_MINOR_VERSION = 93;\n this.getLameVersion = function() {\n return LAME_MAJOR_VERSION + \".\" + LAME_MINOR_VERSION + \".\" + LAME_PATCH_VERSION;\n };\n this.getLameShortVersion = function() {\n return LAME_MAJOR_VERSION + \".\" + LAME_MINOR_VERSION + \".\" + LAME_PATCH_VERSION;\n };\n this.getLameVeryShortVersion = function() {\n return \"LAME\" + LAME_MAJOR_VERSION + \".\" + LAME_MINOR_VERSION + \"r\";\n };\n this.getPsyVersion = function() {\n return PSY_MAJOR_VERSION + \".\" + PSY_MINOR_VERSION;\n };\n this.getLameUrl = function() {\n return LAME_URL;\n };\n this.getLameOsBitness = function() {\n return \"32bits\";\n };\n}\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar ShortBlock = common.ShortBlock;\nvar Arrays = common.Arrays;\nvar new_byte$1 = common.new_byte;\nvar assert$1 = common.assert;\nVBRTag.NUMTOCENTRIES = 100;\nVBRTag.MAXFRAMESIZE = 2880;\nfunction VBRTag() {\n var lame;\n var bs;\n var v;\n this.setModules = function(_lame, _bs, _v) {\n lame = _lame;\n bs = _bs;\n v = _v;\n };\n var FRAMES_FLAG = 1;\n var BYTES_FLAG = 2;\n var TOC_FLAG = 4;\n var VBR_SCALE_FLAG = 8;\n var NUMTOCENTRIES = VBRTag.NUMTOCENTRIES;\n var MAXFRAMESIZE = VBRTag.MAXFRAMESIZE;\n var VBRHEADERSIZE = NUMTOCENTRIES + 4 + 4 + 4 + 4 + 4;\n var LAMEHEADERSIZE = VBRHEADERSIZE + 9 + 1 + 1 + 8 + 1 + 1 + 3 + 1 + 1 + 2 + 4 + 2 + 2;\n var XING_BITRATE1 = 128;\n var XING_BITRATE2 = 64;\n var XING_BITRATE25 = 32;\n var ISO_8859_1 = null;\n var VBRTag0 = \"Xing\";\n var VBRTag1 = \"Info\";\n var crc16Lookup = [\n 0,\n 49345,\n 49537,\n 320,\n 49921,\n 960,\n 640,\n 49729,\n 50689,\n 1728,\n 1920,\n 51009,\n 1280,\n 50625,\n 50305,\n 1088,\n 52225,\n 3264,\n 3456,\n 52545,\n 3840,\n 53185,\n 52865,\n 3648,\n 2560,\n 51905,\n 52097,\n 2880,\n 51457,\n 2496,\n 2176,\n 51265,\n 55297,\n 6336,\n 6528,\n 55617,\n 6912,\n 56257,\n 55937,\n 6720,\n 7680,\n 57025,\n 57217,\n 8e3,\n 56577,\n 7616,\n 7296,\n 56385,\n 5120,\n 54465,\n 54657,\n 5440,\n 55041,\n 6080,\n 5760,\n 54849,\n 53761,\n 4800,\n 4992,\n 54081,\n 4352,\n 53697,\n 53377,\n 4160,\n 61441,\n 12480,\n 12672,\n 61761,\n 13056,\n 62401,\n 62081,\n 12864,\n 13824,\n 63169,\n 63361,\n 14144,\n 62721,\n 13760,\n 13440,\n 62529,\n 15360,\n 64705,\n 64897,\n 15680,\n 65281,\n 16320,\n 16e3,\n 65089,\n 64001,\n 15040,\n 15232,\n 64321,\n 14592,\n 63937,\n 63617,\n 14400,\n 10240,\n 59585,\n 59777,\n 10560,\n 60161,\n 11200,\n 10880,\n 59969,\n 60929,\n 11968,\n 12160,\n 61249,\n 11520,\n 60865,\n 60545,\n 11328,\n 58369,\n 9408,\n 9600,\n 58689,\n 9984,\n 59329,\n 59009,\n 9792,\n 8704,\n 58049,\n 58241,\n 9024,\n 57601,\n 8640,\n 8320,\n 57409,\n 40961,\n 24768,\n 24960,\n 41281,\n 25344,\n 41921,\n 41601,\n 25152,\n 26112,\n 42689,\n 42881,\n 26432,\n 42241,\n 26048,\n 25728,\n 42049,\n 27648,\n 44225,\n 44417,\n 27968,\n 44801,\n 28608,\n 28288,\n 44609,\n 43521,\n 27328,\n 27520,\n 43841,\n 26880,\n 43457,\n 43137,\n 26688,\n 30720,\n 47297,\n 47489,\n 31040,\n 47873,\n 31680,\n 31360,\n 47681,\n 48641,\n 32448,\n 32640,\n 48961,\n 32e3,\n 48577,\n 48257,\n 31808,\n 46081,\n 29888,\n 30080,\n 46401,\n 30464,\n 47041,\n 46721,\n 30272,\n 29184,\n 45761,\n 45953,\n 29504,\n 45313,\n 29120,\n 28800,\n 45121,\n 20480,\n 37057,\n 37249,\n 20800,\n 37633,\n 21440,\n 21120,\n 37441,\n 38401,\n 22208,\n 22400,\n 38721,\n 21760,\n 38337,\n 38017,\n 21568,\n 39937,\n 23744,\n 23936,\n 40257,\n 24320,\n 40897,\n 40577,\n 24128,\n 23040,\n 39617,\n 39809,\n 23360,\n 39169,\n 22976,\n 22656,\n 38977,\n 34817,\n 18624,\n 18816,\n 35137,\n 19200,\n 35777,\n 35457,\n 19008,\n 19968,\n 36545,\n 36737,\n 20288,\n 36097,\n 19904,\n 19584,\n 35905,\n 17408,\n 33985,\n 34177,\n 17728,\n 34561,\n 18368,\n 18048,\n 34369,\n 33281,\n 17088,\n 17280,\n 33601,\n 16640,\n 33217,\n 32897,\n 16448\n ];\n function addVbr(v2, bitrate) {\n v2.nVbrNumFrames++;\n v2.sum += bitrate;\n v2.seen++;\n if (v2.seen < v2.want) {\n return;\n }\n if (v2.pos < v2.size) {\n v2.bag[v2.pos] = v2.sum;\n v2.pos++;\n v2.seen = 0;\n }\n if (v2.pos == v2.size) {\n for (var i = 1; i < v2.size; i += 2) {\n v2.bag[i / 2] = v2.bag[i];\n }\n v2.want *= 2;\n v2.pos /= 2;\n }\n }\n function xingSeekTable(v2, t) {\n if (v2.pos <= 0)\n return;\n for (var i = 1; i < NUMTOCENTRIES; ++i) {\n var j = i / NUMTOCENTRIES;\n var act;\n var sum;\n var indx = 0 | Math.floor(j * v2.pos);\n if (indx > v2.pos - 1)\n indx = v2.pos - 1;\n act = v2.bag[indx];\n sum = v2.sum;\n var seek_point = 0 | 256 * act / sum;\n if (seek_point > 255)\n seek_point = 255;\n t[i] = 255 & seek_point;\n }\n }\n this.addVbrFrame = function(gfp) {\n var gfc = gfp.internal_flags;\n var kbps = Tables.bitrate_table[gfp.version][gfc.bitrate_index];\n assert$1(gfc.VBR_seek_table.bag != null);\n addVbr(gfc.VBR_seek_table, kbps);\n };\n function extractInteger(buf, bufPos) {\n var x = buf[bufPos + 0] & 255;\n x <<= 8;\n x |= buf[bufPos + 1] & 255;\n x <<= 8;\n x |= buf[bufPos + 2] & 255;\n x <<= 8;\n x |= buf[bufPos + 3] & 255;\n return x;\n }\n function createInteger(buf, bufPos, value) {\n buf[bufPos + 0] = 255 & (value >> 24 & 255);\n buf[bufPos + 1] = 255 & (value >> 16 & 255);\n buf[bufPos + 2] = 255 & (value >> 8 & 255);\n buf[bufPos + 3] = 255 & (value & 255);\n }\n function createShort(buf, bufPos, value) {\n buf[bufPos + 0] = 255 & (value >> 8 & 255);\n buf[bufPos + 1] = 255 & (value & 255);\n }\n function isVbrTag(buf, bufPos) {\n return new String(buf, bufPos, VBRTag0.length(), ISO_8859_1).equals(VBRTag0) || new String(buf, bufPos, VBRTag1.length(), ISO_8859_1).equals(VBRTag1);\n }\n function shiftInBitsValue(x, n, v2) {\n return 255 & (x << n | v2 & ~(-1 << n));\n }\n function setLameTagFrameHeader(gfp, buffer) {\n var gfc = gfp.internal_flags;\n buffer[0] = shiftInBitsValue(buffer[0], 8, 255);\n buffer[1] = shiftInBitsValue(buffer[1], 3, 7);\n buffer[1] = shiftInBitsValue(\n buffer[1],\n 1,\n gfp.out_samplerate < 16e3 ? 0 : 1\n );\n buffer[1] = shiftInBitsValue(buffer[1], 1, gfp.version);\n buffer[1] = shiftInBitsValue(buffer[1], 2, 4 - 3);\n buffer[1] = shiftInBitsValue(buffer[1], 1, !gfp.error_protection ? 1 : 0);\n buffer[2] = shiftInBitsValue(buffer[2], 4, gfc.bitrate_index);\n buffer[2] = shiftInBitsValue(buffer[2], 2, gfc.samplerate_index);\n buffer[2] = shiftInBitsValue(buffer[2], 1, 0);\n buffer[2] = shiftInBitsValue(buffer[2], 1, gfp.extension);\n buffer[3] = shiftInBitsValue(buffer[3], 2, gfp.mode.ordinal());\n buffer[3] = shiftInBitsValue(buffer[3], 2, gfc.mode_ext);\n buffer[3] = shiftInBitsValue(buffer[3], 1, gfp.copyright);\n buffer[3] = shiftInBitsValue(buffer[3], 1, gfp.original);\n buffer[3] = shiftInBitsValue(buffer[3], 2, gfp.emphasis);\n buffer[0] = 255;\n var abyte = 255 & (buffer[1] & 241);\n var bitrate;\n if (gfp.version == 1) {\n bitrate = XING_BITRATE1;\n } else {\n if (gfp.out_samplerate < 16e3)\n bitrate = XING_BITRATE25;\n else\n bitrate = XING_BITRATE2;\n }\n if (gfp.VBR == VbrMode.vbr_off)\n bitrate = gfp.brate;\n var bbyte;\n if (gfp.free_format)\n bbyte = 0;\n else {\n bbyte = 255 & 16 * lame.BitrateIndex(bitrate, gfp.version, gfp.out_samplerate);\n }\n if (gfp.version == 1) {\n buffer[1] = 255 & (abyte | 10);\n abyte = 255 & (buffer[2] & 13);\n buffer[2] = 255 & (bbyte | abyte);\n } else {\n buffer[1] = 255 & (abyte | 2);\n abyte = 255 & (buffer[2] & 13);\n buffer[2] = 255 & (bbyte | abyte);\n }\n }\n this.getVbrTag = function(buf) {\n var pTagData = new VBRTagData();\n var bufPos = 0;\n pTagData.flags = 0;\n var hId = buf[bufPos + 1] >> 3 & 1;\n var hSrIndex = buf[bufPos + 2] >> 2 & 3;\n var hMode = buf[bufPos + 3] >> 6 & 3;\n var hBitrate = buf[bufPos + 2] >> 4 & 15;\n hBitrate = Tables.bitrate_table[hId][hBitrate];\n if (buf[bufPos + 1] >> 4 == 14) {\n pTagData.samprate = Tables.samplerate_table[2][hSrIndex];\n } else\n pTagData.samprate = Tables.samplerate_table[hId][hSrIndex];\n if (hId != 0) {\n if (hMode != 3)\n bufPos += 32 + 4;\n else\n bufPos += 17 + 4;\n } else {\n if (hMode != 3)\n bufPos += 17 + 4;\n else\n bufPos += 9 + 4;\n }\n if (!isVbrTag(buf, bufPos))\n return null;\n bufPos += 4;\n pTagData.hId = hId;\n var head_flags = pTagData.flags = extractInteger(buf, bufPos);\n bufPos += 4;\n if ((head_flags & FRAMES_FLAG) != 0) {\n pTagData.frames = extractInteger(buf, bufPos);\n bufPos += 4;\n }\n if ((head_flags & BYTES_FLAG) != 0) {\n pTagData.bytes = extractInteger(buf, bufPos);\n bufPos += 4;\n }\n if ((head_flags & TOC_FLAG) != 0) {\n if (pTagData.toc != null) {\n for (var i = 0; i < NUMTOCENTRIES; i++) {\n pTagData.toc[i] = buf[bufPos + i];\n }\n }\n bufPos += NUMTOCENTRIES;\n }\n pTagData.vbrScale = -1;\n if ((head_flags & VBR_SCALE_FLAG) != 0) {\n pTagData.vbrScale = extractInteger(buf, bufPos);\n bufPos += 4;\n }\n pTagData.headersize = (hId + 1) * 72e3 * hBitrate / pTagData.samprate;\n bufPos += 21;\n var encDelay = buf[bufPos + 0] << 4;\n encDelay += buf[bufPos + 1] >> 4;\n var encPadding = (buf[bufPos + 1] & 15) << 8;\n encPadding += buf[bufPos + 2] & 255;\n if (encDelay < 0 || encDelay > 3e3)\n encDelay = -1;\n if (encPadding < 0 || encPadding > 3e3)\n encPadding = -1;\n pTagData.encDelay = encDelay;\n pTagData.encPadding = encPadding;\n return pTagData;\n };\n this.InitVbrTag = function(gfp) {\n var gfc = gfp.internal_flags;\n var kbps_header;\n if (gfp.version == 1) {\n kbps_header = XING_BITRATE1;\n } else {\n if (gfp.out_samplerate < 16e3)\n kbps_header = XING_BITRATE25;\n else\n kbps_header = XING_BITRATE2;\n }\n if (gfp.VBR == VbrMode.vbr_off)\n kbps_header = gfp.brate;\n var totalFrameSize = (gfp.version + 1) * 72e3 * kbps_header / gfp.out_samplerate;\n var headerSize = gfc.sideinfo_len + LAMEHEADERSIZE;\n gfc.VBR_seek_table.TotalFrameSize = totalFrameSize;\n if (totalFrameSize < headerSize || totalFrameSize > MAXFRAMESIZE) {\n gfp.bWriteVbrTag = false;\n return;\n }\n gfc.VBR_seek_table.nVbrNumFrames = 0;\n gfc.VBR_seek_table.nBytesWritten = 0;\n gfc.VBR_seek_table.sum = 0;\n gfc.VBR_seek_table.seen = 0;\n gfc.VBR_seek_table.want = 1;\n gfc.VBR_seek_table.pos = 0;\n if (gfc.VBR_seek_table.bag == null) {\n gfc.VBR_seek_table.bag = new int[400]();\n gfc.VBR_seek_table.size = 400;\n }\n var buffer = new_byte$1(MAXFRAMESIZE);\n setLameTagFrameHeader(gfp, buffer);\n var n = gfc.VBR_seek_table.TotalFrameSize;\n for (var i = 0; i < n; ++i) {\n bs.add_dummy_byte(gfp, buffer[i] & 255, 1);\n }\n };\n function crcUpdateLookup(value, crc) {\n var tmp = crc ^ value;\n crc = crc >> 8 ^ crc16Lookup[tmp & 255];\n return crc;\n }\n this.updateMusicCRC = function(crc, buffer, bufferPos, size2) {\n for (var i = 0; i < size2; ++i) {\n crc[0] = crcUpdateLookup(buffer[bufferPos + i], crc[0]);\n }\n };\n function putLameVBR(gfp, musicLength, streamBuffer, streamBufferPos, crc) {\n var gfc = gfp.internal_flags;\n var bytesWritten = 0;\n var encDelay = gfp.encoder_delay;\n var encPadding = gfp.encoder_padding;\n var quality = 100 - 10 * gfp.VBR_q - gfp.quality;\n var version2 = v.getLameVeryShortVersion();\n var vbr;\n var revision = 0;\n var revMethod;\n var vbrTypeTranslator = [1, 5, 3, 2, 4, 0, 3];\n var lowpass = 0 | (gfp.lowpassfreq / 100 + 0.5 > 255 ? 255 : gfp.lowpassfreq / 100 + 0.5);\n var peakSignalAmplitude = 0;\n var radioReplayGain = 0;\n var audiophileReplayGain = 0;\n var noiseShaping = gfp.internal_flags.noise_shaping;\n var stereoMode = 0;\n var nonOptimal = 0;\n var sourceFreq = 0;\n var misc = 0;\n var musicCRC = 0;\n var expNPsyTune = (gfp.exp_nspsytune & 1) != 0;\n var safeJoint = (gfp.exp_nspsytune & 2) != 0;\n var noGapMore = false;\n var noGapPrevious = false;\n var noGapCount = gfp.internal_flags.nogap_total;\n var noGapCurr = gfp.internal_flags.nogap_current;\n var athType = gfp.ATHtype;\n var flags = 0;\n var abrBitrate;\n switch (gfp.VBR) {\n case vbr_abr:\n abrBitrate = gfp.VBR_mean_bitrate_kbps;\n break;\n case vbr_off:\n abrBitrate = gfp.brate;\n break;\n default:\n abrBitrate = gfp.VBR_min_bitrate_kbps;\n }\n if (gfp.VBR.ordinal() < vbrTypeTranslator.length) {\n vbr = vbrTypeTranslator[gfp.VBR.ordinal()];\n } else\n vbr = 0;\n revMethod = 16 * revision + vbr;\n if (gfc.findReplayGain) {\n if (gfc.RadioGain > 510)\n gfc.RadioGain = 510;\n if (gfc.RadioGain < -510)\n gfc.RadioGain = -510;\n radioReplayGain = 8192;\n radioReplayGain |= 3072;\n if (gfc.RadioGain >= 0) {\n radioReplayGain |= gfc.RadioGain;\n } else {\n radioReplayGain |= 512;\n radioReplayGain |= -gfc.RadioGain;\n }\n }\n if (gfc.findPeakSample) {\n peakSignalAmplitude = Math.abs(\n 0 | gfc.PeakSample / 32767 * Math.pow(2, 23) + 0.5\n );\n }\n if (noGapCount != -1) {\n if (noGapCurr > 0)\n noGapPrevious = true;\n if (noGapCurr < noGapCount - 1)\n noGapMore = true;\n }\n flags = athType + ((expNPsyTune ? 1 : 0) << 4) + ((safeJoint ? 1 : 0) << 5) + ((noGapMore ? 1 : 0) << 6) + ((noGapPrevious ? 1 : 0) << 7);\n if (quality < 0)\n quality = 0;\n switch (gfp.mode) {\n case MONO:\n stereoMode = 0;\n break;\n case STEREO:\n stereoMode = 1;\n break;\n case DUAL_CHANNEL:\n stereoMode = 2;\n break;\n case JOINT_STEREO:\n if (gfp.force_ms)\n stereoMode = 4;\n else\n stereoMode = 3;\n break;\n case NOT_SET:\n default:\n stereoMode = 7;\n break;\n }\n if (gfp.in_samplerate <= 32e3)\n sourceFreq = 0;\n else if (gfp.in_samplerate == 48e3)\n sourceFreq = 2;\n else if (gfp.in_samplerate > 48e3)\n sourceFreq = 3;\n else {\n sourceFreq = 1;\n }\n if (gfp.short_blocks == ShortBlock.short_block_forced || gfp.short_blocks == ShortBlock.short_block_dispensed || gfp.lowpassfreq == -1 && gfp.highpassfreq == -1 || gfp.scale_left < gfp.scale_right || gfp.scale_left > gfp.scale_right || gfp.disable_reservoir && gfp.brate < 320 || gfp.noATH || gfp.ATHonly || athType == 0 || gfp.in_samplerate <= 32e3) {\n nonOptimal = 1;\n }\n misc = noiseShaping + (stereoMode << 2) + (nonOptimal << 5) + (sourceFreq << 6);\n musicCRC = gfc.nMusicCRC;\n createInteger(streamBuffer, streamBufferPos + bytesWritten, quality);\n bytesWritten += 4;\n for (var j = 0; j < 9; j++) {\n streamBuffer[streamBufferPos + bytesWritten + j] = 255 & version2.charAt(j);\n }\n bytesWritten += 9;\n streamBuffer[streamBufferPos + bytesWritten] = 255 & revMethod;\n bytesWritten++;\n streamBuffer[streamBufferPos + bytesWritten] = 255 & lowpass;\n bytesWritten++;\n createInteger(\n streamBuffer,\n streamBufferPos + bytesWritten,\n peakSignalAmplitude\n );\n bytesWritten += 4;\n createShort(streamBuffer, streamBufferPos + bytesWritten, radioReplayGain);\n bytesWritten += 2;\n createShort(\n streamBuffer,\n streamBufferPos + bytesWritten,\n audiophileReplayGain\n );\n bytesWritten += 2;\n streamBuffer[streamBufferPos + bytesWritten] = 255 & flags;\n bytesWritten++;\n if (abrBitrate >= 255)\n streamBuffer[streamBufferPos + bytesWritten] = 255;\n else\n streamBuffer[streamBufferPos + bytesWritten] = 255 & abrBitrate;\n bytesWritten++;\n streamBuffer[streamBufferPos + bytesWritten] = 255 & encDelay >> 4;\n streamBuffer[streamBufferPos + bytesWritten + 1] = 255 & (encDelay << 4) + (encPadding >> 8);\n streamBuffer[streamBufferPos + bytesWritten + 2] = 255 & encPadding;\n bytesWritten += 3;\n streamBuffer[streamBufferPos + bytesWritten] = 255 & misc;\n bytesWritten++;\n streamBuffer[streamBufferPos + bytesWritten++] = 0;\n createShort(streamBuffer, streamBufferPos + bytesWritten, gfp.preset);\n bytesWritten += 2;\n createInteger(streamBuffer, streamBufferPos + bytesWritten, musicLength);\n bytesWritten += 4;\n createShort(streamBuffer, streamBufferPos + bytesWritten, musicCRC);\n bytesWritten += 2;\n for (var i = 0; i < bytesWritten; i++) {\n crc = crcUpdateLookup(streamBuffer[streamBufferPos + i], crc);\n }\n createShort(streamBuffer, streamBufferPos + bytesWritten, crc);\n bytesWritten += 2;\n return bytesWritten;\n }\n function skipId3v2(fpStream) {\n fpStream.seek(0);\n var id3v2Header = new_byte$1(10);\n fpStream.readFully(id3v2Header);\n var id3v2TagSize;\n if (!new String(id3v2Header, \"ISO-8859-1\").startsWith(\"ID3\")) {\n id3v2TagSize = ((id3v2Header[6] & 127) << 21 | (id3v2Header[7] & 127) << 14 | (id3v2Header[8] & 127) << 7 | id3v2Header[9] & 127) + id3v2Header.length;\n } else {\n id3v2TagSize = 0;\n }\n return id3v2TagSize;\n }\n this.getLameTagFrame = function(gfp, buffer) {\n var gfc = gfp.internal_flags;\n if (!gfp.bWriteVbrTag) {\n return 0;\n }\n if (gfc.Class_ID != Lame.LAME_ID) {\n return 0;\n }\n if (gfc.VBR_seek_table.pos <= 0) {\n return 0;\n }\n if (buffer.length < gfc.VBR_seek_table.TotalFrameSize) {\n return gfc.VBR_seek_table.TotalFrameSize;\n }\n Arrays.fill(buffer, 0, gfc.VBR_seek_table.TotalFrameSize, 0);\n setLameTagFrameHeader(gfp, buffer);\n var toc = new_byte$1(NUMTOCENTRIES);\n if (gfp.free_format) {\n for (var i = 1; i < NUMTOCENTRIES; ++i)\n toc[i] = 255 & 255 * i / 100;\n } else {\n xingSeekTable(gfc.VBR_seek_table, toc);\n }\n var streamIndex = gfc.sideinfo_len;\n if (gfp.error_protection)\n streamIndex -= 2;\n if (gfp.VBR == VbrMode.vbr_off) {\n buffer[streamIndex++] = 255 & VBRTag1.charAt(0);\n buffer[streamIndex++] = 255 & VBRTag1.charAt(1);\n buffer[streamIndex++] = 255 & VBRTag1.charAt(2);\n buffer[streamIndex++] = 255 & VBRTag1.charAt(3);\n } else {\n buffer[streamIndex++] = 255 & VBRTag0.charAt(0);\n buffer[streamIndex++] = 255 & VBRTag0.charAt(1);\n buffer[streamIndex++] = 255 & VBRTag0.charAt(2);\n buffer[streamIndex++] = 255 & VBRTag0.charAt(3);\n }\n createInteger(\n buffer,\n streamIndex,\n FRAMES_FLAG + BYTES_FLAG + TOC_FLAG + VBR_SCALE_FLAG\n );\n streamIndex += 4;\n createInteger(buffer, streamIndex, gfc.VBR_seek_table.nVbrNumFrames);\n streamIndex += 4;\n var streamSize = gfc.VBR_seek_table.nBytesWritten + gfc.VBR_seek_table.TotalFrameSize;\n createInteger(buffer, streamIndex, 0 | streamSize);\n streamIndex += 4;\n System.arraycopy(toc, 0, buffer, streamIndex, toc.length);\n streamIndex += toc.length;\n if (gfp.error_protection) {\n bs.CRC_writeheader(gfc, buffer);\n }\n var crc = 0;\n for (var i = 0; i < streamIndex; i++)\n crc = crcUpdateLookup(buffer[i], crc);\n streamIndex += putLameVBR(gfp, streamSize, buffer, streamIndex, crc);\n return gfc.VBR_seek_table.TotalFrameSize;\n };\n this.putVbrTag = function(gfp, stream) {\n var gfc = gfp.internal_flags;\n if (gfc.VBR_seek_table.pos <= 0)\n return -1;\n stream.seek(stream.length());\n if (stream.length() == 0)\n return -1;\n var id3v2TagSize = skipId3v2(stream);\n stream.seek(id3v2TagSize);\n var buffer = new_byte$1(MAXFRAMESIZE);\n var bytes = getLameTagFrame(gfp, buffer);\n if (bytes > buffer.length) {\n return -1;\n }\n if (bytes < 1) {\n return 0;\n }\n stream.write(buffer, 0, bytes);\n return 0;\n };\n}\nvar new_byte = common.new_byte;\nvar assert = common.assert;\nfunction GetAudio() {\n this.setModules = function(parse2, mpg2) {\n };\n}\nfunction Parse() {\n this.setModules = function(ver2, id32, pre2) {\n };\n}\nfunction MPGLib() {\n}\nfunction ID3Tag() {\n this.setModules = function(_bits, _ver) {\n };\n}\nfunction Mp3Encoder$1(channels, samplerate, kbps) {\n if (arguments.length != 3) {\n console.error(\"WARN: Mp3Encoder(channels, samplerate, kbps) not specified\");\n channels = 1;\n samplerate = 44100;\n kbps = 128;\n }\n var lame = new Lame$1();\n var gaud = new GetAudio();\n var ga = new GainAnalysis$1();\n var bs = new BitStream$1();\n var p2 = new Presets();\n var qupvt = new QuantizePVT();\n var qu = new Quantize();\n var vbr = new VBRTag();\n var ver = new Version();\n var id3 = new ID3Tag();\n var rv = new Reservoir();\n var tak = new Takehiro();\n var parse2 = new Parse();\n var mpg = new MPGLib();\n lame.setModules(ga, bs, p2, qupvt, qu, vbr, ver, id3, mpg);\n bs.setModules(ga, mpg, ver, vbr);\n id3.setModules(bs, ver);\n p2.setModules(lame);\n qu.setModules(bs, rv, qupvt, tak);\n qupvt.setModules(tak, rv, lame.enc.psy);\n rv.setModules(bs);\n tak.setModules(qupvt);\n vbr.setModules(lame, bs, ver);\n gaud.setModules(parse2, mpg);\n parse2.setModules(ver, id3, p2);\n var gfp = lame.lame_init();\n gfp.num_channels = channels;\n gfp.in_samplerate = samplerate;\n gfp.brate = kbps;\n gfp.mode = MPEGMode.STEREO;\n gfp.quality = 3;\n gfp.bWriteVbrTag = false;\n gfp.disable_reservoir = true;\n gfp.write_id3tag_automatic = false;\n lame.lame_init_params(gfp);\n var maxSamples = 1152;\n var mp3buf_size = 0 | 1.25 * maxSamples + 7200;\n var mp3buf = new_byte(mp3buf_size);\n this.encodeBuffer = function(left, right) {\n if (channels == 1) {\n right = left;\n }\n assert(left.length == right.length);\n if (left.length > maxSamples) {\n maxSamples = left.length;\n mp3buf_size = 0 | 1.25 * maxSamples + 7200;\n mp3buf = new_byte(mp3buf_size);\n }\n var _sz = lame.lame_encode_buffer(\n gfp,\n left,\n right,\n left.length,\n mp3buf,\n 0,\n mp3buf_size\n );\n return new Int8Array(mp3buf.subarray(0, _sz));\n };\n this.flush = function() {\n var _sz = lame.lame_encode_flush(gfp, mp3buf, 0, mp3buf_size);\n return new Int8Array(mp3buf.subarray(0, _sz));\n };\n}\nfunction fourccToInt(fourcc) {\n return fourcc.charCodeAt(0) << 24 | fourcc.charCodeAt(1) << 16 | fourcc.charCodeAt(2) << 8 | fourcc.charCodeAt(3);\n}\nfourccToInt(\"RIFF\");\nfourccToInt(\"WAVE\");\nfourccToInt(\"fmt \");\nfourccToInt(\"data\");\nclass Mp3Encoder {\n constructor(config) {\n this.bitRate = config.bitRate;\n this.sampleRate = config.sampleRate;\n this.dataBuffer = [];\n this.encoder = new Mp3Encoder$1(1, this.sampleRate, this.bitRate);\n }\n encode(arrayBuffer) {\n const maxSamples = 1152;\n const samples = this._convertBuffer(arrayBuffer);\n let remaining = samples.length;\n for (let i = 0; remaining >= 0; i += maxSamples) {\n const left = samples.subarray(i, i + maxSamples);\n const buffer = this.encoder.encodeBuffer(left);\n this.dataBuffer.push(new Int8Array(buffer));\n remaining -= maxSamples;\n }\n }\n finish() {\n this.dataBuffer.push(this.encoder.flush());\n const blob = new Blob(this.dataBuffer, { type: \"audio/mp3\" });\n this.dataBuffer = [];\n return {\n id: Date.now(),\n blob,\n url: URL.createObjectURL(blob)\n };\n }\n _floatTo16BitPCM(input, output) {\n for (let i = 0; i < input.length; i++) {\n const s = Math.max(-1, Math.min(1, input[i]));\n output[i] = s < 0 ? s * 32768 : s * 32767;\n }\n }\n _convertBuffer(arrayBuffer) {\n const data = new Float32Array(arrayBuffer);\n const out = new Int16Array(arrayBuffer.length);\n this._floatTo16BitPCM(data, out);\n return out;\n }\n}\nclass Recorder {\n constructor(options = {}) {\n this.beforeRecording = options.beforeRecording;\n this.pauseRecording = options.pauseRecording;\n this.afterRecording = options.afterRecording;\n this.micFailed = options.micFailed;\n this.encoderOptions = {\n bitRate: options.bitRate,\n sampleRate: options.sampleRate\n };\n this.bufferSize = 4096;\n this.records = [];\n this.isPause = false;\n this.isRecording = false;\n this.duration = 0;\n this.volume = 0;\n this._duration = 0;\n }\n start() {\n const constraints = {\n video: false,\n audio: {\n channelCount: 1,\n echoCancellation: false\n }\n };\n this.beforeRecording && this.beforeRecording(\"start recording\");\n navigator.mediaDevices.getUserMedia(constraints).then(this._micCaptured.bind(this)).catch(this._micError.bind(this));\n this.isPause = false;\n this.isRecording = true;\n if (!this.lameEncoder) {\n this.lameEncoder = new Mp3Encoder(this.encoderOptions);\n }\n }\n stop() {\n this.stream.getTracks().forEach((track2) => track2.stop());\n this.input.disconnect();\n this.processor.disconnect();\n this.context.close();\n let record = null;\n record = this.lameEncoder.finish();\n record.duration = this.duration;\n this.records.push(record);\n this._duration = 0;\n this.duration = 0;\n this.isPause = false;\n this.isRecording = false;\n this.afterRecording && this.afterRecording(record);\n }\n pause() {\n this.stream.getTracks().forEach((track2) => track2.stop());\n this.input.disconnect();\n this.processor.disconnect();\n this._duration = this.duration;\n this.isPause = true;\n this.pauseRecording && this.pauseRecording(\"pause recording\");\n }\n _micCaptured(stream) {\n this.context = new (window.AudioContext || window.webkitAudioContext)();\n this.duration = this._duration;\n this.input = this.context.createMediaStreamSource(stream);\n this.processor = this.context.createScriptProcessor(this.bufferSize, 1, 1);\n this.stream = stream;\n this.processor.onaudioprocess = (ev) => {\n const sample = ev.inputBuffer.getChannelData(0);\n let sum = 0;\n if (this.lameEncoder) {\n this.lameEncoder.encode(sample);\n }\n for (let i = 0; i < sample.length; ++i) {\n sum += sample[i] * sample[i];\n }\n this.duration = parseFloat(this._duration) + parseFloat(this.context.currentTime.toFixed(2));\n this.volume = Math.sqrt(sum / sample.length).toFixed(2);\n };\n this.input.connect(this.processor);\n this.processor.connect(this.context.destination);\n }\n _micError(error) {\n this.micFailed && this.micFailed(error);\n }\n}\nvar isChromium = window.chrome;\nvar winNav = window.navigator;\nvar vendorName = winNav.vendor;\nvar isOpera = typeof window.opr !== \"undefined\";\nvar isIEedge = winNav.userAgent.indexOf(\"Edg\") > -1;\nvar isIOSChrome = winNav.userAgent.match(\"CriOS\");\nfunction detectChrome() {\n if (isIOSChrome) {\n return true;\n } else if (isChromium !== null && typeof isChromium !== \"undefined\" && vendorName === \"Google Inc.\" && isOpera === false && isIEedge === false) {\n return true;\n } else {\n return false;\n }\n}\nfunction detectMobile() {\n var userAgent = getUserAgent();\n var userAgentPart = userAgent.substr(0, 4);\n return /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(\n userAgent\n ) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw(n|u)|c55\\/|capi|ccwa|cdm|cell|chtm|cldc|cmd|co(mp|nd)|craw|da(it|ll|ng)|dbte|dcs|devi|dica|dmob|do(c|p)o|ds(12|d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(|_)|g1 u|g560|gene|gf5|gmo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd(m|p|t)|hei|hi(pt|ta)|hp( i|ip)|hsc|ht(c(| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i(20|go|ma)|i230|iac( ||\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|[a-w])|libw|lynx|m1w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|mcr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|([1-8]|c))|phil|pire|pl(ay|uc)|pn2|po(ck|rt|se)|prox|psio|ptg|qaa|qc(07|12|21|32|60|[2-7]|i)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h|oo|p)|sdk\\/|se(c(|0|1)|47|mc|nd|ri)|sgh|shar|sie(|m)|sk0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h|v|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl|tdg|tel(i|m)|tim|tmo|to(pl|sh)|ts(70|m|m3|m5)|tx9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas|your|zeto|zte/i.test(\n userAgentPart\n );\n}\nfunction getUserAgent() {\n var userAgent = navigator.userAgent || navigator.vendor || window.opera || null;\n if (!userAgent)\n throw new Error(\"Failed to look for user agent information.\");\n return userAgent;\n}\nconst _sfc_main$a = {\n name: \"RoomFooter\",\n components: {\n SvgIcon,\n EmojiPickerContainer,\n RoomFiles,\n RoomMessageReply,\n RoomUsersTag,\n RoomEmojis,\n RoomTemplatesText\n },\n directives: {\n clickOutside: vClickOutside\n },\n props: {\n room: { type: Object, required: true },\n roomId: { type: [String, Number], required: true },\n roomMessage: { type: String, default: null },\n textFormatting: { type: Object, required: true },\n linkOptions: { type: Object, required: true },\n textMessages: { type: Object, required: true },\n showSendIcon: { type: Boolean, required: true },\n showFiles: { type: Boolean, required: true },\n showAudio: { type: Boolean, required: true },\n showEmojis: { type: Boolean, required: true },\n showFooter: { type: Boolean, required: true },\n acceptedFiles: { type: String, required: true },\n multipleFiles: { type: Boolean, default: true },\n captureFiles: { type: String, required: true },\n textareaActionEnabled: { type: Boolean, required: true },\n textareaAutoFocus: { type: Boolean, required: true },\n userTagsEnabled: { type: Boolean, required: true },\n emojisSuggestionEnabled: { type: Boolean, required: true },\n templatesText: { type: Array, default: null },\n audioBitRate: { type: Number, required: true },\n audioSampleRate: { type: Number, required: true },\n initReplyMessage: { type: Object, default: null },\n initEditMessage: { type: Object, default: null },\n droppedFiles: { type: Array, default: null },\n emojiDataSource: { type: String, default: void 0 }\n },\n emits: [\n \"edit-message\",\n \"send-message\",\n \"update-edited-message-id\",\n \"textarea-action-handler\",\n \"typing-message\"\n ],\n data() {\n return {\n message: \"\",\n editedMessage: {},\n messageReply: null,\n cursorRangePosition: null,\n files: [],\n fileDialog: false,\n selectUsersTagItem: null,\n selectEmojiItem: null,\n selectTemplatesTextItem: null,\n format: \"mp3\",\n activeUpOrDownEmojis: null,\n activeUpOrDownUsersTag: null,\n activeUpOrDownTemplatesText: null,\n emojisDB: new Database({ dataSource: this.emojiDataSource }),\n emojiOpened: false,\n keepKeyboardOpen: false,\n filteredEmojis: [],\n filteredUsersTag: [],\n selectedUsersTag: [],\n filteredTemplatesText: [],\n recorder: this.initRecorder(),\n isRecording: false\n };\n },\n computed: {\n isMessageEmpty() {\n return !this.files.length && !this.message.trim();\n },\n isFileLoading() {\n return this.files.some((e) => e.loading);\n },\n recordedTime() {\n return new Date(this.recorder.duration * 1e3).toISOString().substr(14, 5);\n },\n shadowFooter() {\n return !!this.filteredEmojis.length || !!this.filteredUsersTag.length || !!this.filteredTemplatesText.length || !!this.files.length || !!this.messageReply;\n }\n },\n watch: {\n roomId() {\n this.resetMessage(true, true);\n if (this.roomMessage) {\n this.message = this.roomMessage;\n setTimeout(() => this.onChangeInput());\n }\n },\n message(val) {\n this.getTextareaRef().value = val;\n },\n roomMessage: {\n immediate: true,\n handler(val) {\n if (val)\n this.message = this.roomMessage;\n }\n },\n editedMessage(val) {\n this.$emit(\"update-edited-message-id\", val._id);\n },\n initReplyMessage(val) {\n if (val) {\n this.replyMessage(val);\n }\n },\n initEditMessage(val) {\n if (val) {\n this.editMessage(val);\n }\n },\n droppedFiles(val) {\n if (val) {\n this.onFileChange(val);\n }\n }\n },\n mounted() {\n const isMobile = detectMobile();\n let isComposed = true;\n this.getTextareaRef().addEventListener(\"keyup\", (e) => {\n if (e.key === \"Enter\" && !e.shiftKey && !this.fileDialog) {\n if (isMobile) {\n this.message = this.message + \"\\n\";\n setTimeout(() => this.onChangeInput());\n } else if (isComposed && !this.filteredEmojis.length && !this.filteredUsersTag.length && !this.filteredTemplatesText.length) {\n this.sendMessage();\n }\n }\n isComposed = !e.isComposing;\n setTimeout(() => {\n this.updateFooterLists();\n }, 60);\n });\n this.getTextareaRef().addEventListener(\"click\", () => {\n if (isMobile)\n this.keepKeyboardOpen = true;\n this.updateFooterLists();\n });\n this.getTextareaRef().addEventListener(\"blur\", () => {\n setTimeout(() => {\n this.resetFooterList();\n }, 100);\n if (isMobile)\n setTimeout(() => this.keepKeyboardOpen = false);\n });\n },\n beforeUnmount() {\n this.stopRecorder();\n },\n methods: {\n getTextareaRef() {\n return this.$refs.roomTextarea;\n },\n focusTextarea(disableMobileFocus) {\n if (detectMobile() && disableMobileFocus)\n return;\n if (!this.getTextareaRef())\n return;\n this.getTextareaRef().focus();\n if (this.cursorRangePosition) {\n setTimeout(() => {\n const offset = detectChrome() ? 0 : 1;\n this.getTextareaRef().setSelectionRange(\n this.cursorRangePosition + offset,\n this.cursorRangePosition + offset\n );\n this.cursorRangePosition = null;\n });\n }\n },\n onChangeInput() {\n var _a, _b, _c;\n if (((_a = this.getTextareaRef()) == null ? void 0 : _a.value) || ((_b = this.getTextareaRef()) == null ? void 0 : _b.value) === \"\") {\n this.message = (_c = this.getTextareaRef()) == null ? void 0 : _c.value;\n }\n this.keepKeyboardOpen = true;\n this.resizeTextarea();\n this.$emit(\"typing-message\", this.message);\n },\n resizeTextarea() {\n const el = this.getTextareaRef();\n if (!el)\n return;\n const padding = window.getComputedStyle(el, null).getPropertyValue(\"padding-top\").replace(\"px\", \"\");\n el.style.height = 0;\n el.style.height = el.scrollHeight - padding * 2 + \"px\";\n },\n escapeTextarea() {\n if (this.filteredEmojis.length)\n this.filteredEmojis = [];\n else if (this.filteredUsersTag.length)\n this.filteredUsersTag = [];\n else if (this.filteredTemplatesText.length) {\n this.filteredTemplatesText = [];\n } else\n this.resetMessage();\n },\n onPasteImage(pasteEvent) {\n var _a;\n const items = (_a = pasteEvent.clipboardData) == null ? void 0 : _a.items;\n if (items) {\n Array.from(items).forEach((item) => {\n if (item.type.includes(\"image\")) {\n const blob = item.getAsFile();\n this.onFileChange([blob]);\n }\n });\n }\n },\n updateActiveUpOrDown(event, direction) {\n if (this.filteredEmojis.length) {\n this.activeUpOrDownEmojis = direction;\n event.preventDefault();\n } else if (this.filteredUsersTag.length) {\n this.activeUpOrDownUsersTag = direction;\n event.preventDefault();\n } else if (this.filteredTemplatesText.length) {\n this.activeUpOrDownTemplatesText = direction;\n event.preventDefault();\n }\n },\n selectItem() {\n if (this.filteredEmojis.length) {\n this.selectEmojiItem = true;\n } else if (this.filteredUsersTag.length) {\n this.selectUsersTagItem = true;\n } else if (this.filteredTemplatesText.length) {\n this.selectTemplatesTextItem = true;\n }\n },\n selectEmoji(emoji) {\n this.selectEmojiItem = false;\n if (!emoji)\n return;\n const { position, endPosition } = this.getCharPosition(\":\");\n this.message = this.message.substr(0, position - 1) + emoji + this.message.substr(endPosition, this.message.length - 1);\n this.cursorRangePosition = position;\n this.focusTextarea();\n },\n selectTemplateText(template) {\n this.selectTemplatesTextItem = false;\n if (!template)\n return;\n const { position, endPosition } = this.getCharPosition(\"/\");\n const space = this.message.substr(endPosition, endPosition).length ? \"\" : \" \";\n this.message = this.message.substr(0, position - 1) + template.text + space + this.message.substr(endPosition, this.message.length - 1);\n this.cursorRangePosition = position + template.text.length + space.length + 1;\n this.focusTextarea();\n },\n addEmoji(emoji) {\n this.message += emoji.unicode;\n this.focusTextarea(true);\n },\n launchFilePicker() {\n this.$refs.file.value = \"\";\n this.$refs.file.click();\n },\n async onFileChange(files) {\n this.fileDialog = true;\n this.focusTextarea();\n Array.from(files).forEach(async (file) => {\n const fileURL = URL.createObjectURL(file);\n const typeIndex = file.name.lastIndexOf(\".\");\n this.files.push({\n loading: true,\n name: file.name.substring(0, typeIndex),\n size: file.size,\n type: file.type,\n extension: file.name.substring(typeIndex + 1),\n localUrl: fileURL\n });\n const blobFile = await fetch(fileURL).then((res) => res.blob());\n let loadedFile = this.files.find((file2) => file2.localUrl === fileURL);\n if (loadedFile) {\n loadedFile.blob = blobFile;\n loadedFile.loading = false;\n delete loadedFile.loading;\n }\n });\n setTimeout(() => this.fileDialog = false, 500);\n },\n removeFile(index) {\n this.files.splice(index, 1);\n this.focusTextarea();\n },\n toggleRecorder(recording) {\n this.isRecording = recording;\n if (!this.recorder.isRecording) {\n setTimeout(() => this.recorder.start(), 200);\n } else {\n try {\n this.recorder.stop();\n const record = this.recorder.records[0];\n this.files.push({\n blob: record.blob,\n name: `audio.${this.format}`,\n size: record.blob.size,\n duration: record.duration,\n type: record.blob.type,\n audio: true,\n localUrl: URL.createObjectURL(record.blob)\n });\n this.recorder = this.initRecorder();\n this.sendMessage();\n } catch {\n setTimeout(() => this.stopRecorder(), 100);\n }\n }\n },\n stopRecorder() {\n if (this.recorder.isRecording) {\n try {\n this.recorder.stop();\n this.recorder = this.initRecorder();\n } catch {\n setTimeout(() => this.stopRecorder(), 100);\n }\n }\n },\n textareaActionHandler() {\n this.$emit(\"textarea-action-handler\", this.message);\n },\n sendMessage() {\n var _a;\n let message = this.message.trim();\n if (!this.files.length && !message)\n return;\n if (this.isFileLoading)\n return;\n this.selectedUsersTag.forEach((user) => {\n message = message.replace(\n `@${user.username}`,\n `<usertag>${user._id}</usertag>`\n );\n });\n const files = this.files.length ? this.files : null;\n if (this.editedMessage._id) {\n if (this.editedMessage.content !== message || ((_a = this.editedMessage.files) == null ? void 0 : _a.length) || this.files.length) {\n this.$emit(\"edit-message\", {\n messageId: this.editedMessage._id,\n newContent: message,\n files,\n replyMessage: this.messageReply,\n usersTag: this.selectedUsersTag\n });\n }\n } else {\n this.$emit(\"send-message\", {\n content: message,\n files,\n replyMessage: this.messageReply,\n usersTag: this.selectedUsersTag\n });\n }\n this.resetMessage(true);\n },\n editMessage(message) {\n this.resetMessage();\n this.editedMessage = { ...message };\n let messageContent = message.content;\n const initialContent = messageContent;\n const firstTag = \"<usertag>\";\n const secondTag = \"</usertag>\";\n const usertags = [\n ...messageContent.matchAll(new RegExp(firstTag, \"gi\"))\n ].map((a) => a.index);\n usertags.forEach((index) => {\n const userId = initialContent.substring(\n index + firstTag.length,\n initialContent.indexOf(secondTag, index)\n );\n const user = this.room.users.find((user2) => user2._id === userId);\n messageContent = messageContent.replace(\n `${firstTag}${userId}${secondTag}`,\n `@${(user == null ? void 0 : user.username) || \"unknown\"}`\n );\n this.selectUserTag(user, true);\n });\n this.message = messageContent;\n if (message.files) {\n this.files = [...message.files];\n }\n setTimeout(() => this.resizeTextarea());\n },\n replyMessage(message) {\n this.editedMessage = {};\n this.messageReply = message;\n this.focusTextarea();\n },\n updateFooterLists() {\n this.updateFooterList(\"@\");\n this.updateFooterList(\":\");\n this.updateFooterList(\"/\");\n },\n updateFooterList(tagChar) {\n if (!this.getTextareaRef())\n return;\n if (tagChar === \":\" && !this.emojisSuggestionEnabled) {\n return;\n }\n if (tagChar === \"@\" && (!this.userTagsEnabled || !this.room.users)) {\n return;\n }\n if (tagChar === \"/\" && !this.templatesText) {\n return;\n }\n const textareaCursorPosition = this.getTextareaRef().selectionStart;\n let position = textareaCursorPosition;\n while (position > 0 && this.message.charAt(position - 1) !== tagChar && (this.message.charAt(position - 1) !== \" \" || tagChar !== \":\")) {\n position--;\n }\n const beforeTag = this.message.charAt(position - 2);\n const notLetterNumber = !beforeTag.match(/^[0-9a-zA-Z]+$/);\n if (this.message.charAt(position - 1) === tagChar && (!beforeTag || beforeTag === \" \" || notLetterNumber)) {\n const query = this.message.substring(position, textareaCursorPosition);\n if (tagChar === \":\") {\n this.updateEmojis(query);\n } else if (tagChar === \"@\") {\n this.updateShowUsersTag(query);\n } else if (tagChar === \"/\") {\n this.updateShowTemplatesText(query);\n }\n } else {\n this.resetFooterList(tagChar);\n }\n },\n updateShowUsersTag(query) {\n this.filteredUsersTag = filteredItems(\n this.room.users,\n \"username\",\n query,\n true\n ).filter((user) => user._id !== this.currentUserId);\n },\n selectUserTag(user, editMode = false) {\n this.selectUsersTagItem = false;\n if (!user)\n return;\n const { position, endPosition } = this.getCharPosition(\"@\");\n const space = this.message.substr(endPosition, endPosition).length ? \"\" : \" \";\n this.message = this.message.substr(0, position) + user.username + space + this.message.substr(endPosition, this.message.length - 1);\n this.selectedUsersTag = [...this.selectedUsersTag, { ...user }];\n if (!editMode) {\n this.cursorRangePosition = position + user.username.length + space.length + 1;\n }\n this.focusTextarea();\n },\n updateShowTemplatesText(query) {\n this.filteredTemplatesText = filteredItems(\n this.templatesText,\n \"tag\",\n query,\n true\n );\n },\n getCharPosition(tagChar) {\n const cursorPosition = this.getTextareaRef().selectionStart;\n let position = cursorPosition;\n while (position > 0 && this.message.charAt(position - 1) !== tagChar) {\n position--;\n }\n const endPosition = this.getTextareaRef().selectionEnd;\n return { position, endPosition };\n },\n async updateEmojis(query) {\n if (!query)\n return;\n const emojis = await this.emojisDB.getEmojiBySearchQuery(query);\n this.filteredEmojis = emojis.map((emoji) => emoji.unicode);\n },\n resetFooterList(tagChar = null) {\n if (tagChar === \":\") {\n this.filteredEmojis = [];\n } else if (tagChar === \"@\") {\n this.filteredUsersTag = [];\n } else if (tagChar === \"/\") {\n this.filteredTemplatesText = [];\n } else {\n this.filteredEmojis = [];\n this.filteredUsersTag = [];\n this.filteredTemplatesText = [];\n }\n },\n resetMessage(disableMobileFocus = false, initRoom = false) {\n if (!initRoom) {\n this.$emit(\"typing-message\", null);\n }\n this.selectedUsersTag = [];\n this.resetFooterList();\n this.resetTextareaSize();\n this.message = \"\";\n this.editedMessage = {};\n this.messageReply = null;\n this.files = [];\n this.emojiOpened = false;\n this.preventKeyboardFromClosing();\n if (this.textareaAutoFocus || !initRoom) {\n setTimeout(() => this.focusTextarea(disableMobileFocus));\n }\n },\n resetTextareaSize() {\n if (this.getTextareaRef()) {\n this.getTextareaRef().style.height = \"20px\";\n }\n },\n preventKeyboardFromClosing() {\n if (this.keepKeyboardOpen)\n this.getTextareaRef().focus();\n },\n initRecorder() {\n this.isRecording = false;\n return new Recorder({\n bitRate: Number(this.audioBitRate),\n sampleRate: Number(this.audioSampleRate),\n beforeRecording: null,\n afterRecording: null,\n pauseRecording: null,\n micFailed: this.micFailed\n });\n },\n micFailed() {\n this.isRecording = false;\n this.recorder = this.initRecorder();\n }\n }\n};\nconst _hoisted_1$a = {\n key: 0,\n class: \"vac-icon-textarea-left\"\n};\nconst _hoisted_2$8 = /* @__PURE__ */ createBaseVNode(\"div\", { class: \"vac-dot-audio-record\" }, null, -1);\nconst _hoisted_3$8 = { class: \"vac-dot-audio-record-time\" };\nconst _hoisted_4$8 = [\"placeholder\"];\nconst _hoisted_5$6 = { class: \"vac-icon-textarea\" };\nconst _hoisted_6$3 = { key: 1 };\nconst _hoisted_7$3 = [\"multiple\", \"accept\", \"capture\"];\nfunction _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_room_emojis = resolveComponent(\"room-emojis\");\n const _component_room_users_tag = resolveComponent(\"room-users-tag\");\n const _component_room_templates_text = resolveComponent(\"room-templates-text\");\n const _component_room_message_reply = resolveComponent(\"room-message-reply\");\n const _component_room_files = resolveComponent(\"room-files\");\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n const _component_emoji_picker_container = resolveComponent(\"emoji-picker-container\");\n const _directive_click_outside = resolveDirective(\"click-outside\");\n return withDirectives((openBlock(), createElementBlock(\"div\", {\n id: \"room-footer\",\n class: normalizeClass([\"vac-room-footer\", {\n \"vac-app-box-shadow\": $options.shadowFooter\n }])\n }, [\n createVNode(_component_room_emojis, {\n \"filtered-emojis\": $data.filteredEmojis,\n \"select-item\": $data.selectEmojiItem,\n \"active-up-or-down\": $data.activeUpOrDownEmojis,\n onSelectEmoji: _cache[0] || (_cache[0] = ($event) => $options.selectEmoji($event)),\n onActivateItem: _cache[1] || (_cache[1] = ($event) => $data.activeUpOrDownEmojis = 0)\n }, null, 8, [\"filtered-emojis\", \"select-item\", \"active-up-or-down\"]),\n createVNode(_component_room_users_tag, {\n \"filtered-users-tag\": $data.filteredUsersTag,\n \"select-item\": $data.selectUsersTagItem,\n \"active-up-or-down\": $data.activeUpOrDownUsersTag,\n onSelectUserTag: _cache[2] || (_cache[2] = ($event) => $options.selectUserTag($event)),\n onActivateItem: _cache[3] || (_cache[3] = ($event) => $data.activeUpOrDownUsersTag = 0)\n }, null, 8, [\"filtered-users-tag\", \"select-item\", \"active-up-or-down\"]),\n createVNode(_component_room_templates_text, {\n \"filtered-templates-text\": $data.filteredTemplatesText,\n \"select-item\": $data.selectTemplatesTextItem,\n \"active-up-or-down\": $data.activeUpOrDownTemplatesText,\n onSelectTemplateText: _cache[4] || (_cache[4] = ($event) => $options.selectTemplateText($event)),\n onActivateItem: _cache[5] || (_cache[5] = ($event) => $data.activeUpOrDownTemplatesText = 0)\n }, null, 8, [\"filtered-templates-text\", \"select-item\", \"active-up-or-down\"]),\n createVNode(_component_room_message_reply, {\n room: $props.room,\n \"message-reply\": $data.messageReply,\n \"text-formatting\": $props.textFormatting,\n \"link-options\": $props.linkOptions,\n onResetMessage: $options.resetMessage\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (i, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"room\", \"message-reply\", \"text-formatting\", \"link-options\", \"onResetMessage\"]),\n createVNode(_component_room_files, {\n files: $data.files,\n onRemoveFile: $options.removeFile,\n onResetMessage: $options.resetMessage\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (i, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"files\", \"onRemoveFile\", \"onResetMessage\"]),\n createBaseVNode(\"div\", {\n class: normalizeClass([\"vac-box-footer\", { \"vac-box-footer-border\": !$data.files.length }])\n }, [\n $props.showAudio && !$data.files.length ? (openBlock(), createElementBlock(\"div\", _hoisted_1$a, [\n $data.isRecording ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n createBaseVNode(\"div\", {\n class: \"vac-svg-button vac-icon-audio-stop\",\n onClick: _cache[6] || (_cache[6] = (...args) => $options.stopRecorder && $options.stopRecorder(...args))\n }, [\n renderSlot(_ctx.$slots, \"audio-stop-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"close-outline\" })\n ])\n ]),\n _hoisted_2$8,\n createBaseVNode(\"div\", _hoisted_3$8, toDisplayString($options.recordedTime), 1),\n createBaseVNode(\"div\", {\n class: \"vac-svg-button vac-icon-audio-confirm\",\n onClick: _cache[7] || (_cache[7] = ($event) => $options.toggleRecorder(false))\n }, [\n renderSlot(_ctx.$slots, \"audio-check-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"checkmark\" })\n ])\n ])\n ], 64)) : (openBlock(), createElementBlock(\"div\", {\n key: 1,\n class: \"vac-svg-button\",\n onClick: _cache[8] || (_cache[8] = ($event) => $options.toggleRecorder(true))\n }, [\n renderSlot(_ctx.$slots, \"microphone-icon\", {}, () => [\n createVNode(_component_svg_icon, {\n name: \"microphone\",\n class: \"vac-icon-microphone\"\n })\n ])\n ]))\n ])) : createCommentVNode(\"\", true),\n createBaseVNode(\"textarea\", {\n id: \"roomTextarea\",\n ref: \"roomTextarea\",\n placeholder: $props.textMessages.TYPE_MESSAGE,\n class: normalizeClass([\"vac-textarea\", {\n \"vac-textarea-outline\": $data.editedMessage._id\n }]),\n style: {\n \"min-height\": `20px`,\n \"padding-left\": `12px`\n },\n onInput: _cache[9] || (_cache[9] = (...args) => $options.onChangeInput && $options.onChangeInput(...args)),\n onKeydown: [\n _cache[10] || (_cache[10] = withKeys((...args) => $options.escapeTextarea && $options.escapeTextarea(...args), [\"esc\"])),\n _cache[11] || (_cache[11] = withKeys(withModifiers((...args) => $options.selectItem && $options.selectItem(...args), [\"exact\", \"prevent\"]), [\"enter\"])),\n _cache[13] || (_cache[13] = withKeys(withModifiers(() => {\n }, [\"exact\", \"prevent\"]), [\"tab\"])),\n _cache[14] || (_cache[14] = withKeys((...args) => $options.selectItem && $options.selectItem(...args), [\"tab\"])),\n _cache[15] || (_cache[15] = withKeys(($event) => $options.updateActiveUpOrDown($event, -1), [\"up\"])),\n _cache[16] || (_cache[16] = withKeys(($event) => $options.updateActiveUpOrDown($event, 1), [\"down\"]))\n ],\n onPaste: _cache[12] || (_cache[12] = (...args) => $options.onPasteImage && $options.onPasteImage(...args))\n }, null, 42, _hoisted_4$8),\n createBaseVNode(\"div\", _hoisted_5$6, [\n $data.editedMessage._id ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: \"vac-svg-button\",\n onClick: _cache[17] || (_cache[17] = (...args) => $options.resetMessage && $options.resetMessage(...args))\n }, [\n renderSlot(_ctx.$slots, \"edit-close-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"close-outline\" })\n ])\n ])) : createCommentVNode(\"\", true),\n $props.showEmojis ? withDirectives((openBlock(), createElementBlock(\"div\", _hoisted_6$3, [\n renderSlot(_ctx.$slots, \"emoji-picker\", mergeProps({ emojiOpened: $data.emojiOpened }, { addEmoji: $options.addEmoji }), () => [\n createVNode(_component_emoji_picker_container, {\n \"emoji-opened\": $data.emojiOpened,\n \"position-top\": true,\n \"emoji-data-source\": $props.emojiDataSource,\n onAddEmoji: $options.addEmoji,\n onOpenEmoji: _cache[18] || (_cache[18] = ($event) => $data.emojiOpened = $event)\n }, {\n \"emoji-picker-icon\": withCtx(() => [\n renderSlot(_ctx.$slots, \"emoji-picker-icon\")\n ]),\n _: 3\n }, 8, [\"emoji-opened\", \"emoji-data-source\", \"onAddEmoji\"])\n ])\n ])), [\n [_directive_click_outside, () => $data.emojiOpened = false]\n ]) : createCommentVNode(\"\", true),\n $props.showFiles ? (openBlock(), createElementBlock(\"div\", {\n key: 2,\n class: \"vac-svg-button\",\n onClick: _cache[19] || (_cache[19] = (...args) => $options.launchFilePicker && $options.launchFilePicker(...args))\n }, [\n renderSlot(_ctx.$slots, \"paperclip-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"paperclip\" })\n ])\n ])) : createCommentVNode(\"\", true),\n $props.textareaActionEnabled ? (openBlock(), createElementBlock(\"div\", {\n key: 3,\n class: \"vac-svg-button\",\n onClick: _cache[20] || (_cache[20] = (...args) => $options.textareaActionHandler && $options.textareaActionHandler(...args))\n }, [\n renderSlot(_ctx.$slots, \"custom-action-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"deleted\" })\n ])\n ])) : createCommentVNode(\"\", true),\n $props.showFiles ? (openBlock(), createElementBlock(\"input\", {\n key: 4,\n ref: \"file\",\n type: \"file\",\n multiple: $props.multipleFiles ? true : null,\n accept: $props.acceptedFiles,\n capture: $props.captureFiles,\n style: { \"display\": \"none\" },\n onChange: _cache[21] || (_cache[21] = ($event) => $options.onFileChange($event.target.files))\n }, null, 40, _hoisted_7$3)) : createCommentVNode(\"\", true),\n $props.showSendIcon ? (openBlock(), createElementBlock(\"div\", {\n key: 5,\n class: normalizeClass([\"vac-svg-button\", { \"vac-send-disabled\": $options.isMessageEmpty }]),\n onClick: _cache[22] || (_cache[22] = (...args) => $options.sendMessage && $options.sendMessage(...args))\n }, [\n renderSlot(_ctx.$slots, \"send-icon\", {}, () => [\n createVNode(_component_svg_icon, {\n name: \"send\",\n param: $options.isMessageEmpty || $options.isFileLoading ? \"disabled\" : \"\"\n }, null, 8, [\"param\"])\n ])\n ], 2)) : createCommentVNode(\"\", true)\n ])\n ], 2)\n ], 2)), [\n [vShow, Object.keys($props.room).length && $props.showFooter]\n ]);\n}\nvar RoomFooter = /* @__PURE__ */ _export_sfc(_sfc_main$a, [[\"render\", _sfc_render$a]]);\nconst _sfc_main$9 = {\n name: \"MessageReply\",\n components: { AudioPlayer, SvgIcon, FormatMessage },\n props: {\n message: { type: Object, required: true },\n textFormatting: { type: Object, required: true },\n linkOptions: { type: Object, required: true },\n roomUsers: { type: Array, required: true }\n },\n computed: {\n replyUsername() {\n const { senderId } = this.message.replyMessage;\n const replyUser = this.roomUsers.find((user) => user._id === senderId);\n return replyUser ? replyUser.username : \"\";\n },\n firstFile() {\n var _a, _b;\n return ((_b = (_a = this.message.replyMessage) == null ? void 0 : _a.files) == null ? void 0 : _b.length) ? this.message.replyMessage.files[0] : {};\n },\n isAudio() {\n return isAudioFile(this.firstFile);\n },\n isImage() {\n return isImageFile(this.firstFile);\n },\n isVideo() {\n return isVideoFile(this.firstFile);\n },\n isOtherFile() {\n var _a;\n return ((_a = this.message.replyMessage.files) == null ? void 0 : _a.length) && !this.isAudio && !this.isVideo && !this.isImage;\n }\n }\n};\nconst _hoisted_1$9 = { class: \"vac-reply-message\" };\nconst _hoisted_2$7 = { class: \"vac-reply-username\" };\nconst _hoisted_3$7 = {\n key: 0,\n class: \"vac-image-reply-container\"\n};\nconst _hoisted_4$7 = {\n key: 1,\n class: \"vac-video-reply-container\"\n};\nconst _hoisted_5$5 = { controls: \"\" };\nconst _hoisted_6$2 = [\"src\"];\nconst _hoisted_7$2 = {\n key: 3,\n class: \"vac-file-container\"\n};\nconst _hoisted_8$1 = { class: \"vac-text-ellipsis\" };\nconst _hoisted_9$1 = {\n key: 0,\n class: \"vac-text-ellipsis vac-text-extension\"\n};\nconst _hoisted_10$1 = { class: \"vac-reply-content\" };\nfunction _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_audio_player = resolveComponent(\"audio-player\");\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n const _component_format_message = resolveComponent(\"format-message\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$9, [\n createBaseVNode(\"div\", _hoisted_2$7, toDisplayString($options.replyUsername), 1),\n $options.isImage ? (openBlock(), createElementBlock(\"div\", _hoisted_3$7, [\n createBaseVNode(\"div\", {\n class: \"vac-message-image vac-message-image-reply\",\n style: normalizeStyle({\n \"background-image\": `url('${$options.firstFile.url}')`\n })\n }, null, 4)\n ])) : $options.isVideo ? (openBlock(), createElementBlock(\"div\", _hoisted_4$7, [\n createBaseVNode(\"video\", _hoisted_5$5, [\n createBaseVNode(\"source\", {\n src: $options.firstFile.url\n }, null, 8, _hoisted_6$2)\n ])\n ])) : $options.isAudio ? (openBlock(), createBlock(_component_audio_player, {\n key: 2,\n src: $options.firstFile.url,\n \"message-selection-enabled\": false,\n onUpdateProgressTime: _cache[0] || (_cache[0] = ($event) => _ctx.progressTime = $event),\n onHoverAudioProgress: _cache[1] || (_cache[1] = ($event) => _ctx.hoverAudioProgress = $event)\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"src\"])) : $options.isOtherFile ? (openBlock(), createElementBlock(\"div\", _hoisted_7$2, [\n createBaseVNode(\"div\", null, [\n renderSlot(_ctx.$slots, \"file-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"file\" })\n ])\n ]),\n createBaseVNode(\"div\", _hoisted_8$1, toDisplayString($options.firstFile.name), 1),\n $options.firstFile.extension ? (openBlock(), createElementBlock(\"div\", _hoisted_9$1, toDisplayString($options.firstFile.extension), 1)) : createCommentVNode(\"\", true)\n ])) : createCommentVNode(\"\", true),\n createBaseVNode(\"div\", _hoisted_10$1, [\n createVNode(_component_format_message, {\n \"message-id\": $props.message.replyMessage._id,\n content: $props.message.replyMessage.content,\n users: $props.roomUsers,\n \"text-formatting\": $props.textFormatting,\n \"link-options\": $props.linkOptions,\n reply: true\n }, null, 8, [\"message-id\", \"content\", \"users\", \"text-formatting\", \"link-options\"])\n ])\n ]);\n}\nvar MessageReply = /* @__PURE__ */ _export_sfc(_sfc_main$9, [[\"render\", _sfc_render$9]]);\nconst _sfc_main$8 = {\n name: \"ProgressBar\",\n props: {\n progress: { type: Number, default: 0 }\n },\n data() {\n const radius = 35;\n const stroke = 4;\n const normalizedRadius = radius - stroke * 2;\n const circumference = normalizedRadius * 2 * Math.PI;\n return {\n radius,\n stroke,\n normalizedRadius,\n circumference\n };\n },\n computed: {\n strokeDashoffset() {\n return this.circumference - this.progress / 100 * this.circumference;\n }\n }\n};\nconst _hoisted_1$8 = {\n ref: \"progress\",\n class: \"vac-progress-wrapper\"\n};\nconst _hoisted_2$6 = [\"height\", \"width\"];\nconst _hoisted_3$6 = [\"stroke-dasharray\", \"stroke-width\", \"r\", \"cx\", \"cy\"];\nconst _hoisted_4$6 = { class: \"vac-progress-text\" };\nconst _hoisted_5$4 = /* @__PURE__ */ createBaseVNode(\"span\", { class: \"vac-progress-pourcent\" }, \"%\", -1);\nfunction _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createBlock(Transition, {\n name: \"vac-fade-spinner\",\n appear: \"\"\n }, {\n default: withCtx(() => [\n createBaseVNode(\"div\", _hoisted_1$8, [\n (openBlock(), createElementBlock(\"svg\", {\n height: $data.radius * 2,\n width: $data.radius * 2\n }, [\n createBaseVNode(\"circle\", {\n stroke: \"rgba(255, 255, 255, 0.7)\",\n \"stroke-dasharray\": $data.circumference + \" \" + $data.circumference,\n style: normalizeStyle({\n strokeDashoffset: $options.strokeDashoffset,\n strokeLinecap: \"round\"\n }),\n \"stroke-width\": $data.stroke,\n fill: \"transparent\",\n r: $data.normalizedRadius,\n cx: $data.radius,\n cy: $data.radius\n }, null, 12, _hoisted_3$6)\n ], 8, _hoisted_2$6)),\n createBaseVNode(\"div\", {\n class: \"vac-progress-content\",\n style: normalizeStyle({\n height: $data.radius * 2 - 19 + \"px\",\n width: $data.radius * 2 - 19 + \"px\"\n })\n }, [\n createBaseVNode(\"div\", _hoisted_4$6, [\n createTextVNode(toDisplayString($props.progress), 1),\n _hoisted_5$4\n ])\n ], 4)\n ], 512)\n ]),\n _: 1\n });\n}\nvar ProgressBar = /* @__PURE__ */ _export_sfc(_sfc_main$8, [[\"render\", _sfc_render$8]]);\nconst _sfc_main$7 = {\n name: \"MessageFile\",\n components: { SvgIcon, Loader, ProgressBar },\n props: {\n currentUserId: { type: [String, Number], required: true },\n message: { type: Object, required: true },\n file: { type: Object, required: true },\n index: { type: Number, required: true },\n messageSelectionEnabled: { type: Boolean, required: true }\n },\n emits: [\"open-file\"],\n data() {\n return {\n imageResponsive: \"\",\n imageLoading: false,\n imageHover: false\n };\n },\n computed: {\n isImageLoading() {\n return this.file.url.indexOf(\"blob:http\") !== -1 || this.imageLoading;\n },\n isImage() {\n return isImageFile(this.file);\n },\n isVideo() {\n return isVideoFile(this.file);\n }\n },\n watch: {\n file: {\n immediate: true,\n handler() {\n this.checkImgLoad();\n }\n }\n },\n mounted() {\n const ref = this.$refs[\"imageRef\" + this.index];\n if (ref) {\n this.imageResponsive = {\n maxHeight: ref.clientWidth - 18,\n loaderTop: ref.clientHeight / 2 - 9\n };\n }\n },\n methods: {\n checkImgLoad() {\n if (!isImageFile(this.file))\n return;\n this.imageLoading = true;\n const image = new Image();\n image.src = this.file.url;\n image.addEventListener(\"load\", () => this.imageLoading = false);\n },\n openFile(event, action) {\n if (!this.messageSelectionEnabled) {\n event.stopPropagation();\n this.$emit(\"open-file\", { file: this.file, action });\n }\n }\n }\n};\nconst _hoisted_1$7 = { class: \"vac-message-file-container\" };\nconst _hoisted_2$5 = {\n key: 0,\n class: \"vac-image-buttons\"\n};\nconst _hoisted_3$5 = { controls: \"\" };\nconst _hoisted_4$5 = [\"src\"];\nfunction _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_progress_bar = resolveComponent(\"progress-bar\");\n const _component_loader = resolveComponent(\"loader\");\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$7, [\n $options.isImage ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n ref: \"imageRef\" + $props.index,\n class: \"vac-message-image-container\",\n onMouseover: _cache[2] || (_cache[2] = ($event) => $data.imageHover = true),\n onMouseleave: _cache[3] || (_cache[3] = ($event) => $data.imageHover = false),\n onClick: _cache[4] || (_cache[4] = ($event) => $options.openFile($event, \"preview\"))\n }, [\n $props.file.progress >= 0 ? (openBlock(), createBlock(_component_progress_bar, {\n key: 0,\n progress: $props.file.progress,\n style: normalizeStyle({ top: `${$data.imageResponsive.loaderTop}px` })\n }, null, 8, [\"progress\", \"style\"])) : (openBlock(), createBlock(_component_loader, {\n key: 1,\n show: $options.isImageLoading,\n type: \"message-file\",\n \"message-id\": $props.message._id,\n style: normalizeStyle({ top: `${$data.imageResponsive.loaderTop}px` })\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"show\", \"message-id\", \"style\"])),\n createBaseVNode(\"div\", {\n class: normalizeClass([\"vac-message-image\", {\n \"vac-blur-loading\": $options.isImageLoading && $props.message.senderId === $props.currentUserId\n }]),\n style: normalizeStyle({\n \"background-image\": `url('${$options.isImageLoading ? $props.file.preview || $props.file.url : $props.file.url}')`,\n \"max-height\": `${$data.imageResponsive.maxHeight}px`\n })\n }, [\n createVNode(Transition, { name: \"vac-fade-image\" }, {\n default: withCtx(() => [\n !$props.messageSelectionEnabled && $data.imageHover && !$options.isImageLoading ? (openBlock(), createElementBlock(\"div\", _hoisted_2$5, [\n createBaseVNode(\"div\", {\n class: \"vac-svg-button vac-button-view\",\n onClick: _cache[0] || (_cache[0] = ($event) => $options.openFile($event, \"preview\"))\n }, [\n renderSlot(_ctx.$slots, \"eye-icon_\" + $props.message._id, {}, () => [\n createVNode(_component_svg_icon, { name: \"eye\" })\n ])\n ]),\n createBaseVNode(\"div\", {\n class: \"vac-svg-button vac-button-download\",\n onClick: _cache[1] || (_cache[1] = ($event) => $options.openFile($event, \"download\"))\n }, [\n renderSlot(_ctx.$slots, \"document-icon_\" + $props.message._id, {}, () => [\n createVNode(_component_svg_icon, { name: \"document\" })\n ])\n ])\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 3\n })\n ], 6)\n ], 544)) : $options.isVideo ? (openBlock(), createElementBlock(\"div\", {\n key: 1,\n class: \"vac-video-container\",\n onClick: _cache[5] || (_cache[5] = withModifiers(($event) => $options.openFile($event, \"preview\"), [\"prevent\"]))\n }, [\n $props.file.progress >= 0 ? (openBlock(), createBlock(_component_progress_bar, {\n key: 0,\n progress: $props.file.progress\n }, null, 8, [\"progress\"])) : createCommentVNode(\"\", true),\n createBaseVNode(\"video\", _hoisted_3$5, [\n createBaseVNode(\"source\", {\n src: $props.file.url\n }, null, 8, _hoisted_4$5)\n ])\n ])) : createCommentVNode(\"\", true)\n ]);\n}\nvar MessageFile = /* @__PURE__ */ _export_sfc(_sfc_main$7, [[\"render\", _sfc_render$7]]);\nconst _sfc_main$6 = {\n name: \"MessageFiles\",\n components: { SvgIcon, FormatMessage, ProgressBar, MessageFile },\n props: {\n currentUserId: { type: [String, Number], required: true },\n message: { type: Object, required: true },\n roomUsers: { type: Array, required: true },\n textFormatting: { type: Object, required: true },\n linkOptions: { type: Object, required: true },\n messageSelectionEnabled: { type: Boolean, required: true }\n },\n emits: [\"open-file\", \"open-user-tag\"],\n computed: {\n imageVideoFiles() {\n return this.message.files.filter((file) => isImageVideoFile(file));\n },\n otherFiles() {\n return this.message.files.filter((file) => !isImageVideoFile(file));\n }\n },\n methods: {\n openFile(event, file, action) {\n if (!this.messageSelectionEnabled) {\n event.stopPropagation();\n this.$emit(\"open-file\", { file, action });\n }\n }\n }\n};\nconst _hoisted_1$6 = { class: \"vac-message-files-container\" };\nconst _hoisted_2$4 = [\"onClick\"];\nconst _hoisted_3$4 = { class: \"vac-svg-button\" };\nconst _hoisted_4$4 = { class: \"vac-text-ellipsis\" };\nconst _hoisted_5$3 = {\n key: 0,\n class: \"vac-text-ellipsis vac-text-extension\"\n};\nfunction _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_message_file = resolveComponent(\"message-file\");\n const _component_progress_bar = resolveComponent(\"progress-bar\");\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n const _component_format_message = resolveComponent(\"format-message\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$6, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.imageVideoFiles, (file, i) => {\n return openBlock(), createElementBlock(\"div\", {\n key: i + \"iv\"\n }, [\n createVNode(_component_message_file, {\n file,\n \"current-user-id\": $props.currentUserId,\n message: $props.message,\n index: i,\n \"message-selection-enabled\": $props.messageSelectionEnabled,\n onOpenFile: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"open-file\", $event))\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"file\", \"current-user-id\", \"message\", \"index\", \"message-selection-enabled\"])\n ]);\n }), 128)),\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.otherFiles, (file, i) => {\n return openBlock(), createElementBlock(\"div\", {\n key: i + \"a\",\n class: \"vac-file-wrapper\"\n }, [\n file.progress >= 0 ? (openBlock(), createBlock(_component_progress_bar, {\n key: 0,\n progress: file.progress,\n style: { top: \"44px\" }\n }, null, 8, [\"progress\"])) : createCommentVNode(\"\", true),\n createBaseVNode(\"div\", {\n class: normalizeClass([\"vac-file-container\", { \"vac-file-container-progress\": file.progress >= 0 }]),\n onClick: ($event) => $options.openFile($event, file, \"download\")\n }, [\n createBaseVNode(\"div\", _hoisted_3$4, [\n renderSlot(_ctx.$slots, \"document-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"document\" })\n ])\n ]),\n createBaseVNode(\"div\", _hoisted_4$4, toDisplayString(file.name), 1),\n file.extension ? (openBlock(), createElementBlock(\"div\", _hoisted_5$3, toDisplayString(file.extension), 1)) : createCommentVNode(\"\", true)\n ], 10, _hoisted_2$4)\n ]);\n }), 128)),\n createVNode(_component_format_message, {\n \"message-id\": $props.message._id,\n content: $props.message.content,\n users: $props.roomUsers,\n \"text-formatting\": $props.textFormatting,\n \"link-options\": $props.linkOptions,\n onOpenUserTag: _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"open-user-tag\", $event))\n }, null, 8, [\"message-id\", \"content\", \"users\", \"text-formatting\", \"link-options\"])\n ]);\n}\nvar MessageFiles = /* @__PURE__ */ _export_sfc(_sfc_main$6, [[\"render\", _sfc_render$6]]);\nconst _sfc_main$5 = {\n name: \"MessageActions\",\n components: { SvgIcon, EmojiPickerContainer },\n directives: {\n clickOutside: vClickOutside\n },\n props: {\n currentUserId: { type: [String, Number], required: true },\n message: { type: Object, required: true },\n messageActions: { type: Array, required: true },\n showReactionEmojis: { type: Boolean, required: true },\n messageHover: { type: Boolean, required: true },\n hoverMessageId: { type: [String, Number], default: null },\n hoverAudioProgress: { type: Boolean, required: true },\n emojiDataSource: { type: String, default: void 0 }\n },\n emits: [\n \"update-emoji-opened\",\n \"update-options-opened\",\n \"update-message-hover\",\n \"message-action-handler\",\n \"send-message-reaction\"\n ],\n data() {\n return {\n menuOptionsTop: 0,\n optionsOpened: false,\n optionsClosing: false,\n emojiOpened: false\n };\n },\n computed: {\n isMessageActions() {\n return this.filteredMessageActions.length && this.messageHover && !this.message.deleted && !this.message.disableActions && !this.hoverAudioProgress;\n },\n isMessageReactions() {\n return this.showReactionEmojis && this.messageHover && !this.message.deleted && !this.message.disableReactions && !this.hoverAudioProgress;\n },\n filteredMessageActions() {\n return this.message.senderId === this.currentUserId ? this.messageActions : this.messageActions.filter((message) => !message.onlyMe);\n }\n },\n watch: {\n emojiOpened(val) {\n this.$emit(\"update-emoji-opened\", val);\n if (val)\n this.optionsOpened = false;\n },\n optionsOpened(val) {\n this.$emit(\"update-options-opened\", val);\n }\n },\n methods: {\n openOptions() {\n if (this.optionsClosing)\n return;\n this.optionsOpened = !this.optionsOpened;\n if (!this.optionsOpened)\n return;\n setTimeout(() => {\n const roomFooterRef = findParentBySelector(this.$el, \"#room-footer\");\n if (!roomFooterRef || !this.$refs.menuOptions || !this.$refs.actionIcon) {\n return;\n }\n const menuOptionsTop = this.$refs.menuOptions.getBoundingClientRect().height;\n const actionIconTop = this.$refs.actionIcon.getBoundingClientRect().top;\n const roomFooterTop = roomFooterRef.getBoundingClientRect().top;\n const optionsTopPosition = roomFooterTop - actionIconTop > menuOptionsTop + 50;\n if (optionsTopPosition)\n this.menuOptionsTop = 30;\n else\n this.menuOptionsTop = -menuOptionsTop;\n });\n },\n closeOptions() {\n this.optionsOpened = false;\n this.optionsClosing = true;\n this.updateMessageHover();\n setTimeout(() => this.optionsClosing = false, 100);\n },\n openEmoji() {\n this.emojiOpened = !this.emojiOpened;\n },\n closeEmoji() {\n this.emojiOpened = false;\n this.updateMessageHover();\n },\n updateMessageHover() {\n if (this.hoverMessageId !== this.message._id) {\n this.$emit(\"update-message-hover\", false);\n }\n },\n messageActionHandler(action) {\n this.closeOptions();\n this.$emit(\"message-action-handler\", action);\n },\n sendMessageReaction(emoji, reaction) {\n this.$emit(\"send-message-reaction\", { emoji, reaction });\n this.closeEmoji();\n }\n }\n};\nconst _hoisted_1$5 = { class: \"vac-message-actions-wrapper\" };\nconst _hoisted_2$3 = { key: \"3\" };\nconst _hoisted_3$3 = { class: \"vac-menu-list\" };\nconst _hoisted_4$3 = [\"onClick\"];\nfunction _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n const _component_emoji_picker_container = resolveComponent(\"emoji-picker-container\");\n const _directive_click_outside = resolveDirective(\"click-outside\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$5, [\n createBaseVNode(\"div\", {\n class: \"vac-options-container\",\n style: normalizeStyle({\n display: $props.hoverAudioProgress ? \"none\" : \"initial\",\n width: $options.filteredMessageActions.length && $props.showReactionEmojis ? \"70px\" : \"45px\"\n })\n }, [\n createVNode(TransitionGroup, {\n name: \"vac-slide-left\",\n tag: \"span\"\n }, {\n default: withCtx(() => [\n $options.isMessageActions || $options.isMessageReactions ? (openBlock(), createElementBlock(\"div\", {\n key: \"1\",\n class: normalizeClass([\"vac-blur-container\", {\n \"vac-options-me\": $props.message.senderId === $props.currentUserId\n }])\n }, null, 2)) : createCommentVNode(\"\", true),\n $options.isMessageActions ? (openBlock(), createElementBlock(\"div\", {\n ref: \"actionIcon\",\n key: \"2\",\n class: \"vac-svg-button vac-message-options\",\n onClick: _cache[0] || (_cache[0] = (...args) => $options.openOptions && $options.openOptions(...args))\n }, [\n renderSlot(_ctx.$slots, \"dropdown-icon_\" + $props.message._id, {}, () => [\n createVNode(_component_svg_icon, {\n name: \"dropdown\",\n param: \"message\"\n })\n ])\n ], 512)) : createCommentVNode(\"\", true),\n $options.isMessageReactions ? withDirectives((openBlock(), createElementBlock(\"div\", _hoisted_2$3, [\n renderSlot(_ctx.$slots, \"emoji-picker\", mergeProps({ emojiOpened: $data.emojiOpened }, { addEmoji: $options.sendMessageReaction }), () => [\n createVNode(_component_emoji_picker_container, {\n class: \"vac-message-emojis\",\n style: normalizeStyle({ right: $options.isMessageActions ? \"30px\" : \"5px\" }),\n \"emoji-opened\": $data.emojiOpened,\n \"emoji-reaction\": true,\n \"position-right\": $props.message.senderId === $props.currentUserId,\n \"message-id\": $props.message._id,\n \"emoji-data-source\": $props.emojiDataSource,\n onAddEmoji: $options.sendMessageReaction,\n onOpenEmoji: $options.openEmoji\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"style\", \"emoji-opened\", \"position-right\", \"message-id\", \"emoji-data-source\", \"onAddEmoji\", \"onOpenEmoji\"])\n ])\n ])), [\n [_directive_click_outside, $options.closeEmoji]\n ]) : createCommentVNode(\"\", true)\n ]),\n _: 3\n })\n ], 4),\n $options.filteredMessageActions.length ? (openBlock(), createBlock(Transition, {\n key: 0,\n name: $props.message.senderId === $props.currentUserId ? \"vac-slide-left\" : \"vac-slide-right\"\n }, {\n default: withCtx(() => [\n $data.optionsOpened ? withDirectives((openBlock(), createElementBlock(\"div\", {\n key: 0,\n ref: \"menuOptions\",\n class: normalizeClass([\"vac-menu-options\", {\n \"vac-menu-left\": $props.message.senderId !== $props.currentUserId\n }]),\n style: normalizeStyle({ top: `${$data.menuOptionsTop}px` })\n }, [\n createBaseVNode(\"div\", _hoisted_3$3, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.filteredMessageActions, (action) => {\n return openBlock(), createElementBlock(\"div\", {\n key: action.name\n }, [\n createBaseVNode(\"div\", {\n class: \"vac-menu-item\",\n onClick: ($event) => $options.messageActionHandler(action)\n }, toDisplayString(action.title), 9, _hoisted_4$3)\n ]);\n }), 128))\n ])\n ], 6)), [\n [_directive_click_outside, $options.closeOptions]\n ]) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"name\"])) : createCommentVNode(\"\", true)\n ]);\n}\nvar MessageActions = /* @__PURE__ */ _export_sfc(_sfc_main$5, [[\"render\", _sfc_render$5]]);\nconst _sfc_main$4 = {\n name: \"MessageReactions\",\n props: {\n currentUserId: { type: [String, Number], required: true },\n message: { type: Object, required: true }\n },\n emits: [\"send-message-reaction\"],\n methods: {\n sendMessageReaction(emoji, reaction) {\n this.$emit(\"send-message-reaction\", { emoji, reaction });\n }\n }\n};\nconst _hoisted_1$4 = [\"onClick\"];\nfunction _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {\n return !$props.message.deleted ? (openBlock(), createBlock(TransitionGroup, {\n key: 0,\n name: \"vac-slide-left\",\n tag: \"span\"\n }, {\n default: withCtx(() => [\n (openBlock(true), createElementBlock(Fragment, null, renderList($props.message.reactions, (reaction, key) => {\n return withDirectives((openBlock(), createElementBlock(\"button\", {\n key: key + 0,\n class: normalizeClass([\"vac-button-reaction\", {\n \"vac-reaction-me\": reaction.indexOf($props.currentUserId) !== -1\n }]),\n style: normalizeStyle({\n float: $props.message.senderId === $props.currentUserId ? \"right\" : \"left\"\n }),\n onClick: ($event) => $options.sendMessageReaction({ unicode: key }, reaction)\n }, [\n createTextVNode(toDisplayString(key), 1),\n createBaseVNode(\"span\", null, toDisplayString(reaction.length), 1)\n ], 14, _hoisted_1$4)), [\n [vShow, reaction.length]\n ]);\n }), 128))\n ]),\n _: 1\n })) : createCommentVNode(\"\", true);\n}\nvar MessageReactions = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"render\", _sfc_render$4]]);\nfunction roomsValidation(obj) {\n const roomsValidate = [\n { key: \"roomId\", type: [\"string\", \"number\"] },\n { key: \"roomName\", type: [\"string\"] },\n { key: \"users\", type: [\"array\"] }\n ];\n const validate = (obj2, props) => {\n return props.every((prop) => {\n let validType = false;\n if (prop.type[0] === \"array\" && Array.isArray(obj2[prop.key])) {\n validType = true;\n } else if (prop.type.find((t) => t === typeof obj2[prop.key])) {\n validType = true;\n }\n return validType && checkObjectValid(obj2, prop.key);\n });\n };\n if (!validate(obj, roomsValidate)) {\n throw new Error(\n \"Rooms object is not valid! Must contain at least roomId[String, Number], roomName[String] and users[Array]\"\n );\n }\n}\nfunction partcipantsValidation(obj) {\n const participantsValidate = [\n { key: \"_id\", type: [\"string\", \"number\"] },\n { key: \"username\", type: [\"string\"] }\n ];\n const validate = (obj2, props) => {\n return props.every((prop) => {\n const validType = prop.type.find((t) => t === typeof obj2[prop.key]);\n return validType && checkObjectValid(obj2, prop.key);\n });\n };\n if (!validate(obj, participantsValidate)) {\n throw new Error(\n \"Participants object is not valid! Must contain at least _id[String, Number] and username[String]\"\n );\n }\n}\nfunction messagesValidation(obj) {\n const messagesValidate = [\n { key: \"_id\", type: [\"string\", \"number\"] },\n { key: \"senderId\", type: [\"string\", \"number\"] }\n ];\n const validate = (obj2, props) => {\n return props.every((prop) => {\n const validType = prop.type.find((t) => t === typeof obj2[prop.key]);\n return validType && checkObjectValid(obj2, prop.key);\n });\n };\n if (!validate(obj, messagesValidate)) {\n throw new Error(\n \"Messages object is not valid! Must contain at least _id[String, Number] and senderId[String, Number]\"\n );\n }\n}\nfunction checkObjectValid(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key) && obj[key] !== null && obj[key] !== void 0;\n}\nconst _sfc_main$3 = {\n name: \"RoomMessage\",\n components: {\n SvgIcon,\n FormatMessage,\n AudioPlayer,\n MessageReply,\n MessageFiles,\n MessageActions,\n MessageReactions\n },\n props: {\n currentUserId: { type: [String, Number], required: true },\n textMessages: { type: Object, required: true },\n index: { type: Number, required: true },\n message: { type: Object, required: true },\n messages: { type: Array, required: true },\n editedMessageId: { type: [String, Number], default: null },\n roomUsers: { type: Array, default: () => [] },\n messageActions: { type: Array, required: true },\n newMessages: { type: Array, default: () => [] },\n showReactionEmojis: { type: Boolean, required: true },\n showNewMessagesDivider: { type: Boolean, required: true },\n textFormatting: { type: Object, required: true },\n linkOptions: { type: Object, required: true },\n usernameOptions: { type: Object, required: true },\n messageSelectionEnabled: { type: Boolean, required: true },\n selectedMessages: { type: Array, default: () => [] },\n emojiDataSource: { type: String, default: void 0 }\n },\n emits: [\n \"message-added\",\n \"open-file\",\n \"open-user-tag\",\n \"open-failed-message\",\n \"message-action-handler\",\n \"send-message-reaction\",\n \"select-message\",\n \"unselect-message\"\n ],\n data() {\n return {\n hoverMessageId: null,\n messageHover: false,\n optionsOpened: false,\n emojiOpened: false,\n newMessage: {},\n progressTime: \"- : -\",\n hoverAudioProgress: false\n };\n },\n computed: {\n showUsername() {\n if (!this.usernameOptions.currentUser && this.message.senderId === this.currentUserId) {\n return false;\n } else {\n return this.roomUsers.length >= this.usernameOptions.minUsers;\n }\n },\n showDate() {\n return this.index > 0 && this.message.date !== this.messages[this.index - 1].date;\n },\n messageOffset() {\n return this.index > 0 && this.message.senderId !== this.messages[this.index - 1].senderId;\n },\n isMessageHover() {\n return this.editedMessageId === this.message._id || this.hoverMessageId === this.message._id;\n },\n isAudio() {\n var _a;\n return (_a = this.message.files) == null ? void 0 : _a.some((file) => isAudioFile(file));\n },\n isCheckmarkVisible() {\n return this.message.senderId === this.currentUserId && !this.message.deleted && (this.message.saved || this.message.distributed || this.message.seen);\n },\n hasCurrentUserAvatar() {\n return this.messages.some(\n (message) => message.senderId === this.currentUserId && message.avatar\n );\n },\n hasSenderUserAvatar() {\n return this.messages.some(\n (message) => message.senderId !== this.currentUserId && message.avatar\n );\n },\n isMessageSelected() {\n return this.messageSelectionEnabled && !!this.selectedMessages.find(\n (message) => message._id === this.message._id\n );\n }\n },\n watch: {\n newMessages: {\n immediate: true,\n deep: true,\n handler(val) {\n if (!val.length || !this.showNewMessagesDivider) {\n this.newMessage = {};\n return;\n }\n this.newMessage = val.reduce(\n (res, obj) => obj.index < res.index ? obj : res\n );\n }\n },\n messageSelectionEnabled() {\n this.resetMessageHover();\n }\n },\n mounted() {\n messagesValidation(this.message);\n this.$emit(\"message-added\", {\n message: this.message,\n index: this.index,\n ref: this.$refs.message\n });\n },\n methods: {\n onHoverMessage() {\n if (!this.messageSelectionEnabled) {\n this.messageHover = true;\n if (this.canEditMessage())\n this.hoverMessageId = this.message._id;\n }\n },\n canEditMessage() {\n return !this.message.deleted;\n },\n onLeaveMessage() {\n if (!this.messageSelectionEnabled) {\n if (!this.optionsOpened && !this.emojiOpened)\n this.messageHover = false;\n this.hoverMessageId = null;\n }\n },\n resetMessageHover() {\n this.messageHover = false;\n this.hoverMessageId = null;\n },\n openFile(file) {\n this.$emit(\"open-file\", { message: this.message, file });\n },\n openUserTag(user) {\n this.$emit(\"open-user-tag\", { user });\n },\n messageActionHandler(action) {\n this.resetMessageHover();\n setTimeout(() => {\n this.$emit(\"message-action-handler\", { action, message: this.message });\n }, 300);\n },\n sendMessageReaction({ emoji, reaction }) {\n this.$emit(\"send-message-reaction\", {\n messageId: this.message._id,\n reaction: emoji,\n remove: reaction && reaction.indexOf(this.currentUserId) !== -1\n });\n this.messageHover = false;\n },\n selectMessage() {\n if (this.messageSelectionEnabled) {\n if (this.isMessageSelected) {\n this.$emit(\"unselect-message\", this.message._id);\n } else {\n this.$emit(\"select-message\", this.message);\n }\n }\n }\n }\n};\nconst _hoisted_1$3 = [\"id\"];\nconst _hoisted_2$2 = {\n key: 0,\n class: \"vac-card-info vac-card-date\"\n};\nconst _hoisted_3$2 = {\n key: 1,\n class: \"vac-line-new\"\n};\nconst _hoisted_4$2 = {\n key: 2,\n class: \"vac-card-info vac-card-system\"\n};\nconst _hoisted_5$2 = {\n key: 1,\n class: \"vac-avatar-offset\"\n};\nconst _hoisted_6$1 = {\n key: 0,\n class: \"vac-progress-time\"\n};\nconst _hoisted_7$1 = { class: \"vac-text-timestamp\" };\nconst _hoisted_8 = {\n key: 0,\n class: \"vac-icon-edited\"\n};\nconst _hoisted_9 = { key: 1 };\nconst _hoisted_10 = /* @__PURE__ */ createBaseVNode(\"div\", { class: \"vac-failure-text\" }, \"!\", -1);\nconst _hoisted_11 = [\n _hoisted_10\n];\nconst _hoisted_12 = {\n key: 3,\n class: \"vac-avatar-current-offset\"\n};\nfunction _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_format_message = resolveComponent(\"format-message\");\n const _component_message_reply = resolveComponent(\"message-reply\");\n const _component_message_files = resolveComponent(\"message-files\");\n const _component_audio_player = resolveComponent(\"audio-player\");\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n const _component_message_actions = resolveComponent(\"message-actions\");\n const _component_message_reactions = resolveComponent(\"message-reactions\");\n return openBlock(), createElementBlock(\"div\", {\n id: $props.message._id,\n ref: \"message\",\n class: \"vac-message-wrapper\"\n }, [\n $options.showDate ? (openBlock(), createElementBlock(\"div\", _hoisted_2$2, toDisplayString($props.message.date), 1)) : createCommentVNode(\"\", true),\n $data.newMessage._id === $props.message._id ? (openBlock(), createElementBlock(\"div\", _hoisted_3$2, toDisplayString($props.textMessages.NEW_MESSAGES), 1)) : createCommentVNode(\"\", true),\n $props.message.system ? (openBlock(), createElementBlock(\"div\", _hoisted_4$2, [\n renderSlot(_ctx.$slots, \"message_\" + $props.message._id, {}, () => [\n createVNode(_component_format_message, {\n \"message-id\": $props.message._id,\n content: $props.message.content,\n deleted: !!$props.message.deleted,\n users: $props.roomUsers,\n \"text-messages\": $props.textMessages,\n \"text-formatting\": $props.textFormatting,\n \"link-options\": $props.linkOptions,\n onOpenUserTag: $options.openUserTag\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"message-id\", \"content\", \"deleted\", \"users\", \"text-messages\", \"text-formatting\", \"link-options\", \"onOpenUserTag\"])\n ])\n ])) : (openBlock(), createElementBlock(\"div\", {\n key: 3,\n class: normalizeClass([\"vac-message-box\", { \"vac-offset-current\": $props.message.senderId === $props.currentUserId }]),\n onClick: _cache[8] || (_cache[8] = (...args) => $options.selectMessage && $options.selectMessage(...args))\n }, [\n renderSlot(_ctx.$slots, \"message_\" + $props.message._id, {}, () => [\n $props.message.senderId !== $props.currentUserId ? renderSlot(_ctx.$slots, \"message-avatar_\" + $props.message._id, { key: 0 }, () => [\n $props.message.avatar ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: \"vac-avatar\",\n style: normalizeStyle({ \"background-image\": `url('${$props.message.avatar}')` })\n }, null, 4)) : createCommentVNode(\"\", true)\n ]) : createCommentVNode(\"\", true),\n $options.hasSenderUserAvatar && !$props.message.avatar ? (openBlock(), createElementBlock(\"div\", _hoisted_5$2)) : createCommentVNode(\"\", true),\n createBaseVNode(\"div\", {\n class: normalizeClass([\"vac-message-container\", {\n \"vac-message-container-offset\": $options.messageOffset\n }])\n }, [\n createBaseVNode(\"div\", {\n class: normalizeClass([\"vac-message-card\", {\n \"vac-message-highlight\": $options.isMessageHover,\n \"vac-message-current\": $props.message.senderId === $props.currentUserId,\n \"vac-message-deleted\": $props.message.deleted,\n \"vac-item-clickable\": $props.messageSelectionEnabled,\n \"vac-message-selected\": $options.isMessageSelected\n }]),\n onMouseover: _cache[5] || (_cache[5] = (...args) => $options.onHoverMessage && $options.onHoverMessage(...args)),\n onMouseleave: _cache[6] || (_cache[6] = (...args) => $options.onLeaveMessage && $options.onLeaveMessage(...args))\n }, [\n $options.showUsername ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"vac-text-username\", {\n \"vac-username-reply\": !$props.message.deleted && $props.message.replyMessage\n }])\n }, [\n createBaseVNode(\"span\", null, toDisplayString($props.message.username), 1)\n ], 2)) : createCommentVNode(\"\", true),\n !$props.message.deleted && $props.message.replyMessage ? (openBlock(), createBlock(_component_message_reply, {\n key: 1,\n message: $props.message,\n \"room-users\": $props.roomUsers,\n \"text-formatting\": $props.textFormatting,\n \"link-options\": $props.linkOptions\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (i, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"message\", \"room-users\", \"text-formatting\", \"link-options\"])) : createCommentVNode(\"\", true),\n !!$props.message.deleted || !$props.message.files || !$props.message.files.length ? (openBlock(), createBlock(_component_format_message, {\n key: 2,\n \"message-id\": $props.message._id,\n content: $props.message.content,\n deleted: !!$props.message.deleted,\n users: $props.roomUsers,\n \"text-formatting\": $props.textFormatting,\n \"text-messages\": $props.textMessages,\n \"link-options\": $props.linkOptions,\n onOpenUserTag: $options.openUserTag\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"message-id\", \"content\", \"deleted\", \"users\", \"text-formatting\", \"text-messages\", \"link-options\", \"onOpenUserTag\"])) : !$options.isAudio || $props.message.files.length > 1 ? (openBlock(), createBlock(_component_message_files, {\n key: 3,\n \"current-user-id\": $props.currentUserId,\n message: $props.message,\n \"room-users\": $props.roomUsers,\n \"text-formatting\": $props.textFormatting,\n \"link-options\": $props.linkOptions,\n \"message-selection-enabled\": $props.messageSelectionEnabled,\n onOpenFile: $options.openFile,\n onOpenUserTag: $options.openUserTag\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (i, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"current-user-id\", \"message\", \"room-users\", \"text-formatting\", \"link-options\", \"message-selection-enabled\", \"onOpenFile\", \"onOpenUserTag\"])) : (openBlock(), createElementBlock(Fragment, { key: 4 }, [\n createVNode(_component_audio_player, {\n \"message-id\": $props.message._id,\n src: $props.message.files[0].url,\n \"message-selection-enabled\": $props.messageSelectionEnabled,\n onUpdateProgressTime: _cache[0] || (_cache[0] = ($event) => $data.progressTime = $event),\n onHoverAudioProgress: _cache[1] || (_cache[1] = ($event) => $data.hoverAudioProgress = $event)\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (i, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"message-id\", \"src\", \"message-selection-enabled\"]),\n !$props.message.deleted ? (openBlock(), createElementBlock(\"div\", _hoisted_6$1, toDisplayString($data.progressTime), 1)) : createCommentVNode(\"\", true)\n ], 64)),\n createBaseVNode(\"div\", _hoisted_7$1, [\n $props.message.edited && !$props.message.deleted ? (openBlock(), createElementBlock(\"div\", _hoisted_8, [\n renderSlot(_ctx.$slots, \"pencil-icon_\" + $props.message._id, {}, () => [\n createVNode(_component_svg_icon, { name: \"pencil\" })\n ])\n ])) : createCommentVNode(\"\", true),\n createBaseVNode(\"span\", null, toDisplayString($props.message.timestamp), 1),\n $options.isCheckmarkVisible ? (openBlock(), createElementBlock(\"span\", _hoisted_9, [\n renderSlot(_ctx.$slots, \"checkmark-icon_\" + $props.message._id, {}, () => [\n createVNode(_component_svg_icon, {\n name: $props.message.distributed ? \"double-checkmark\" : \"checkmark\",\n param: $props.message.seen ? \"seen\" : \"\",\n class: \"vac-icon-check\"\n }, null, 8, [\"name\", \"param\"])\n ])\n ])) : createCommentVNode(\"\", true)\n ]),\n createVNode(_component_message_actions, {\n \"current-user-id\": $props.currentUserId,\n message: $props.message,\n \"message-actions\": $props.messageActions,\n \"show-reaction-emojis\": $props.showReactionEmojis,\n \"message-hover\": $data.messageHover,\n \"hover-message-id\": $data.hoverMessageId,\n \"hover-audio-progress\": $data.hoverAudioProgress,\n \"emoji-data-source\": $props.emojiDataSource,\n onUpdateMessageHover: _cache[2] || (_cache[2] = ($event) => $data.messageHover = $event),\n onUpdateOptionsOpened: _cache[3] || (_cache[3] = ($event) => $data.optionsOpened = $event),\n onUpdateEmojiOpened: _cache[4] || (_cache[4] = ($event) => $data.emojiOpened = $event),\n onMessageActionHandler: $options.messageActionHandler,\n onSendMessageReaction: $options.sendMessageReaction\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (i, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"current-user-id\", \"message\", \"message-actions\", \"show-reaction-emojis\", \"message-hover\", \"hover-message-id\", \"hover-audio-progress\", \"emoji-data-source\", \"onMessageActionHandler\", \"onSendMessageReaction\"])\n ], 34),\n createVNode(_component_message_reactions, {\n \"current-user-id\": $props.currentUserId,\n message: $props.message,\n onSendMessageReaction: $options.sendMessageReaction\n }, null, 8, [\"current-user-id\", \"message\", \"onSendMessageReaction\"])\n ], 2),\n renderSlot(_ctx.$slots, \"message-failure_\" + $props.message._id, {}, () => [\n $props.message.failure && $props.message.senderId === $props.currentUserId ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"vac-failure-container vac-svg-button\", {\n \"vac-failure-container-avatar\": $props.message.avatar && $props.message.senderId === $props.currentUserId\n }]),\n onClick: _cache[7] || (_cache[7] = ($event) => _ctx.$emit(\"open-failed-message\", { message: $props.message }))\n }, _hoisted_11, 2)) : createCommentVNode(\"\", true)\n ]),\n $props.message.senderId === $props.currentUserId ? renderSlot(_ctx.$slots, \"message-avatar_\" + $props.message._id, { key: 2 }, () => [\n $props.message.avatar ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: \"vac-avatar vac-avatar-current\",\n style: normalizeStyle({ \"background-image\": `url('${$props.message.avatar}')` })\n }, null, 4)) : createCommentVNode(\"\", true)\n ]) : createCommentVNode(\"\", true),\n $options.hasCurrentUserAvatar && !$props.message.avatar ? (openBlock(), createElementBlock(\"div\", _hoisted_12)) : createCommentVNode(\"\", true)\n ])\n ], 2))\n ], 8, _hoisted_1$3);\n}\nvar RoomMessage = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$3]]);\nconst _sfc_main$2 = {\n name: \"ChatRoom\",\n components: {\n Loader,\n SvgIcon,\n RoomHeader,\n RoomFooter,\n RoomMessage\n },\n props: {\n currentUserId: { type: [String, Number], required: true },\n textMessages: { type: Object, required: true },\n singleRoom: { type: Boolean, required: true },\n showRoomsList: { type: Boolean, required: true },\n isMobile: { type: Boolean, required: true },\n rooms: { type: Array, required: true },\n roomId: { type: [String, Number], required: true },\n loadFirstRoom: { type: Boolean, required: true },\n messages: { type: Array, required: true },\n roomMessage: { type: String, default: null },\n messagesLoaded: { type: Boolean, required: true },\n menuActions: { type: Array, required: true },\n messageActions: { type: Array, required: true },\n messageSelectionActions: { type: Array, required: true },\n autoScroll: { type: Object, required: true },\n showSendIcon: { type: Boolean, required: true },\n showFiles: { type: Boolean, required: true },\n showAudio: { type: Boolean, required: true },\n audioBitRate: { type: Number, required: true },\n audioSampleRate: { type: Number, required: true },\n showEmojis: { type: Boolean, required: true },\n showReactionEmojis: { type: Boolean, required: true },\n showNewMessagesDivider: { type: Boolean, required: true },\n showFooter: { type: Boolean, required: true },\n acceptedFiles: { type: String, required: true },\n captureFiles: { type: String, required: true },\n multipleFiles: { type: Boolean, default: true },\n textFormatting: { type: Object, required: true },\n linkOptions: { type: Object, required: true },\n loadingRooms: { type: Boolean, required: true },\n roomInfoEnabled: { type: Boolean, required: true },\n textareaActionEnabled: { type: Boolean, required: true },\n textareaAutoFocus: { type: Boolean, required: true },\n userTagsEnabled: { type: Boolean, required: true },\n emojisSuggestionEnabled: { type: Boolean, required: true },\n scrollDistance: { type: Number, required: true },\n templatesText: { type: Array, default: null },\n usernameOptions: { type: Object, required: true },\n emojiDataSource: { type: String, default: void 0 }\n },\n emits: [\n \"toggle-rooms-list\",\n \"room-info\",\n \"menu-action-handler\",\n \"message-selection-action-handler\",\n \"edit-message\",\n \"send-message\",\n \"delete-message\",\n \"message-action-handler\",\n \"fetch-messages\",\n \"send-message-reaction\",\n \"typing-message\",\n \"open-file\",\n \"open-user-tag\",\n \"open-failed-message\",\n \"textarea-action-handler\"\n ],\n data() {\n return {\n editedMessageId: null,\n initReplyMessage: null,\n initEditMessage: null,\n loadingMessages: false,\n observer: null,\n showLoader: true,\n loadingMoreMessages: false,\n scrollIcon: false,\n scrollMessagesCount: 0,\n newMessages: [],\n messageSelectionEnabled: false,\n selectedMessages: [],\n droppedFiles: []\n };\n },\n computed: {\n room() {\n return this.rooms.find((room) => room.roomId === this.roomId) || {};\n },\n showNoMessages() {\n return this.roomId && !this.messages.length && !this.loadingMessages && !this.loadingRooms;\n },\n showNoRoom() {\n const noRoomSelected = !this.rooms.length && !this.loadingRooms || !this.roomId && !this.loadFirstRoom;\n if (noRoomSelected) {\n this.updateLoadingMessages(false);\n }\n return noRoomSelected;\n },\n showMessagesStarted() {\n return this.messages.length && this.messagesLoaded;\n }\n },\n watch: {\n roomId: {\n immediate: true,\n handler() {\n this.onRoomChanged();\n }\n },\n messages: {\n deep: true,\n handler(newVal, oldVal) {\n newVal.forEach((message, i) => {\n if (this.showNewMessagesDivider && !message.seen && message.senderId !== this.currentUserId) {\n this.newMessages.push({\n _id: message._id,\n index: i\n });\n }\n });\n if ((oldVal == null ? void 0 : oldVal.length) === (newVal == null ? void 0 : newVal.length) - 1) {\n this.newMessages = [];\n }\n setTimeout(() => this.loadingMoreMessages = false);\n }\n },\n messagesLoaded(val) {\n if (val)\n this.updateLoadingMessages(false);\n }\n },\n mounted() {\n this.newMessages = [];\n },\n methods: {\n updateLoadingMessages(val) {\n this.loadingMessages = val;\n if (!val) {\n setTimeout(() => this.initIntersectionObserver());\n }\n },\n initIntersectionObserver() {\n if (this.observer) {\n this.showLoader = true;\n this.observer.disconnect();\n }\n const loader = this.$el.querySelector(\"#infinite-loader-messages\");\n if (loader) {\n const options = {\n root: this.$el.querySelector(\"#messages-list\"),\n rootMargin: `${this.scrollDistance}px`,\n threshold: 0\n };\n this.observer = new IntersectionObserver((entries) => {\n if (entries[0].isIntersecting) {\n this.loadMoreMessages();\n }\n }, options);\n this.observer.observe(loader);\n }\n },\n preventTopScroll() {\n const container = this.$refs.scrollContainer;\n const prevScrollHeight = container.scrollHeight;\n const observer = new ResizeObserver((_) => {\n if (container.scrollHeight !== prevScrollHeight) {\n if (this.$refs.scrollContainer) {\n this.$refs.scrollContainer.scrollTo({\n top: container.scrollHeight - prevScrollHeight\n });\n observer.disconnect();\n }\n }\n });\n for (var i = 0; i < container.children.length; i++) {\n observer.observe(container.children[i]);\n }\n },\n touchStart(touchEvent) {\n if (this.singleRoom)\n return;\n if (touchEvent.changedTouches.length === 1) {\n const posXStart = touchEvent.changedTouches[0].clientX;\n const posYStart = touchEvent.changedTouches[0].clientY;\n addEventListener(\n \"touchend\",\n (touchEvent2) => this.touchEnd(touchEvent2, posXStart, posYStart),\n { once: true }\n );\n }\n },\n touchEnd(touchEvent, posXStart, posYStart) {\n if (touchEvent.changedTouches.length === 1) {\n const posXEnd = touchEvent.changedTouches[0].clientX;\n const posYEnd = touchEvent.changedTouches[0].clientY;\n const swippedRight = posXEnd - posXStart > 100;\n const swippedVertically = Math.abs(posYEnd - posYStart) > 50;\n if (swippedRight && !swippedVertically) {\n this.$emit(\"toggle-rooms-list\");\n }\n }\n },\n onRoomChanged() {\n this.updateLoadingMessages(true);\n this.scrollIcon = false;\n this.scrollMessagesCount = 0;\n this.resetMessageSelection();\n const unwatch = this.$watch(\n () => this.messages,\n (val) => {\n if (!val || !val.length)\n return;\n const element2 = this.$refs.scrollContainer;\n if (!element2)\n return;\n unwatch();\n setTimeout(() => {\n element2.scrollTo({ top: element2.scrollHeight });\n this.updateLoadingMessages(false);\n });\n }\n );\n },\n resetMessageSelection() {\n this.messageSelectionEnabled = false;\n this.selectedMessages = [];\n },\n selectMessage(message) {\n this.selectedMessages.push(message);\n },\n unselectMessage(messageId) {\n this.selectedMessages = this.selectedMessages.filter(\n (message) => message._id !== messageId\n );\n },\n onMessageAdded({ message, index, ref }) {\n if (index !== this.messages.length - 1)\n return;\n const autoScrollOffset = ref.offsetHeight + 60;\n setTimeout(() => {\n const scrollContainer = this.$refs.scrollContainer;\n let scrolledUp = false;\n if (scrollContainer) {\n scrolledUp = this.getBottomScroll(scrollContainer) > autoScrollOffset;\n }\n if (message.senderId === this.currentUserId) {\n if (scrolledUp) {\n if (this.autoScroll.send.newAfterScrollUp) {\n this.scrollToBottom();\n }\n } else {\n if (this.autoScroll.send.new) {\n this.scrollToBottom();\n }\n }\n } else {\n if (scrolledUp) {\n if (this.autoScroll.receive.newAfterScrollUp) {\n this.scrollToBottom();\n } else {\n this.scrollIcon = true;\n this.scrollMessagesCount++;\n }\n } else {\n if (this.autoScroll.receive.new) {\n this.scrollToBottom();\n } else {\n this.scrollIcon = true;\n this.scrollMessagesCount++;\n }\n }\n }\n });\n },\n onContainerScroll(e) {\n if (!e.target)\n return;\n const bottomScroll = this.getBottomScroll(e.target);\n if (bottomScroll < 60)\n this.scrollMessagesCount = 0;\n this.scrollIcon = bottomScroll > 500 || this.scrollMessagesCount;\n },\n loadMoreMessages() {\n if (this.loadingMessages)\n return;\n setTimeout(\n () => {\n if (this.loadingMoreMessages)\n return;\n if (this.messagesLoaded || !this.roomId) {\n this.loadingMoreMessages = false;\n this.showLoader = false;\n return;\n }\n this.preventTopScroll();\n this.$emit(\"fetch-messages\");\n this.loadingMoreMessages = true;\n },\n 500\n );\n },\n messageActionHandler({ action, message }) {\n switch (action.name) {\n case \"replyMessage\":\n this.initReplyMessage = message;\n setTimeout(() => {\n this.initReplyMessage = null;\n });\n return;\n case \"editMessage\":\n this.initEditMessage = message;\n setTimeout(() => {\n this.initEditMessage = null;\n });\n return;\n case \"deleteMessage\":\n return this.$emit(\"delete-message\", message);\n case \"selectMessages\":\n this.selectedMessages = [message];\n this.messageSelectionEnabled = true;\n return;\n default:\n return this.$emit(\"message-action-handler\", { action, message });\n }\n },\n messageSelectionActionHandler(action) {\n this.$emit(\"message-selection-action-handler\", {\n action,\n messages: this.selectedMessages\n });\n this.resetMessageSelection();\n },\n sendMessageReaction(messageReaction) {\n this.$emit(\"send-message-reaction\", messageReaction);\n },\n getBottomScroll(element2) {\n const { scrollHeight, clientHeight, scrollTop } = element2;\n return scrollHeight - clientHeight - scrollTop;\n },\n scrollToBottom() {\n setTimeout(() => {\n const element2 = this.$refs.scrollContainer;\n if (element2) {\n element2.classList.add(\"vac-scroll-smooth\");\n element2.scrollTo({ top: element2.scrollHeight, behavior: \"smooth\" });\n setTimeout(() => element2.classList.remove(\"vac-scroll-smooth\"));\n }\n }, 50);\n },\n openFile({ message, file }) {\n this.$emit(\"open-file\", { message, file });\n },\n openUserTag(user) {\n this.$emit(\"open-user-tag\", user);\n },\n onDropFiles(event) {\n if (this.showFiles) {\n this.droppedFiles = event.dataTransfer.files;\n }\n }\n }\n};\nconst _hoisted_1$2 = { class: \"vac-container-center vac-room-empty\" };\nconst _hoisted_2$1 = { class: \"vac-messages-container\" };\nconst _hoisted_3$1 = {\n key: 0,\n class: \"vac-text-started\"\n};\nconst _hoisted_4$1 = {\n key: 1,\n class: \"vac-text-started\"\n};\nconst _hoisted_5$1 = {\n key: 0,\n id: \"infinite-loader-messages\"\n};\nconst _hoisted_6 = { key: 2 };\nconst _hoisted_7 = {\n key: 0,\n class: \"vac-badge-counter vac-messages-count\"\n};\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_room_header = resolveComponent(\"room-header\");\n const _component_loader = resolveComponent(\"loader\");\n const _component_room_message = resolveComponent(\"room-message\");\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n const _component_room_footer = resolveComponent(\"room-footer\");\n return withDirectives((openBlock(), createElementBlock(\"div\", {\n class: \"vac-col-messages\",\n onDrop: _cache[12] || (_cache[12] = withModifiers((...args) => $options.onDropFiles && $options.onDropFiles(...args), [\"prevent\"])),\n onDragenter: _cache[13] || (_cache[13] = withModifiers(() => {\n }, [\"prevent\"])),\n onDragover: _cache[14] || (_cache[14] = withModifiers(() => {\n }, [\"prevent\"])),\n onDragleave: _cache[15] || (_cache[15] = withModifiers(() => {\n }, [\"prevent\"])),\n onTouchstart: _cache[16] || (_cache[16] = (...args) => $options.touchStart && $options.touchStart(...args))\n }, [\n $options.showNoRoom ? renderSlot(_ctx.$slots, \"no-room-selected\", { key: 0 }, () => [\n createBaseVNode(\"div\", _hoisted_1$2, [\n createBaseVNode(\"div\", null, toDisplayString($props.textMessages.ROOM_EMPTY), 1)\n ])\n ]) : (openBlock(), createBlock(_component_room_header, {\n key: 1,\n \"current-user-id\": $props.currentUserId,\n \"text-messages\": $props.textMessages,\n \"single-room\": $props.singleRoom,\n \"show-rooms-list\": $props.showRoomsList,\n \"is-mobile\": $props.isMobile,\n \"room-info-enabled\": $props.roomInfoEnabled,\n \"menu-actions\": $props.menuActions,\n room: $options.room,\n \"message-selection-enabled\": $data.messageSelectionEnabled,\n \"message-selection-actions\": $props.messageSelectionActions,\n \"selected-messages-total\": $data.selectedMessages.length,\n onToggleRoomsList: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"toggle-rooms-list\")),\n onRoomInfo: _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"room-info\")),\n onMenuActionHandler: _cache[2] || (_cache[2] = ($event) => _ctx.$emit(\"menu-action-handler\", $event)),\n onMessageSelectionActionHandler: $options.messageSelectionActionHandler,\n onCancelMessageSelection: _cache[3] || (_cache[3] = ($event) => $data.messageSelectionEnabled = false)\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (i, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"current-user-id\", \"text-messages\", \"single-room\", \"show-rooms-list\", \"is-mobile\", \"room-info-enabled\", \"menu-actions\", \"room\", \"message-selection-enabled\", \"message-selection-actions\", \"selected-messages-total\", \"onMessageSelectionActionHandler\"])),\n createBaseVNode(\"div\", {\n id: \"messages-list\",\n ref: \"scrollContainer\",\n class: \"vac-container-scroll\",\n onScroll: _cache[5] || (_cache[5] = (...args) => $options.onContainerScroll && $options.onContainerScroll(...args))\n }, [\n createVNode(_component_loader, {\n show: $data.loadingMessages,\n type: \"messages\"\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"show\"]),\n createBaseVNode(\"div\", _hoisted_2$1, [\n createBaseVNode(\"div\", {\n class: normalizeClass({ \"vac-messages-hidden\": $data.loadingMessages })\n }, [\n createVNode(Transition, { name: \"vac-fade-message\" }, {\n default: withCtx(() => [\n createBaseVNode(\"div\", null, [\n $options.showNoMessages ? (openBlock(), createElementBlock(\"div\", _hoisted_3$1, [\n renderSlot(_ctx.$slots, \"messages-empty\", {}, () => [\n createTextVNode(toDisplayString($props.textMessages.MESSAGES_EMPTY), 1)\n ])\n ])) : createCommentVNode(\"\", true),\n $options.showMessagesStarted ? (openBlock(), createElementBlock(\"div\", _hoisted_4$1, toDisplayString($props.textMessages.CONVERSATION_STARTED) + \" \" + toDisplayString($props.messages[0].date), 1)) : createCommentVNode(\"\", true)\n ])\n ]),\n _: 3\n }),\n $props.messages.length && !$props.messagesLoaded ? (openBlock(), createElementBlock(\"div\", _hoisted_5$1, [\n createVNode(_component_loader, {\n show: true,\n infinite: true,\n type: \"infinite-messages\"\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1024)\n ])) : createCommentVNode(\"\", true),\n (openBlock(), createBlock(TransitionGroup, {\n key: $props.roomId,\n name: \"vac-fade-message\",\n tag: \"span\"\n }, {\n default: withCtx(() => [\n (openBlock(true), createElementBlock(Fragment, null, renderList($props.messages, (m, i) => {\n return openBlock(), createElementBlock(\"div\", {\n key: m.indexId || m._id\n }, [\n createVNode(_component_room_message, {\n \"current-user-id\": $props.currentUserId,\n message: m,\n index: i,\n messages: $props.messages,\n \"edited-message-id\": $data.editedMessageId,\n \"message-actions\": $props.messageActions,\n \"room-users\": $options.room.users,\n \"text-messages\": $props.textMessages,\n \"new-messages\": $data.newMessages,\n \"show-reaction-emojis\": $props.showReactionEmojis,\n \"show-new-messages-divider\": $props.showNewMessagesDivider,\n \"text-formatting\": $props.textFormatting,\n \"link-options\": $props.linkOptions,\n \"username-options\": $props.usernameOptions,\n \"message-selection-enabled\": $data.messageSelectionEnabled,\n \"selected-messages\": $data.selectedMessages,\n \"emoji-data-source\": $props.emojiDataSource,\n onMessageAdded: $options.onMessageAdded,\n onMessageActionHandler: $options.messageActionHandler,\n onOpenFile: $options.openFile,\n onOpenUserTag: $options.openUserTag,\n onOpenFailedMessage: _cache[4] || (_cache[4] = ($event) => _ctx.$emit(\"open-failed-message\", $event)),\n onSendMessageReaction: $options.sendMessageReaction,\n onSelectMessage: $options.selectMessage,\n onUnselectMessage: $options.unselectMessage\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"current-user-id\", \"message\", \"index\", \"messages\", \"edited-message-id\", \"message-actions\", \"room-users\", \"text-messages\", \"new-messages\", \"show-reaction-emojis\", \"show-new-messages-divider\", \"text-formatting\", \"link-options\", \"username-options\", \"message-selection-enabled\", \"selected-messages\", \"emoji-data-source\", \"onMessageAdded\", \"onMessageActionHandler\", \"onOpenFile\", \"onOpenUserTag\", \"onSendMessageReaction\", \"onSelectMessage\", \"onUnselectMessage\"])\n ]);\n }), 128))\n ]),\n _: 3\n }))\n ], 2)\n ])\n ], 544),\n !$data.loadingMessages ? (openBlock(), createElementBlock(\"div\", _hoisted_6, [\n createVNode(Transition, { name: \"vac-bounce\" }, {\n default: withCtx(() => [\n $data.scrollIcon ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: \"vac-icon-scroll\",\n onClick: _cache[6] || (_cache[6] = (...args) => $options.scrollToBottom && $options.scrollToBottom(...args))\n }, [\n createVNode(Transition, { name: \"vac-bounce\" }, {\n default: withCtx(() => [\n $data.scrollMessagesCount ? (openBlock(), createElementBlock(\"div\", _hoisted_7, toDisplayString($data.scrollMessagesCount), 1)) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n renderSlot(_ctx.$slots, \"scroll-icon\", {}, () => [\n createVNode(_component_svg_icon, {\n name: \"dropdown\",\n param: \"scroll\"\n })\n ])\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 3\n })\n ])) : createCommentVNode(\"\", true),\n createVNode(_component_room_footer, {\n room: $options.room,\n \"room-id\": $props.roomId,\n \"room-message\": $props.roomMessage,\n \"text-messages\": $props.textMessages,\n \"show-send-icon\": $props.showSendIcon,\n \"show-files\": $props.showFiles,\n \"show-audio\": $props.showAudio,\n \"show-emojis\": $props.showEmojis,\n \"show-footer\": $props.showFooter,\n \"accepted-files\": $props.acceptedFiles,\n \"capture-files\": $props.captureFiles,\n \"multiple-files\": $props.multipleFiles,\n \"textarea-action-enabled\": $props.textareaActionEnabled,\n \"textarea-auto-focus\": $props.textareaAutoFocus,\n \"user-tags-enabled\": $props.userTagsEnabled,\n \"emojis-suggestion-enabled\": $props.emojisSuggestionEnabled,\n \"templates-text\": $props.templatesText,\n \"text-formatting\": $props.textFormatting,\n \"link-options\": $props.linkOptions,\n \"audio-bit-rate\": $props.audioBitRate,\n \"audio-sample-rate\": $props.audioSampleRate,\n \"init-reply-message\": $data.initReplyMessage,\n \"init-edit-message\": $data.initEditMessage,\n \"dropped-files\": $data.droppedFiles,\n \"emoji-data-source\": $props.emojiDataSource,\n onUpdateEditedMessageId: _cache[7] || (_cache[7] = ($event) => $data.editedMessageId = $event),\n onEditMessage: _cache[8] || (_cache[8] = ($event) => _ctx.$emit(\"edit-message\", $event)),\n onSendMessage: _cache[9] || (_cache[9] = ($event) => _ctx.$emit(\"send-message\", $event)),\n onTypingMessage: _cache[10] || (_cache[10] = ($event) => _ctx.$emit(\"typing-message\", $event)),\n onTextareaActionHandler: _cache[11] || (_cache[11] = ($event) => _ctx.$emit(\"textarea-action-handler\", $event))\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"room\", \"room-id\", \"room-message\", \"text-messages\", \"show-send-icon\", \"show-files\", \"show-audio\", \"show-emojis\", \"show-footer\", \"accepted-files\", \"capture-files\", \"multiple-files\", \"textarea-action-enabled\", \"textarea-auto-focus\", \"user-tags-enabled\", \"emojis-suggestion-enabled\", \"templates-text\", \"text-formatting\", \"link-options\", \"audio-bit-rate\", \"audio-sample-rate\", \"init-reply-message\", \"init-edit-message\", \"dropped-files\", \"emoji-data-source\"])\n ], 544)), [\n [vShow, $props.isMobile && !$props.showRoomsList || !$props.isMobile || $props.singleRoom]\n ]);\n}\nvar Room = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2]]);\nconst _sfc_main$1 = {\n name: \"MediaPreview\",\n components: {\n SvgIcon\n },\n props: {\n file: { type: Object, required: true }\n },\n emits: [\"close-media-preview\"],\n computed: {\n isImage() {\n return isImageFile(this.file);\n },\n isVideo() {\n return isVideoFile(this.file);\n }\n },\n mounted() {\n this.$refs.modal.focus();\n },\n methods: {\n closeModal() {\n this.$emit(\"close-media-preview\");\n }\n }\n};\nconst _hoisted_1$1 = {\n key: 0,\n class: \"vac-media-preview-container\"\n};\nconst _hoisted_2 = {\n key: 1,\n class: \"vac-media-preview-container\"\n};\nconst _hoisted_3 = {\n controls: \"\",\n autoplay: \"\"\n};\nconst _hoisted_4 = [\"src\"];\nconst _hoisted_5 = { class: \"vac-svg-button\" };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n return openBlock(), createElementBlock(\"div\", {\n ref: \"modal\",\n tabindex: \"0\",\n class: \"vac-media-preview\",\n onClick: _cache[0] || (_cache[0] = withModifiers((...args) => $options.closeModal && $options.closeModal(...args), [\"stop\"])),\n onKeydown: _cache[1] || (_cache[1] = withKeys((...args) => $options.closeModal && $options.closeModal(...args), [\"esc\"]))\n }, [\n createVNode(Transition, {\n name: \"vac-bounce-preview\",\n appear: \"\"\n }, {\n default: withCtx(() => [\n $options.isImage ? (openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n createBaseVNode(\"div\", {\n class: \"vac-image-preview\",\n style: normalizeStyle({\n \"background-image\": `url('${$props.file.url}')`\n })\n }, null, 4)\n ])) : $options.isVideo ? (openBlock(), createElementBlock(\"div\", _hoisted_2, [\n createBaseVNode(\"video\", _hoisted_3, [\n createBaseVNode(\"source\", {\n src: $props.file.url\n }, null, 8, _hoisted_4)\n ])\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n createBaseVNode(\"div\", _hoisted_5, [\n renderSlot(_ctx.$slots, \"preview-close-icon\", {}, () => [\n createVNode(_component_svg_icon, {\n name: \"close-outline\",\n param: \"preview\"\n })\n ])\n ])\n ], 544);\n}\nvar MediaPreview = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1]]);\nvar locales = {\n ROOMS_EMPTY: \"No rooms\",\n ROOM_EMPTY: \"No room selected\",\n NEW_MESSAGES: \"New Messages\",\n MESSAGE_DELETED: \"This message was deleted\",\n MESSAGES_EMPTY: \"No messages\",\n CONVERSATION_STARTED: \"Conversation started on:\",\n TYPE_MESSAGE: \"Type message\",\n SEARCH: \"Search\",\n IS_ONLINE: \"is online\",\n LAST_SEEN: \"last seen \",\n IS_TYPING: \"is writing...\",\n CANCEL_SELECT_MESSAGE: \"Cancel\"\n};\nconst defaultThemeStyles = {\n light: {\n general: {\n color: \"#0a0a0a\",\n colorButtonClear: \"#1976d2\",\n colorButton: \"#fff\",\n backgroundColorButton: \"#1976d2\",\n backgroundInput: \"#fff\",\n colorPlaceholder: \"#9ca6af\",\n colorCaret: \"#1976d2\",\n colorSpinner: \"#333\",\n borderStyle: \"1px solid #e1e4e8\",\n backgroundScrollIcon: \"#fff\"\n },\n container: {\n border: \"none\",\n borderRadius: \"4px\",\n boxShadow: \"0px 1px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)\"\n },\n header: {\n background: \"#fff\",\n colorRoomName: \"#0a0a0a\",\n colorRoomInfo: \"#9ca6af\"\n },\n footer: {\n background: \"#f8f9fa\",\n borderStyleInput: \"1px solid #e1e4e8\",\n borderInputSelected: \"#1976d2\",\n backgroundReply: \"#e5e5e6\",\n backgroundTagActive: \"#e5e5e6\",\n backgroundTag: \"#f8f9fa\"\n },\n content: {\n background: \"#f8f9fa\"\n },\n sidemenu: {\n background: \"#fff\",\n backgroundHover: \"#f6f6f6\",\n backgroundActive: \"#e5effa\",\n colorActive: \"#1976d2\",\n borderColorSearch: \"#e1e5e8\"\n },\n dropdown: {\n background: \"#fff\",\n backgroundHover: \"#f6f6f6\"\n },\n message: {\n background: \"#fff\",\n backgroundMe: \"#ccf2cf\",\n color: \"#0a0a0a\",\n colorStarted: \"#9ca6af\",\n backgroundDeleted: \"#dadfe2\",\n backgroundSelected: \"#c2dcf2\",\n colorDeleted: \"#757e85\",\n colorUsername: \"#9ca6af\",\n colorTimestamp: \"#828c94\",\n backgroundDate: \"#e5effa\",\n colorDate: \"#505a62\",\n backgroundSystem: \"#e5effa\",\n colorSystem: \"#505a62\",\n backgroundMedia: \"rgba(0, 0, 0, 0.15)\",\n backgroundReply: \"rgba(0, 0, 0, 0.08)\",\n colorReplyUsername: \"#0a0a0a\",\n colorReply: \"#6e6e6e\",\n colorTag: \"#0d579c\",\n backgroundImage: \"#ddd\",\n colorNewMessages: \"#1976d2\",\n backgroundScrollCounter: \"#0696c7\",\n colorScrollCounter: \"#fff\",\n backgroundReaction: \"#eee\",\n borderStyleReaction: \"1px solid #eee\",\n backgroundReactionHover: \"#fff\",\n borderStyleReactionHover: \"1px solid #ddd\",\n colorReactionCounter: \"#0a0a0a\",\n backgroundReactionMe: \"#cfecf5\",\n borderStyleReactionMe: \"1px solid #3b98b8\",\n backgroundReactionHoverMe: \"#cfecf5\",\n borderStyleReactionHoverMe: \"1px solid #3b98b8\",\n colorReactionCounterMe: \"#0b59b3\",\n backgroundAudioRecord: \"#eb4034\",\n backgroundAudioLine: \"rgba(0, 0, 0, 0.15)\",\n backgroundAudioProgress: \"#455247\",\n backgroundAudioProgressSelector: \"#455247\",\n colorFileExtension: \"#757e85\"\n },\n markdown: {\n background: \"rgba(239, 239, 239, 0.7)\",\n border: \"rgba(212, 212, 212, 0.9)\",\n color: \"#e01e5a\",\n colorMulti: \"#0a0a0a\"\n },\n room: {\n colorUsername: \"#0a0a0a\",\n colorMessage: \"#67717a\",\n colorTimestamp: \"#a2aeb8\",\n colorStateOnline: \"#4caf50\",\n colorStateOffline: \"#9ca6af\",\n backgroundCounterBadge: \"#0696c7\",\n colorCounterBadge: \"#fff\"\n },\n emoji: {\n background: \"#fff\"\n },\n icons: {\n search: \"#9ca6af\",\n add: \"#1976d2\",\n toggle: \"#0a0a0a\",\n menu: \"#0a0a0a\",\n close: \"#9ca6af\",\n closeImage: \"#fff\",\n file: \"#1976d2\",\n paperclip: \"#1976d2\",\n closeOutline: \"#000\",\n closePreview: \"#fff\",\n send: \"#1976d2\",\n sendDisabled: \"#9ca6af\",\n emoji: \"#1976d2\",\n emojiReaction: \"rgba(0, 0, 0, 0.3)\",\n document: \"#1976d2\",\n pencil: \"#9e9e9e\",\n checkmark: \"#9e9e9e\",\n checkmarkSeen: \"#0696c7\",\n eye: \"#fff\",\n dropdownMessage: \"#fff\",\n dropdownMessageBackground: \"rgba(0, 0, 0, 0.25)\",\n dropdownRoom: \"#9e9e9e\",\n dropdownScroll: \"#0a0a0a\",\n microphone: \"#1976d2\",\n audioPlay: \"#455247\",\n audioPause: \"#455247\",\n audioCancel: \"#eb4034\",\n audioConfirm: \"#1ba65b\"\n }\n },\n dark: {\n general: {\n color: \"#fff\",\n colorButtonClear: \"#fff\",\n colorButton: \"#fff\",\n backgroundColorButton: \"#1976d2\",\n backgroundInput: \"#202223\",\n colorPlaceholder: \"#596269\",\n colorCaret: \"#fff\",\n colorSpinner: \"#fff\",\n borderStyle: \"none\",\n backgroundScrollIcon: \"#fff\"\n },\n container: {\n border: \"none\",\n borderRadius: \"4px\",\n boxShadow: \"0px 1px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)\"\n },\n header: {\n background: \"#181a1b\",\n colorRoomName: \"#fff\",\n colorRoomInfo: \"#9ca6af\"\n },\n footer: {\n background: \"#131415\",\n borderStyleInput: \"none\",\n borderInputSelected: \"#1976d2\",\n backgroundReply: \"#1b1c1c\",\n backgroundTagActive: \"#1b1c1c\",\n backgroundTag: \"#131415\"\n },\n content: {\n background: \"#131415\"\n },\n sidemenu: {\n background: \"#181a1b\",\n backgroundHover: \"#202224\",\n backgroundActive: \"#151617\",\n colorActive: \"#fff\",\n borderColorSearch: \"#181a1b\"\n },\n dropdown: {\n background: \"#2a2c33\",\n backgroundHover: \"#26282e\"\n },\n message: {\n background: \"#22242a\",\n backgroundMe: \"#1f7e80\",\n color: \"#fff\",\n colorStarted: \"#9ca6af\",\n backgroundDeleted: \"#1b1c21\",\n backgroundSelected: \"#c2dcf2\",\n colorDeleted: \"#a2a5a8\",\n colorUsername: \"#b3bac9\",\n colorTimestamp: \"#ebedf2\",\n backgroundDate: \"rgba(0, 0, 0, 0.3)\",\n colorDate: \"#bec5cc\",\n backgroundSystem: \"rgba(0, 0, 0, 0.3)\",\n colorSystem: \"#bec5cc\",\n backgroundMedia: \"rgba(0, 0, 0, 0.18)\",\n backgroundReply: \"rgba(0, 0, 0, 0.18)\",\n colorReplyUsername: \"#fff\",\n colorReply: \"#d6d6d6\",\n colorTag: \"#f0c60a\",\n backgroundImage: \"#ddd\",\n colorNewMessages: \"#fff\",\n backgroundScrollCounter: \"#1976d2\",\n colorScrollCounter: \"#fff\",\n backgroundReaction: \"none\",\n borderStyleReaction: \"none\",\n backgroundReactionHover: \"#202223\",\n borderStyleReactionHover: \"none\",\n colorReactionCounter: \"#fff\",\n backgroundReactionMe: \"#4e9ad1\",\n borderStyleReactionMe: \"none\",\n backgroundReactionHoverMe: \"#4e9ad1\",\n borderStyleReactionHoverMe: \"none\",\n colorReactionCounterMe: \"#fff\",\n backgroundAudioRecord: \"#eb4034\",\n backgroundAudioLine: \"rgba(255, 255, 255, 0.15)\",\n backgroundAudioProgress: \"#b7d4d3\",\n backgroundAudioProgressSelector: \"#b7d4d3\",\n colorFileExtension: \"#a2a5a8\"\n },\n markdown: {\n background: \"rgba(239, 239, 239, 0.7)\",\n border: \"rgba(212, 212, 212, 0.9)\",\n color: \"#e01e5a\",\n colorMulti: \"#0a0a0a\"\n },\n room: {\n colorUsername: \"#fff\",\n colorMessage: \"#6c7278\",\n colorTimestamp: \"#6c7278\",\n colorStateOnline: \"#4caf50\",\n colorStateOffline: \"#596269\",\n backgroundCounterBadge: \"#1976d2\",\n colorCounterBadge: \"#fff\"\n },\n emoji: {\n background: \"#343740\"\n },\n icons: {\n search: \"#596269\",\n add: \"#fff\",\n toggle: \"#fff\",\n menu: \"#fff\",\n close: \"#9ca6af\",\n closeImage: \"#fff\",\n file: \"#1976d2\",\n paperclip: \"#fff\",\n closeOutline: \"#fff\",\n closePreview: \"#fff\",\n send: \"#fff\",\n sendDisabled: \"#646a70\",\n emoji: \"#fff\",\n emojiReaction: \"#fff\",\n document: \"#1976d2\",\n pencil: \"#ebedf2\",\n checkmark: \"#ebedf2\",\n checkmarkSeen: \"#f0d90a\",\n eye: \"#fff\",\n dropdownMessage: \"#fff\",\n dropdownMessageBackground: \"rgba(0, 0, 0, 0.25)\",\n dropdownRoom: \"#fff\",\n dropdownScroll: \"#0a0a0a\",\n microphone: \"#fff\",\n audioPlay: \"#b7d4d3\",\n audioPause: \"#b7d4d3\",\n audioCancel: \"#eb4034\",\n audioConfirm: \"#1ba65b\"\n }\n }\n};\nconst cssThemeVars = ({\n general,\n container,\n header,\n footer,\n sidemenu,\n content: content2,\n dropdown,\n message,\n markdown: markdown2,\n room,\n emoji,\n icons\n}) => {\n return {\n \"--chat-color\": general.color,\n \"--chat-color-button-clear\": general.colorButtonClear,\n \"--chat-color-button\": general.colorButton,\n \"--chat-bg-color-button\": general.backgroundColorButton,\n \"--chat-bg-color-input\": general.backgroundInput,\n \"--chat-color-spinner\": general.colorSpinner,\n \"--chat-color-placeholder\": general.colorPlaceholder,\n \"--chat-color-caret\": general.colorCaret,\n \"--chat-border-style\": general.borderStyle,\n \"--chat-bg-scroll-icon\": general.backgroundScrollIcon,\n \"--chat-container-border\": container.border,\n \"--chat-container-border-radius\": container.borderRadius,\n \"--chat-container-box-shadow\": container.boxShadow,\n \"--chat-header-bg-color\": header.background,\n \"--chat-header-color-name\": header.colorRoomName,\n \"--chat-header-color-info\": header.colorRoomInfo,\n \"--chat-footer-bg-color\": footer.background,\n \"--chat-border-style-input\": footer.borderStyleInput,\n \"--chat-border-color-input-selected\": footer.borderInputSelected,\n \"--chat-footer-bg-color-reply\": footer.backgroundReply,\n \"--chat-footer-bg-color-tag-active\": footer.backgroundTagActive,\n \"--chat-footer-bg-color-tag\": footer.backgroundTag,\n \"--chat-content-bg-color\": content2.background,\n \"--chat-sidemenu-bg-color\": sidemenu.background,\n \"--chat-sidemenu-bg-color-hover\": sidemenu.backgroundHover,\n \"--chat-sidemenu-bg-color-active\": sidemenu.backgroundActive,\n \"--chat-sidemenu-color-active\": sidemenu.colorActive,\n \"--chat-sidemenu-border-color-search\": sidemenu.borderColorSearch,\n \"--chat-dropdown-bg-color\": dropdown.background,\n \"--chat-dropdown-bg-color-hover\": dropdown.backgroundHover,\n \"--chat-message-bg-color\": message.background,\n \"--chat-message-bg-color-me\": message.backgroundMe,\n \"--chat-message-color-started\": message.colorStarted,\n \"--chat-message-bg-color-deleted\": message.backgroundDeleted,\n \"--chat-message-bg-color-selected\": message.backgroundSelected,\n \"--chat-message-color-deleted\": message.colorDeleted,\n \"--chat-message-color-username\": message.colorUsername,\n \"--chat-message-color-timestamp\": message.colorTimestamp,\n \"--chat-message-bg-color-date\": message.backgroundDate,\n \"--chat-message-color-date\": message.colorDate,\n \"--chat-message-bg-color-system\": message.backgroundSystem,\n \"--chat-message-color-system\": message.colorSystem,\n \"--chat-message-color\": message.color,\n \"--chat-message-bg-color-media\": message.backgroundMedia,\n \"--chat-message-bg-color-reply\": message.backgroundReply,\n \"--chat-message-color-reply-username\": message.colorReplyUsername,\n \"--chat-message-color-reply-content\": message.colorReply,\n \"--chat-message-color-tag\": message.colorTag,\n \"--chat-message-bg-color-image\": message.backgroundImage,\n \"--chat-message-color-new-messages\": message.colorNewMessages,\n \"--chat-message-bg-color-scroll-counter\": message.backgroundScrollCounter,\n \"--chat-message-color-scroll-counter\": message.colorScrollCounter,\n \"--chat-message-bg-color-reaction\": message.backgroundReaction,\n \"--chat-message-border-style-reaction\": message.borderStyleReaction,\n \"--chat-message-bg-color-reaction-hover\": message.backgroundReactionHover,\n \"--chat-message-border-style-reaction-hover\": message.borderStyleReactionHover,\n \"--chat-message-color-reaction-counter\": message.colorReactionCounter,\n \"--chat-message-bg-color-reaction-me\": message.backgroundReactionMe,\n \"--chat-message-border-style-reaction-me\": message.borderStyleReactionMe,\n \"--chat-message-bg-color-reaction-hover-me\": message.backgroundReactionHoverMe,\n \"--chat-message-border-style-reaction-hover-me\": message.borderStyleReactionHoverMe,\n \"--chat-message-color-reaction-counter-me\": message.colorReactionCounterMe,\n \"--chat-message-bg-color-audio-record\": message.backgroundAudioRecord,\n \"--chat-message-bg-color-audio-line\": message.backgroundAudioLine,\n \"--chat-message-bg-color-audio-progress\": message.backgroundAudioProgress,\n \"--chat-message-bg-color-audio-progress-selector\": message.backgroundAudioProgressSelector,\n \"--chat-message-color-file-extension\": message.colorFileExtension,\n \"--chat-markdown-bg\": markdown2.background,\n \"--chat-markdown-border\": markdown2.border,\n \"--chat-markdown-color\": markdown2.color,\n \"--chat-markdown-color-multi\": markdown2.colorMulti,\n \"--chat-room-color-username\": room.colorUsername,\n \"--chat-room-color-message\": room.colorMessage,\n \"--chat-room-color-timestamp\": room.colorTimestamp,\n \"--chat-room-color-online\": room.colorStateOnline,\n \"--chat-room-color-offline\": room.colorStateOffline,\n \"--chat-room-bg-color-badge\": room.backgroundCounterBadge,\n \"--chat-room-color-badge\": room.colorCounterBadge,\n \"--chat-emoji-bg-color\": emoji.background,\n \"--chat-icon-color-search\": icons.search,\n \"--chat-icon-color-add\": icons.add,\n \"--chat-icon-color-toggle\": icons.toggle,\n \"--chat-icon-color-menu\": icons.menu,\n \"--chat-icon-color-close\": icons.close,\n \"--chat-icon-color-close-image\": icons.closeImage,\n \"--chat-icon-color-file\": icons.file,\n \"--chat-icon-color-paperclip\": icons.paperclip,\n \"--chat-icon-color-close-outline\": icons.closeOutline,\n \"--chat-icon-color-close-preview\": icons.closePreview,\n \"--chat-icon-color-send\": icons.send,\n \"--chat-icon-color-send-disabled\": icons.sendDisabled,\n \"--chat-icon-color-emoji\": icons.emoji,\n \"--chat-icon-color-emoji-reaction\": icons.emojiReaction,\n \"--chat-icon-color-document\": icons.document,\n \"--chat-icon-color-pencil\": icons.pencil,\n \"--chat-icon-color-checkmark\": icons.checkmark,\n \"--chat-icon-color-checkmark-seen\": icons.checkmarkSeen,\n \"--chat-icon-color-eye\": icons.eye,\n \"--chat-icon-color-dropdown-message\": icons.dropdownMessage,\n \"--chat-icon-bg-dropdown-message\": icons.dropdownMessageBackground,\n \"--chat-icon-color-dropdown-room\": icons.dropdownRoom,\n \"--chat-icon-color-dropdown-scroll\": icons.dropdownScroll,\n \"--chat-icon-color-microphone\": icons.microphone,\n \"--chat-icon-color-audio-play\": icons.audioPlay,\n \"--chat-icon-color-audio-pause\": icons.audioPause,\n \"--chat-icon-color-audio-cancel\": icons.audioCancel,\n \"--chat-icon-color-audio-confirm\": icons.audioConfirm\n };\n};\nvar _style_0 = '.vac-fade-spinner-enter-from{opacity:0}.vac-fade-spinner-enter-active{transition:opacity .8s}.vac-fade-spinner-leave-active{transition:opacity .2s;opacity:0}.vac-fade-image-enter-from{opacity:0}.vac-fade-image-enter-active{transition:opacity 1s}.vac-fade-image-leave-active{transition:opacity .5s;opacity:0}.vac-fade-message-enter-from{opacity:0}.vac-fade-message-enter-active{transition:opacity .5s}.vac-fade-message-leave-active{transition:opacity .2s;opacity:0}.vac-slide-left-enter-active,.vac-slide-right-enter-active{transition:all .3s ease;transition-property:transform,opacity}.vac-slide-left-leave-active,.vac-slide-right-leave-active{transition:all .2s cubic-bezier(1,.5,.8,1)!important;transition-property:transform,opacity}.vac-slide-left-enter-from,.vac-slide-left-leave-to{transform:translate(10px);opacity:0}.vac-slide-right-enter-from,.vac-slide-right-leave-to{transform:translate(-10px);opacity:0}.vac-slide-up-enter-active{transition:all .3s ease}.vac-slide-up-leave-active{transition:all .2s cubic-bezier(1,.5,.8,1)}.vac-slide-up-enter-from,.vac-slide-up-leave-to{transform:translateY(10px);opacity:0}.vac-bounce-enter-active{animation:vac-bounce-in .5s}.vac-bounce-leave-active{animation:vac-bounce-in .3s reverse}@keyframes vac-bounce-in{0%{transform:scale(0)}50%{transform:scale(1.05)}to{transform:scale(1)}}.vac-fade-preview-enter{opacity:0}.vac-fade-preview-enter-active{transition:opacity .1s}.vac-fade-preview-leave-active{transition:opacity .2s;opacity:0}.vac-bounce-preview-enter-active{animation:vac-bounce-image-in .4s}.vac-bounce-preview-leave-active{animation:vac-bounce-image-in .3s reverse}@keyframes vac-bounce-image-in{0%{transform:scale(.6)}to{transform:scale(1)}}.vac-menu-list{border-radius:4px;display:block;cursor:pointer;background:var(--chat-dropdown-bg-color);padding:6px 0}.vac-menu-list :hover{background:var(--chat-dropdown-bg-color-hover);transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-menu-list :not(:hover){transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-menu-item{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1 1 100%;flex:1 1 100%;min-height:30px;padding:5px 16px;position:relative;white-space:nowrap;line-height:30px}.vac-menu-options{position:absolute;right:10px;top:20px;z-index:9999;min-width:150px;display:inline-block;border-radius:4px;font-size:14px;color:var(--chat-color);overflow-y:auto;overflow-x:hidden;contain:content;box-shadow:0 2px 2px -4px #0000001a,0 2px 2px 1px #0000001f,0 1px 8px 1px #0000001f}.vac-app-border{border:var(--chat-border-style)}.vac-app-border-t{border-top:var(--chat-border-style)}.vac-app-border-r{border-right:var(--chat-border-style)}.vac-app-border-b{border-bottom:var(--chat-border-style)}.vac-app-box-shadow{transition:all .5s;box-shadow:0 2px 2px -4px #0000001a,0 2px 2px 1px #0000001f,0 1px 8px 1px #0000001f}.vac-item-clickable{cursor:pointer}.vac-vertical-center{display:flex;align-items:center;height:100%}.vac-vertical-center .vac-vertical-container{width:100%;text-align:center}.vac-svg-button{max-height:30px;display:flex;cursor:pointer;transition:all .2s}.vac-svg-button:hover{transform:scale(1.1);opacity:.7}.vac-avatar{background-size:cover;background-position:center center;background-repeat:no-repeat;background-color:#ddd;height:42px;width:42px;min-height:42px;min-width:42px;margin-right:15px;border-radius:50%}.vac-blur-loading{filter:blur(3px)}.vac-badge-counter{height:13px;width:auto;min-width:13px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:3px;font-size:11px;font-weight:500}.vac-text-ellipsis{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vac-text-tag{color:var(--chat-message-color-tag);cursor:pointer}.vac-file-container{display:flex;align-content:center;justify-content:center;flex-wrap:wrap;text-align:center;background:var(--chat-bg-color-input);border:var(--chat-border-style-input);border-radius:4px;padding:10px}.vac-file-container svg{height:28px;width:28px}.vac-file-container .vac-text-extension{font-size:12px;color:var(--chat-message-color-file-extension);margin-top:-2px}.markdown p{margin:0}.markdown ol{display:flex;flex-direction:column;list-style-position:inside}.markdown ul{display:flex;flex-direction:column}.markdown code{display:block;font-size:12px;color:var(--chat-markdown-color-multi);background:var(--chat-markdown-bg);border:1px solid var(--chat-markdown-border);border-radius:3px;margin:4px 0;padding:7px}.markdown p code{display:inline-block;font-size:12px;color:var(--chat-markdown-color);background:var(--chat-markdown-bg);border:1px solid var(--chat-markdown-border);border-radius:3px;margin:2px 0;padding:2px 3px}.vac-card-window{width:100%;display:block;max-width:100%;background:var(--chat-content-bg-color);color:var(--chat-color);overflow-wrap:break-word;white-space:normal;border:var(--chat-container-border);border-radius:var(--chat-container-border-radius);box-shadow:var(--chat-container-box-shadow);-webkit-tap-highlight-color:transparent}.vac-card-window *{font-family:inherit}.vac-card-window a{color:#0d579c;font-weight:500}.vac-card-window .vac-chat-container{height:100%;display:flex}.vac-card-window .vac-chat-container input{min-width:10px}.vac-card-window .vac-chat-container textarea,.vac-card-window .vac-chat-container input[type=text],.vac-card-window .vac-chat-container input[type=search]{-webkit-appearance:none}.vac-media-preview{position:fixed;top:0;left:0;z-index:99;width:100vw;height:100vh;display:flex;align-items:center;background-color:#000c;outline:none}.vac-media-preview .vac-media-preview-container{height:calc(100% - 140px);width:calc(100% - 80px);padding:70px 40px;margin:0 auto}.vac-media-preview .vac-image-preview{width:100%;height:100%;background-size:contain;background-repeat:no-repeat;background-position:center}.vac-media-preview video{width:100%;height:100%}.vac-media-preview .vac-svg-button{position:absolute;top:30px;right:30px;transform:scale(1.4)}@media only screen and (max-width: 768px){.vac-media-preview .vac-svg-button{top:20px;right:20px;transform:scale(1.2)}.vac-media-preview .vac-media-preview-container{width:calc(100% - 40px);padding:70px 20px}}.vac-col-messages{position:relative;height:100%;flex:1;overflow:hidden;display:flex;flex-flow:column}.vac-col-messages .vac-container-center{height:100%;width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.vac-col-messages .vac-room-empty{font-size:14px;color:#9ca6af;font-style:italic;line-height:20px;white-space:pre-line}.vac-col-messages .vac-room-empty div{padding:0 10%}.vac-col-messages .vac-container-scroll{background:var(--chat-content-bg-color);flex:1;overflow-y:auto;margin-right:1px;margin-top:65px;-webkit-overflow-scrolling:touch}.vac-col-messages .vac-container-scroll.vac-scroll-smooth{scroll-behavior:smooth}.vac-col-messages .vac-messages-container{padding:0 5px 5px}.vac-col-messages .vac-text-started{font-size:14px;color:var(--chat-message-color-started);font-style:italic;text-align:center;margin-top:25px;margin-bottom:20px}.vac-col-messages .vac-icon-scroll{position:absolute;bottom:80px;right:20px;padding:8px;background:var(--chat-bg-scroll-icon);border-radius:50%;box-shadow:0 1px 1px -1px #0003,0 1px 1px #00000024,0 1px 2px #0000001f;display:flex;cursor:pointer;z-index:10}.vac-col-messages .vac-icon-scroll svg{height:25px;width:25px}.vac-col-messages .vac-messages-count{position:absolute;top:-8px;left:11px;background-color:var(--chat-message-bg-color-scroll-counter);color:var(--chat-message-color-scroll-counter)}.vac-col-messages .vac-messages-hidden{opacity:0}@media only screen and (max-width: 768px){.vac-col-messages .vac-container-scroll{margin-top:50px}.vac-col-messages .vac-text-started{margin-top:20px}.vac-col-messages .vac-icon-scroll{bottom:70px}}.vac-room-header{position:absolute;display:flex;align-items:center;height:64px;width:100%;z-index:10;margin-right:1px;background:var(--chat-header-bg-color);border-top-right-radius:var(--chat-container-border-radius)}.vac-room-header .vac-room-wrapper{display:flex;align-items:center;min-width:0;height:100%;width:100%;padding:0 16px}.vac-room-header .vac-toggle-button{margin-right:15px}.vac-room-header .vac-toggle-button svg{height:26px;width:26px}.vac-room-header .vac-rotate-icon{transform:rotate(180deg)!important}.vac-room-header .vac-rotate-icon-init{transform:rotate(360deg)}.vac-room-header .vac-info-wrapper,.vac-room-header .vac-room-selection{display:flex;align-items:center;min-width:0;width:100%;height:100%}.vac-room-header .vac-room-selection .vac-selection-button{padding:8px 16px;color:var(--chat-color-button);background-color:var(--chat-bg-color-button);border-radius:4px;margin-right:10px;cursor:pointer;transition:all .2s}.vac-room-header .vac-room-selection .vac-selection-button:hover{opacity:.7}.vac-room-header .vac-room-selection .vac-selection-button:active{opacity:.9}.vac-room-header .vac-room-selection .vac-selection-button .vac-selection-button-count{margin-left:6px;opacity:.9}.vac-room-header .vac-room-selection .vac-selection-cancel{display:flex;align-items:center;margin-left:auto;white-space:nowrap;color:var(--chat-color-button-clear);transition:all .2s}.vac-room-header .vac-room-selection .vac-selection-cancel:hover{opacity:.7}.vac-room-header .vac-room-name{font-size:17px;font-weight:500;line-height:22px;color:var(--chat-header-color-name)}.vac-room-header .vac-room-info{font-size:13px;line-height:18px;color:var(--chat-header-color-info)}.vac-room-header .vac-room-options{margin-left:auto}@media only screen and (max-width: 768px){.vac-room-header{height:50px}.vac-room-header .vac-room-wrapper{padding:0 10px}.vac-room-header .vac-room-name{font-size:16px;line-height:22px}.vac-room-header .vac-room-info{font-size:12px;line-height:16px}.vac-room-header .vac-avatar{height:37px;width:37px;min-height:37px;min-width:37px}}.vac-room-footer{width:100%;border-bottom-right-radius:4px;z-index:10}.vac-box-footer{display:flex;position:relative;background:var(--chat-footer-bg-color);padding:10px 8px}.vac-textarea{max-height:300px;overflow-y:auto;height:20px;width:100%;line-height:20px;outline:0;resize:none;border-radius:20px;padding:12px 16px;box-sizing:content-box;font-size:16px;background:var(--chat-bg-color-input);color:var(--chat-color);caret-color:var(--chat-color-caret);border:var(--chat-border-style-input)}.vac-textarea::placeholder{color:var(--chat-color-placeholder);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vac-textarea-outline{border:1px solid var(--chat-border-color-input-selected);box-shadow:inset 0 0 0 1px var(--chat-border-color-input-selected)}.vac-icon-textarea,.vac-icon-textarea-left{display:flex;align-items:center}.vac-icon-textarea svg,.vac-icon-textarea .vac-wrapper,.vac-icon-textarea-left svg,.vac-icon-textarea-left .vac-wrapper{margin:0 7px}.vac-icon-textarea{margin-left:5px}.vac-icon-textarea-left{display:flex;align-items:center;margin-right:5px}.vac-icon-textarea-left svg,.vac-icon-textarea-left .vac-wrapper{margin:0 7px}.vac-icon-textarea-left .vac-icon-microphone{fill:var(--chat-icon-color-microphone);margin:0 7px}.vac-icon-textarea-left .vac-dot-audio-record{height:15px;width:15px;border-radius:50%;background-color:var(--chat-message-bg-color-audio-record);animation:vac-scaling .8s ease-in-out infinite alternate}@keyframes vac-scaling{0%{transform:scale(1);opacity:.4}to{transform:scale(1.1);opacity:1}}.vac-icon-textarea-left .vac-dot-audio-record-time{font-size:16px;color:var(--chat-color);margin-left:8px;width:45px}.vac-icon-textarea-left .vac-icon-audio-stop,.vac-icon-textarea-left .vac-icon-audio-confirm{min-height:28px;min-width:28px}.vac-icon-textarea-left .vac-icon-audio-stop svg,.vac-icon-textarea-left .vac-icon-audio-confirm svg{min-height:28px;min-width:28px}.vac-icon-textarea-left .vac-icon-audio-stop{margin-right:20px}.vac-icon-textarea-left .vac-icon-audio-stop #vac-icon-close-outline{fill:var(--chat-icon-color-audio-cancel)}.vac-icon-textarea-left .vac-icon-audio-confirm{margin-right:3px;margin-left:12px}.vac-icon-textarea-left .vac-icon-audio-confirm #vac-icon-checkmark{fill:var(--chat-icon-color-audio-confirm)}.vac-send-disabled,.vac-send-disabled svg{cursor:none!important;pointer-events:none!important;transform:none!important}@media only screen and (max-width: 768px){.vac-room-footer{width:100%}.vac-box-footer{padding:7px 2px 7px 7px}.vac-box-footer.vac-box-footer-border{border-top:var(--chat-border-style-input)}.vac-textarea{padding:7px;line-height:18px}.vac-textarea::placeholder{color:transparent}.vac-icon-textarea svg,.vac-icon-textarea .vac-wrapper,.vac-icon-textarea-left svg,.vac-icon-textarea-left .vac-wrapper{margin:0 5px!important}}@media only screen and (max-height: 768px){.vac-textarea{max-height:120px}}.vac-emojis-container{width:calc(100% - 16px);padding:10px 8px;background:var(--chat-footer-bg-color);display:flex;align-items:center;overflow:auto}.vac-emojis-container .vac-emoji-element{padding:0 8px;font-size:30px;border-radius:4px;cursor:pointer;background:var(--chat-footer-bg-color-tag);transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-emojis-container .vac-emoji-element-active{background:var(--chat-footer-bg-color-tag-active)}@media only screen and (max-width: 768px){.vac-emojis-container{width:calc(100% - 10px);padding:7px 5px}.vac-emojis-container .vac-emoji-element{padding:0 7px;font-size:26px}}.vac-reply-container{display:flex;padding:10px 10px 0;background:var(--chat-footer-bg-color);align-items:center;width:calc(100% - 20px)}.vac-reply-container .vac-reply-box{width:100%;overflow:hidden;background:var(--chat-footer-bg-color-reply);border-radius:4px;padding:8px 10px}.vac-reply-container .vac-reply-info{overflow:hidden}.vac-reply-container .vac-reply-username{color:var(--chat-message-color-reply-username);font-size:12px;line-height:15px;margin-bottom:2px}.vac-reply-container .vac-reply-content{font-size:12px;color:var(--chat-message-color-reply-content);white-space:pre-line}.vac-reply-container .vac-icon-reply{margin-left:10px}.vac-reply-container .vac-icon-reply svg{height:20px;width:20px}.vac-reply-container .vac-image-reply{max-height:100px;max-width:200px;margin:4px 10px 0 0;border-radius:4px}.vac-reply-container .vac-audio-reply{margin-right:10px}.vac-reply-container .vac-file-container{max-width:80px}@media only screen and (max-width: 768px){.vac-reply-container{padding:5px 8px;width:calc(100% - 16px)}}.vac-room-files-container{display:flex;align-items:center;padding:10px 6px 0;background:var(--chat-footer-bg-color)}.vac-room-files-container .vac-files-box{display:flex;overflow:auto;width:calc(100% - 30px)}.vac-room-files-container video{height:100px;border:var(--chat-border-style-input);border-radius:4px}.vac-room-files-container .vac-icon-close{margin-left:auto}.vac-room-files-container .vac-icon-close svg{height:20px;width:20px}@media only screen and (max-width: 768px){.vac-files-container{padding:6px 4px 4px 2px}}.vac-room-file-container{display:flex;position:relative;margin:0 4px}.vac-room-file-container .vac-message-image{position:relative;background-color:var(--chat-message-bg-color-image)!important;background-size:cover!important;background-position:center center!important;background-repeat:no-repeat!important;height:100px;width:100px;border:var(--chat-border-style-input);border-radius:4px}.vac-room-file-container .vac-file-container{height:80px;width:80px}.vac-room-file-container .vac-icon-remove{position:absolute;top:6px;left:6px;z-index:10}.vac-room-file-container .vac-icon-remove svg{height:20px;width:20px;border-radius:50%}.vac-room-file-container .vac-icon-remove:before{content:\" \";position:absolute;width:100%;height:100%;background:rgba(0,0,0,.5);border-radius:50%;z-index:-1}.vac-tags-container{display:flex;flex-direction:column;align-items:center;width:100%}.vac-tags-container .vac-tags-box{display:flex;width:100%;height:54px;overflow:hidden;cursor:pointer;background:var(--chat-footer-bg-color-tag);transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-tags-container .vac-tags-box-active{background:var(--chat-footer-bg-color-tag-active)}.vac-tags-container .vac-tags-info{display:flex;overflow:hidden;padding:0 20px;align-items:center}.vac-tags-container .vac-tags-avatar{height:34px;width:34px;min-height:34px;min-width:34px}.vac-tags-container .vac-tags-username{font-size:14px}@media only screen and (max-width: 768px){.vac-tags-container .vac-tags-box{height:50px}.vac-tags-container .vac-tags-info{padding:0 12px}}.vac-template-container{display:flex;flex-direction:column;align-items:center;width:100%}.vac-template-container .vac-template-box{display:flex;width:100%;height:54px;overflow:hidden;cursor:pointer;background:var(--chat-footer-bg-color-tag);transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-template-container .vac-template-active{background:var(--chat-footer-bg-color-tag-active)}.vac-template-container .vac-template-info{display:flex;overflow:hidden;padding:0 20px;align-items:center}.vac-template-container .vac-template-tag{font-size:14px;font-weight:700;margin-right:10px}.vac-template-container .vac-template-text{font-size:14px}@media only screen and (max-width: 768px){.vac-template-container .vac-template-box{height:50px}.vac-template-container .vac-template-info{padding:0 12px}}.vac-rooms-container{display:flex;flex-flow:column;flex:0 0 25%;min-width:260px;max-width:500px;position:relative;background:var(--chat-sidemenu-bg-color);height:100%;border-top-left-radius:var(--chat-container-border-radius);border-bottom-left-radius:var(--chat-container-border-radius)}.vac-rooms-container.vac-rooms-container-full{flex:0 0 100%;max-width:100%}.vac-rooms-container .vac-rooms-empty{font-size:14px;color:#9ca6af;font-style:italic;text-align:center;margin:40px 0;line-height:20px;white-space:pre-line}.vac-rooms-container .vac-room-list{flex:1;position:relative;max-width:100%;padding:0 10px 5px;overflow-y:auto}.vac-rooms-container .vac-room-item{border-radius:8px;align-items:center;display:flex;flex:1 1 100%;margin-bottom:5px;padding:0 14px;position:relative;min-height:71px;transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-rooms-container .vac-room-item:hover{background:var(--chat-sidemenu-bg-color-hover)}.vac-rooms-container .vac-room-item:not(.vac-room-selected){cursor:pointer}.vac-rooms-container .vac-room-selected{color:var(--chat-sidemenu-color-active)!important;background:var(--chat-sidemenu-bg-color-active)!important}.vac-rooms-container .vac-room-selected:hover{background:var(--chat-sidemenu-bg-color-active)!important}@media only screen and (max-width: 768px){.vac-rooms-container .vac-room-list{padding:0 7px 5px}.vac-rooms-container .vac-room-item{min-height:60px;padding:0 8px}}.vac-room-container{display:flex;flex:1;align-items:center;width:100%}.vac-room-container .vac-name-container{flex:1}.vac-room-container .vac-title-container{display:flex;align-items:center;line-height:25px}.vac-room-container .vac-state-circle{width:9px;height:9px;border-radius:50%;background-color:var(--chat-room-color-offline);margin-right:6px;transition:.3s}.vac-room-container .vac-state-online{background-color:var(--chat-room-color-online)}.vac-room-container .vac-room-name{flex:1;color:var(--chat-room-color-username);font-weight:500}.vac-room-container .vac-text-date{margin-left:5px;font-size:11px;color:var(--chat-room-color-timestamp)}.vac-room-container .vac-text-last{display:flex;align-items:center;font-size:12px;line-height:19px;color:var(--chat-room-color-message)}.vac-room-container .vac-message-new{color:var(--chat-room-color-username);font-weight:500}.vac-room-container .vac-icon-check{display:flex;vertical-align:middle;height:14px;width:14px;margin-top:-2px;margin-right:2px}.vac-room-container .vac-icon-microphone{height:15px;width:15px;vertical-align:middle;margin:-3px 1px 0 -2px;fill:var(--chat-room-color-message)}.vac-room-container .vac-room-options-container{display:flex;margin-left:auto}.vac-room-container .vac-room-badge{background-color:var(--chat-room-bg-color-badge);color:var(--chat-room-color-badge);margin-left:5px}.vac-room-container .vac-list-room-options{height:19px;width:19px;align-items:center;margin-left:5px}.vac-box-empty{margin-top:10px}@media only screen and (max-width: 768px){.vac-box-empty{margin-top:7px}}.vac-box-search{position:sticky;display:flex;align-items:center;height:64px;padding:0 15px}.vac-box-search .vac-icon-search{display:flex;position:absolute;left:30px}.vac-box-search .vac-icon-search svg{width:18px;height:18px}.vac-box-search .vac-input{height:38px;width:100%;background:var(--chat-bg-color-input);color:var(--chat-color);font-size:15px;outline:0;caret-color:var(--chat-color-caret);padding:10px 10px 10px 40px;border:1px solid var(--chat-sidemenu-border-color-search);border-radius:20px}.vac-box-search .vac-input::placeholder{color:var(--chat-color-placeholder)}.vac-box-search .vac-add-icon{margin-left:auto;padding-left:10px}@media only screen and (max-width: 768px){.vac-box-search{height:58px}}.vac-message-wrapper .vac-card-info{border-radius:4px;text-align:center;margin:10px auto;font-size:12px;padding:4px;display:block;overflow-wrap:break-word;position:relative;white-space:normal;box-shadow:0 1px 1px -1px #0000001a,0 1px 1px -1px #0000001c,0 1px 2px -1px #0000001c}.vac-message-wrapper .vac-card-date{max-width:150px;font-weight:500;text-transform:uppercase;color:var(--chat-message-color-date);background-color:var(--chat-message-bg-color-date)}.vac-message-wrapper .vac-card-system{max-width:250px;padding:8px 4px;color:var(--chat-message-color-system);background-color:var(--chat-message-bg-color-system)}.vac-message-wrapper .vac-line-new{color:var(--chat-message-color-new-messages);position:relative;text-align:center;font-size:13px;padding:10px 0}.vac-message-wrapper .vac-line-new:after,.vac-message-wrapper .vac-line-new:before{border-top:1px solid var(--chat-message-color-new-messages);content:\"\";left:0;position:absolute;top:50%;width:calc(50% - 60px)}.vac-message-wrapper .vac-line-new:before{left:auto;right:0}.vac-message-wrapper .vac-message-box{display:flex;flex:0 0 50%;max-width:50%;justify-content:flex-start;line-height:1.4}.vac-message-wrapper .vac-avatar{height:28px;width:28px;min-height:28px;min-width:28px;margin:0 0 2px;align-self:flex-end}.vac-message-wrapper .vac-avatar-current-offset{margin-right:28px}.vac-message-wrapper .vac-avatar-offset{margin-left:28px}.vac-message-wrapper .vac-failure-container{position:relative;align-self:flex-end;height:20px;width:20px;margin:0 0 2px -4px;border-radius:50%;background-color:#f44336}.vac-message-wrapper .vac-failure-container.vac-failure-container-avatar{margin-right:6px}.vac-message-wrapper .vac-failure-container .vac-failure-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:15px;font-weight:700}.vac-message-wrapper .vac-message-container{position:relative;padding:2px 10px;align-items:end;min-width:100px;box-sizing:content-box}.vac-message-wrapper .vac-message-container-offset{margin-top:10px}.vac-message-wrapper .vac-offset-current{margin-left:50%;justify-content:flex-end}.vac-message-wrapper .vac-message-card{background-color:var(--chat-message-bg-color);color:var(--chat-message-color);border-radius:8px;font-size:14px;padding:6px 9px 3px;white-space:pre-line;max-width:100%;-webkit-transition-property:box-shadow,opacity;transition-property:box-shadow,opacity;transition:box-shadow .28s cubic-bezier(.4,0,.2,1);will-change:box-shadow;box-shadow:0 1px 1px -1px #0000001a,0 1px 1px -1px #0000001c,0 1px 2px -1px #0000001c}.vac-message-wrapper .vac-message-highlight{box-shadow:0 1px 2px -1px #0000001a,0 1px 2px -1px #0000001c,0 1px 5px -1px #0000001c}.vac-message-wrapper .vac-message-current{background-color:var(--chat-message-bg-color-me)!important}.vac-message-wrapper .vac-message-deleted{color:var(--chat-message-color-deleted)!important;font-size:13px!important;font-style:italic!important;background-color:var(--chat-message-bg-color-deleted)!important}.vac-message-wrapper .vac-message-selected{background-color:var(--chat-message-bg-color-selected)!important;transition:background-color .2s}.vac-message-wrapper .vac-message-image{position:relative;background-color:var(--chat-message-bg-color-image)!important;background-size:cover!important;background-position:center center!important;background-repeat:no-repeat!important;height:250px;width:250px;max-width:100%;border-radius:4px;margin:4px auto 5px;transition:.4s filter linear}.vac-message-wrapper .vac-text-username{font-size:13px;color:var(--chat-message-color-username);margin-bottom:2px}.vac-message-wrapper .vac-username-reply{margin-bottom:5px}.vac-message-wrapper .vac-text-timestamp{font-size:10px;color:var(--chat-message-color-timestamp);text-align:right}.vac-message-wrapper .vac-progress-time{float:left;margin:-2px 0 0 40px;color:var(--chat-color);font-size:12px}.vac-message-wrapper .vac-icon-edited{-webkit-box-align:center;align-items:center;display:-webkit-inline-box;display:inline-flex;justify-content:center;letter-spacing:normal;line-height:1;text-indent:0;vertical-align:middle;margin:0 4px 2px}.vac-message-wrapper .vac-icon-edited svg{height:12px;width:12px}.vac-message-wrapper .vac-icon-check{height:14px;width:14px;vertical-align:middle;margin:-3px -3px 0 3px}@media only screen and (max-width: 768px){.vac-message-wrapper .vac-message-container{padding:2px 3px 1px}.vac-message-wrapper .vac-message-container-offset{margin-top:10px}.vac-message-wrapper .vac-message-box{flex:0 0 80%;max-width:80%}.vac-message-wrapper .vac-avatar{height:25px;width:25px;min-height:25px;min-width:25px;margin:0 6px 1px 0}.vac-message-wrapper .vac-avatar.vac-avatar-current{margin:0 0 1px 6px}.vac-message-wrapper .vac-avatar-current-offset{margin-right:31px}.vac-message-wrapper .vac-avatar-offset{margin-left:31px}.vac-message-wrapper .vac-failure-container{margin-left:2px}.vac-message-wrapper .vac-failure-container.vac-failure-container-avatar{margin-right:0}.vac-message-wrapper .vac-offset-current{margin-left:20%}.vac-message-wrapper .vac-progress-time{margin-left:37px}}.vac-audio-player{display:flex;margin:8px 0 5px}.vac-audio-player .vac-svg-button{max-width:18px;margin-left:7px}@media only screen and (max-width: 768px){.vac-audio-player{margin:4px 0 0}.vac-audio-player .vac-svg-button{max-width:16px;margin-left:5px}}.vac-player-bar{display:flex;align-items:center;max-width:calc(100% - 18px);margin-right:7px;margin-left:20px}.vac-player-bar .vac-player-progress{width:190px}.vac-player-bar .vac-player-progress .vac-line-container{position:relative;height:4px;border-radius:5px;background-color:var(--chat-message-bg-color-audio-line)}.vac-player-bar .vac-player-progress .vac-line-container .vac-line-progress{position:absolute;height:inherit;background-color:var(--chat-message-bg-color-audio-progress);border-radius:inherit}.vac-player-bar .vac-player-progress .vac-line-container .vac-line-dot{position:absolute;top:-5px;margin-left:-7px;height:14px;width:14px;border-radius:50%;background-color:var(--chat-message-bg-color-audio-progress-selector);transition:transform .25s}.vac-player-bar .vac-player-progress .vac-line-container .vac-line-dot__active{transform:scale(1.2)}@media only screen and (max-width: 768px){.vac-player-bar{margin-right:5px}.vac-player-bar .vac-player-progress .vac-line-container{height:3px}.vac-player-bar .vac-player-progress .vac-line-container .vac-line-dot{height:12px;width:12px;top:-5px;margin-left:-5px}}.vac-message-actions-wrapper .vac-options-container{position:absolute;top:2px;right:10px;height:40px;width:70px;overflow:hidden;border-top-right-radius:8px}.vac-message-actions-wrapper .vac-blur-container{position:absolute;height:100%;width:100%;left:8px;bottom:10px;background:var(--chat-message-bg-color);filter:blur(3px);border-bottom-left-radius:8px}.vac-message-actions-wrapper .vac-options-me{background:var(--chat-message-bg-color-me)}.vac-message-actions-wrapper .vac-message-options{background:var(--chat-icon-bg-dropdown-message);border-radius:50%;position:absolute;top:7px;right:7px}.vac-message-actions-wrapper .vac-message-options svg{height:17px;width:17px;padding:5px;margin:-5px}.vac-message-actions-wrapper .vac-message-emojis{position:absolute;top:6px;right:30px}.vac-message-actions-wrapper .vac-menu-options{right:15px}.vac-message-actions-wrapper .vac-menu-left{right:-118px}@media only screen and (max-width: 768px){.vac-message-actions-wrapper .vac-options-container{right:3px}.vac-message-actions-wrapper .vac-menu-left{right:-50px}}.vac-message-files-container .vac-file-wrapper{position:relative;width:fit-content}.vac-message-files-container .vac-file-wrapper .vac-file-container{height:60px;width:60px;margin:3px 0 5px;cursor:pointer;transition:all .6s}.vac-message-files-container .vac-file-wrapper .vac-file-container:hover{opacity:.85}.vac-message-files-container .vac-file-wrapper .vac-file-container svg{height:30px;width:30px}.vac-message-files-container .vac-file-wrapper .vac-file-container.vac-file-container-progress{background-color:#0000004d}.vac-message-file-container{position:relative;z-index:0}.vac-message-file-container .vac-message-image-container{cursor:pointer}.vac-message-file-container .vac-image-buttons{position:absolute;width:100%;height:100%;border-radius:4px;background:linear-gradient(to bottom,rgba(0,0,0,0) 55%,rgba(0,0,0,.02) 60%,rgba(0,0,0,.05) 65%,rgba(0,0,0,.1) 70%,rgba(0,0,0,.2) 75%,rgba(0,0,0,.3) 80%,rgba(0,0,0,.5) 85%,rgba(0,0,0,.6) 90%,rgba(0,0,0,.7) 95%,rgba(0,0,0,.8) 100%)}.vac-message-file-container .vac-image-buttons svg{height:26px;width:26px}.vac-message-file-container .vac-image-buttons .vac-button-view,.vac-message-file-container .vac-image-buttons .vac-button-download{position:absolute;bottom:6px;left:7px}.vac-message-file-container .vac-image-buttons :first-child{left:40px}.vac-message-file-container .vac-image-buttons .vac-button-view{max-width:18px;bottom:8px}.vac-message-file-container .vac-video-container{width:350px;max-width:100%;margin:4px auto 5px;cursor:pointer}.vac-message-file-container .vac-video-container video{width:100%;height:100%;border-radius:4px}.vac-button-reaction{display:inline-flex;align-items:center;border:var(--chat-message-border-style-reaction);outline:none;background:var(--chat-message-bg-color-reaction);border-radius:4px;margin:4px 2px 0;transition:.3s;padding:0 5px;font-size:18px;line-height:23px}.vac-button-reaction span{font-size:11px;font-weight:500;min-width:7px;color:var(--chat-message-color-reaction-counter)}.vac-button-reaction:hover{border:var(--chat-message-border-style-reaction-hover);background:var(--chat-message-bg-color-reaction-hover);cursor:pointer}.vac-button-reaction.vac-reaction-me{border:var(--chat-message-border-style-reaction-me);background:var(--chat-message-bg-color-reaction-me)}.vac-button-reaction.vac-reaction-me span{color:var(--chat-message-color-reaction-counter-me)}.vac-button-reaction.vac-reaction-me:hover{border:var(--chat-message-border-style-reaction-hover-me);background:var(--chat-message-bg-color-reaction-hover-me)}.vac-reply-message{background:var(--chat-message-bg-color-reply);border-radius:4px;margin:-1px -5px 8px;padding:8px 10px}.vac-reply-message .vac-reply-username{color:var(--chat-message-color-reply-username);font-size:12px;line-height:15px;margin-bottom:2px}.vac-reply-message .vac-image-reply-container{width:70px}.vac-reply-message .vac-image-reply-container .vac-message-image-reply{height:70px;width:70px;margin:4px auto 3px}.vac-reply-message .vac-video-reply-container{width:200px;max-width:100%}.vac-reply-message .vac-video-reply-container video{width:100%;height:100%;border-radius:4px}.vac-reply-message .vac-reply-content{font-size:12px;color:var(--chat-message-color-reply-content)}.vac-reply-message .vac-file-container{height:60px;width:60px}.vac-emoji-wrapper{position:relative;display:flex}.vac-emoji-wrapper .vac-emoji-reaction svg{height:19px;width:19px}.vac-emoji-wrapper .vac-emoji-picker{position:absolute;z-index:9999;bottom:32px;right:10px;width:300px;padding-top:4px;overflow:scroll;box-sizing:border-box;border-radius:.5rem;background:var(--chat-emoji-bg-color);box-shadow:0 1px 2px -2px #0000001a,0 1px 2px -1px #0000001a,0 1px 2px 1px #0000001a;scrollbar-width:none}.vac-emoji-wrapper .vac-emoji-picker::-webkit-scrollbar{display:none}.vac-emoji-wrapper .vac-emoji-picker.vac-picker-reaction{position:fixed;top:initial;right:initial}.vac-emoji-wrapper .vac-emoji-picker emoji-picker{height:100%;width:100%;--emoji-size: 1.2rem;--background: var(--chat-emoji-bg-color);--emoji-padding: .4rem;--border-color: var(--chat-sidemenu-border-color-search);--button-hover-background: var(--chat-sidemenu-bg-color-hover);--button-active-background: var(--chat-sidemenu-bg-color-hover)}.vac-format-message-wrapper .vac-format-container{display:inline}.vac-format-message-wrapper .vac-icon-deleted{height:14px;width:14px;vertical-align:middle;margin:-2px 2px 0 0;fill:var(--chat-message-color-deleted)}.vac-format-message-wrapper .vac-icon-deleted.vac-icon-deleted-room{margin:-3px 1px 0 0;fill:var(--chat-room-color-message)}.vac-format-message-wrapper .vac-image-link-container{background-color:var(--chat-message-bg-color-media);padding:8px;margin:2px auto;border-radius:4px}.vac-format-message-wrapper .vac-image-link{position:relative;background-color:var(--chat-message-bg-color-image)!important;background-size:contain;background-position:center center!important;background-repeat:no-repeat!important;height:150px;width:150px;max-width:100%;border-radius:4px;margin:0 auto}.vac-format-message-wrapper .vac-image-link-message{max-width:166px;font-size:12px}.vac-loader-wrapper.vac-container-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:9}.vac-loader-wrapper.vac-container-top{padding:21px}.vac-loader-wrapper.vac-container-top #vac-circle{height:20px;width:20px}.vac-loader-wrapper #vac-circle{margin:auto;height:28px;width:28px;border:3px rgba(0,0,0,.25) solid;border-top:3px var(--chat-color-spinner) solid;border-right:3px var(--chat-color-spinner) solid;border-bottom:3px var(--chat-color-spinner) solid;border-radius:50%;-webkit-animation:vac-spin 1s infinite linear;animation:vac-spin 1s infinite linear}@media only screen and (max-width: 768px){.vac-loader-wrapper #vac-circle{height:24px;width:24px}.vac-loader-wrapper.vac-container-top{padding:18px}.vac-loader-wrapper.vac-container-top #vac-circle{height:16px;width:16px}}@-webkit-keyframes vac-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes vac-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}#vac-icon-search{fill:var(--chat-icon-color-search)}#vac-icon-add{fill:var(--chat-icon-color-add)}#vac-icon-toggle{fill:var(--chat-icon-color-toggle)}#vac-icon-menu{fill:var(--chat-icon-color-menu)}#vac-icon-close{fill:var(--chat-icon-color-close)}#vac-icon-close-image{fill:var(--chat-icon-color-close-image)}#vac-icon-file{fill:var(--chat-icon-color-file)}#vac-icon-paperclip{fill:var(--chat-icon-color-paperclip)}#vac-icon-close-outline{fill:var(--chat-icon-color-close-outline)}#vac-icon-close-outline-preview{fill:var(--chat-icon-color-close-preview)}#vac-icon-send{fill:var(--chat-icon-color-send)}#vac-icon-send-disabled{fill:var(--chat-icon-color-send-disabled)}#vac-icon-emoji{fill:var(--chat-icon-color-emoji)}#vac-icon-emoji-reaction{fill:var(--chat-icon-color-emoji-reaction)}#vac-icon-document{fill:var(--chat-icon-color-document)}#vac-icon-pencil{fill:var(--chat-icon-color-pencil)}#vac-icon-checkmark,#vac-icon-double-checkmark{fill:var(--chat-icon-color-checkmark)}#vac-icon-checkmark-seen,#vac-icon-double-checkmark-seen{fill:var(--chat-icon-color-checkmark-seen)}#vac-icon-eye{fill:var(--chat-icon-color-eye)}#vac-icon-dropdown-message{fill:var(--chat-icon-color-dropdown-message)}#vac-icon-dropdown-room{fill:var(--chat-icon-color-dropdown-room)}#vac-icon-dropdown-scroll{fill:var(--chat-icon-color-dropdown-scroll)}#vac-icon-audio-play{fill:var(--chat-icon-color-audio-play)}#vac-icon-audio-pause{fill:var(--chat-icon-color-audio-pause)}.vac-progress-wrapper{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:9}.vac-progress-wrapper circle{transition:stroke-dashoffset .35s;transform:rotate(-90deg);transform-origin:50% 50%}.vac-progress-wrapper .vac-progress-content{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:-1;margin-top:-2px;background-color:#000000b3;border-radius:50%}.vac-progress-wrapper .vac-progress-content .vac-progress-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-weight:700;color:#fff}.vac-progress-wrapper .vac-progress-content .vac-progress-text .vac-progress-pourcent{font-size:9px;font-weight:400}\\n';\nconst _sfc_main = {\n name: \"ChatContainer\",\n components: {\n RoomsList,\n Room,\n MediaPreview\n },\n props: {\n height: { type: String, default: \"600px\" },\n theme: { type: String, default: \"light\" },\n styles: { type: [Object, String], default: () => ({}) },\n responsiveBreakpoint: { type: Number, default: 900 },\n singleRoom: { type: [Boolean, String], default: false },\n roomsListOpened: { type: [Boolean, String], default: true },\n textMessages: { type: [Object, String], default: () => ({}) },\n currentUserId: { type: String, default: \"\" },\n rooms: { type: [Array, String], default: () => [] },\n roomsOrder: { type: String, default: \"desc\" },\n loadingRooms: { type: [Boolean, String], default: false },\n roomsLoaded: { type: [Boolean, String], default: false },\n roomId: { type: String, default: null },\n loadFirstRoom: { type: [Boolean, String], default: true },\n messages: { type: [Array, String], default: () => [] },\n messagesLoaded: { type: [Boolean, String], default: false },\n roomActions: { type: [Array, String], default: () => [] },\n menuActions: { type: [Array, String], default: () => [] },\n messageActions: {\n type: [Array, String],\n default: () => [\n { name: \"replyMessage\", title: \"Reply\" },\n { name: \"editMessage\", title: \"Edit Message\", onlyMe: true },\n { name: \"deleteMessage\", title: \"Delete Message\", onlyMe: true },\n { name: \"selectMessages\", title: \"Select\" }\n ]\n },\n messageSelectionActions: { type: [Array, String], default: () => [] },\n autoScroll: {\n type: [Object, String],\n default: () => {\n return {\n send: {\n new: true,\n newAfterScrollUp: true\n },\n receive: {\n new: true,\n newAfterScrollUp: false\n }\n };\n }\n },\n customSearchRoomEnabled: { type: [Boolean, String], default: false },\n showSearch: { type: [Boolean, String], default: true },\n showAddRoom: { type: [Boolean, String], default: true },\n showSendIcon: { type: [Boolean, String], default: true },\n showFiles: { type: [Boolean, String], default: true },\n showAudio: { type: [Boolean, String], default: true },\n audioBitRate: { type: Number, default: 128 },\n audioSampleRate: { type: Number, default: 44100 },\n showEmojis: { type: [Boolean, String], default: true },\n showReactionEmojis: { type: [Boolean, String], default: true },\n showNewMessagesDivider: { type: [Boolean, String], default: true },\n showFooter: { type: [Boolean, String], default: true },\n textFormatting: {\n type: [Object, String],\n default: () => ({\n disabled: false\n })\n },\n linkOptions: {\n type: [Object, String],\n default: () => ({ disabled: false, target: \"_blank\", rel: null })\n },\n roomInfoEnabled: { type: [Boolean, String], default: false },\n textareaActionEnabled: { type: [Boolean, String], default: false },\n textareaAutoFocus: { type: [Boolean, String], default: true },\n userTagsEnabled: { type: [Boolean, String], default: true },\n emojisSuggestionEnabled: { type: [Boolean, String], default: true },\n roomMessage: { type: String, default: \"\" },\n scrollDistance: { type: Number, default: 60 },\n acceptedFiles: { type: String, default: \"*\" },\n captureFiles: { type: String, default: \"\" },\n multipleFiles: { type: [Boolean, String], default: true },\n templatesText: { type: [Array, String], default: () => [] },\n mediaPreviewEnabled: { type: [Boolean, String], default: true },\n usernameOptions: {\n type: [Object, String],\n default: () => ({ minUsers: 3, currentUser: false })\n },\n emojiDataSource: { type: String, default: void 0 }\n },\n emits: [\n \"toggle-rooms-list\",\n \"room-info\",\n \"fetch-messages\",\n \"send-message\",\n \"edit-message\",\n \"delete-message\",\n \"open-file\",\n \"open-user-tag\",\n \"open-failed-message\",\n \"menu-action-handler\",\n \"message-action-handler\",\n \"send-message-reaction\",\n \"typing-message\",\n \"textarea-action-handler\",\n \"fetch-more-rooms\",\n \"add-room\",\n \"search-room\",\n \"room-action-handler\",\n \"message-selection-action-handler\"\n ],\n data() {\n return {\n slots: [],\n room: {},\n loadingMoreRooms: false,\n showRoomsList: true,\n isMobile: false,\n showMediaPreview: false,\n previewFile: {}\n };\n },\n computed: {\n t() {\n return {\n ...locales,\n ...this.textMessagesCasted\n };\n },\n cssVars() {\n const defaultStyles = defaultThemeStyles[this.theme];\n const customStyles = {};\n Object.keys(defaultStyles).map((key) => {\n customStyles[key] = {\n ...defaultStyles[key],\n ...this.stylesCasted[key] || {}\n };\n });\n return cssThemeVars(customStyles);\n },\n orderedRooms() {\n return this.roomsCasted.slice().sort((a, b) => {\n const aVal = a.index || 0;\n const bVal = b.index || 0;\n if (this.roomsOrder === \"asc\") {\n return aVal < bVal ? -1 : bVal < aVal ? 1 : 0;\n }\n return aVal > bVal ? -1 : bVal > aVal ? 1 : 0;\n });\n },\n singleRoomCasted() {\n return this.castBoolean(this.singleRoom);\n },\n roomsListOpenedCasted() {\n return this.castBoolean(this.roomsListOpened);\n },\n loadingRoomsCasted() {\n return this.castBoolean(this.loadingRooms);\n },\n roomsLoadedCasted() {\n return this.castBoolean(this.roomsLoaded);\n },\n loadFirstRoomCasted() {\n return this.castBoolean(this.loadFirstRoom);\n },\n messagesLoadedCasted() {\n return this.castBoolean(this.messagesLoaded);\n },\n multipleFilesCasted() {\n return this.castBoolean(this.multipleFiles);\n },\n showSearchCasted() {\n return this.castBoolean(this.showSearch);\n },\n showAddRoomCasted() {\n return this.castBoolean(this.showAddRoom);\n },\n showSendIconCasted() {\n return this.castBoolean(this.showSendIcon);\n },\n showFilesCasted() {\n return this.castBoolean(this.showFiles);\n },\n showAudioCasted() {\n return this.castBoolean(this.showAudio);\n },\n showEmojisCasted() {\n return this.castBoolean(this.showEmojis);\n },\n showReactionEmojisCasted() {\n return this.castBoolean(this.showReactionEmojis);\n },\n showNewMessagesDividerCasted() {\n return this.castBoolean(this.showNewMessagesDivider);\n },\n showFooterCasted() {\n return this.castBoolean(this.showFooter);\n },\n roomInfoEnabledCasted() {\n return this.castBoolean(this.roomInfoEnabled);\n },\n textareaActionEnabledCasted() {\n return this.castBoolean(this.textareaActionEnabled);\n },\n textareaAutoFocusCasted() {\n return this.castBoolean(this.textareaAutoFocus);\n },\n userTagsEnabledCasted() {\n return this.castBoolean(this.userTagsEnabled);\n },\n emojisSuggestionEnabledCasted() {\n return this.castBoolean(this.emojisSuggestionEnabled);\n },\n mediaPreviewEnabledCasted() {\n return this.castBoolean(this.mediaPreviewEnabled);\n },\n roomsCasted() {\n return this.castArray(this.rooms);\n },\n messagesCasted() {\n return this.castArray(this.messages);\n },\n roomActionsCasted() {\n return this.castArray(this.roomActions);\n },\n menuActionsCasted() {\n return this.castArray(this.menuActions);\n },\n messageActionsCasted() {\n return this.castArray(this.messageActions);\n },\n messageSelectionActionsCasted() {\n return this.castArray(this.messageSelectionActions);\n },\n templatesTextCasted() {\n return this.castArray(this.templatesText);\n },\n stylesCasted() {\n return this.castObject(this.styles);\n },\n textMessagesCasted() {\n return this.castObject(this.textMessages);\n },\n autoScrollCasted() {\n return this.castObject(this.autoScroll);\n },\n textFormattingCasted() {\n return this.castObject(this.textFormatting);\n },\n linkOptionsCasted() {\n return this.castObject(this.linkOptions);\n },\n usernameOptionsCasted() {\n return this.castObject(this.usernameOptions);\n }\n },\n watch: {\n roomsCasted: {\n immediate: true,\n deep: true,\n handler(newVal, oldVal) {\n if (!newVal[0] || !newVal.find((room) => room.roomId === this.room.roomId)) {\n this.showRoomsList = true;\n }\n if (!this.loadingMoreRooms && this.loadFirstRoomCasted && newVal[0] && (!oldVal || newVal.length !== oldVal.length)) {\n if (this.roomId) {\n const room = newVal.find((r) => r.roomId === this.roomId) || {};\n this.fetchRoom({ room });\n } else if (!this.isMobile || this.singleRoomCasted) {\n this.fetchRoom({ room: this.orderedRooms[0] });\n } else {\n this.showRoomsList = true;\n }\n }\n }\n },\n loadingRoomsCasted(val) {\n if (val)\n this.room = {};\n },\n roomId: {\n immediate: true,\n handler(newVal, oldVal) {\n if (newVal && !this.loadingRoomsCasted && this.roomsCasted.length) {\n const room = this.roomsCasted.find((r) => r.roomId === newVal);\n this.fetchRoom({ room });\n } else if (oldVal && !newVal) {\n this.room = {};\n }\n }\n },\n room(val) {\n if (!val || Object.entries(val).length === 0)\n return;\n roomsValidation(val);\n val.users.forEach((user) => {\n partcipantsValidation(user);\n });\n },\n roomsListOpenedCasted: {\n immediate: true,\n handler(val) {\n this.showRoomsList = val;\n }\n }\n },\n created() {\n this.updateResponsive();\n window.addEventListener(\"resize\", (ev) => {\n if (ev.isTrusted)\n this.updateResponsive();\n });\n },\n updated() {\n const slots = document.querySelectorAll(\"[slot]\");\n if (this.slots.length !== slots.length) {\n this.slots = slots;\n }\n },\n methods: {\n castBoolean(val) {\n return val === \"true\" || val === true;\n },\n castArray(val) {\n return !val ? [] : Array.isArray(val) ? val : JSON.parse(val);\n },\n castObject(val) {\n return !val ? {} : typeof val === \"object\" ? val : JSON.parse(val);\n },\n updateResponsive() {\n this.isMobile = window.innerWidth < Number(this.responsiveBreakpoint);\n },\n toggleRoomsList() {\n this.showRoomsList = !this.showRoomsList;\n if (this.isMobile)\n this.room = {};\n this.$emit(\"toggle-rooms-list\", { opened: this.showRoomsList });\n },\n fetchRoom({ room }) {\n this.room = room;\n this.fetchMessages({ reset: true });\n if (this.isMobile)\n this.showRoomsList = false;\n },\n fetchMoreRooms() {\n this.$emit(\"fetch-more-rooms\");\n },\n roomInfo() {\n this.$emit(\"room-info\", this.room);\n },\n addRoom() {\n this.$emit(\"add-room\");\n },\n searchRoom(val) {\n this.$emit(\"search-room\", { value: val, roomId: this.room.roomId });\n },\n fetchMessages(options) {\n this.$emit(\"fetch-messages\", { room: this.room, options });\n },\n sendMessage(message) {\n this.$emit(\"send-message\", { ...message, roomId: this.room.roomId });\n },\n editMessage(message) {\n this.$emit(\"edit-message\", { ...message, roomId: this.room.roomId });\n },\n deleteMessage(message) {\n this.$emit(\"delete-message\", { message, roomId: this.room.roomId });\n },\n openFile({ message, file }) {\n if (this.mediaPreviewEnabledCasted && file.action === \"preview\") {\n this.previewFile = file.file;\n this.showMediaPreview = true;\n } else {\n this.$emit(\"open-file\", { message, file });\n }\n },\n openUserTag({ user }) {\n this.$emit(\"open-user-tag\", { user });\n },\n openFailedMessage({ message }) {\n this.$emit(\"open-failed-message\", {\n message,\n roomId: this.room.roomId\n });\n },\n menuActionHandler(ev) {\n this.$emit(\"menu-action-handler\", {\n action: ev,\n roomId: this.room.roomId\n });\n },\n roomActionHandler({ action, roomId }) {\n this.$emit(\"room-action-handler\", {\n action,\n roomId\n });\n },\n messageActionHandler(ev) {\n this.$emit(\"message-action-handler\", {\n ...ev,\n roomId: this.room.roomId\n });\n },\n messageSelectionActionHandler(ev) {\n this.$emit(\"message-selection-action-handler\", {\n ...ev,\n roomId: this.room.roomId\n });\n },\n sendMessageReaction(messageReaction) {\n this.$emit(\"send-message-reaction\", {\n ...messageReaction,\n roomId: this.room.roomId\n });\n },\n typingMessage(message) {\n this.$emit(\"typing-message\", {\n message,\n roomId: this.room.roomId\n });\n },\n textareaActionHandler(message) {\n this.$emit(\"textarea-action-handler\", {\n message,\n roomId: this.room.roomId\n });\n }\n }\n};\nconst _hoisted_1 = { class: \"vac-chat-container\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_rooms_list = resolveComponent(\"rooms-list\");\n const _component_room = resolveComponent(\"room\");\n const _component_media_preview = resolveComponent(\"media-preview\");\n return openBlock(), createElementBlock(\"div\", {\n class: \"vac-card-window\",\n style: normalizeStyle([{ height: $props.height }, $options.cssVars])\n }, [\n createBaseVNode(\"div\", _hoisted_1, [\n !$options.singleRoomCasted ? (openBlock(), createBlock(_component_rooms_list, {\n key: 0,\n \"current-user-id\": $props.currentUserId,\n rooms: $options.orderedRooms,\n \"loading-rooms\": $options.loadingRoomsCasted,\n \"rooms-loaded\": $options.roomsLoadedCasted,\n room: $data.room,\n \"room-actions\": $options.roomActionsCasted,\n \"custom-search-room-enabled\": $props.customSearchRoomEnabled,\n \"text-messages\": $options.t,\n \"show-search\": $options.showSearchCasted,\n \"show-add-room\": $options.showAddRoomCasted,\n \"show-rooms-list\": $data.showRoomsList && $options.roomsListOpenedCasted,\n \"text-formatting\": $options.textFormattingCasted,\n \"link-options\": $options.linkOptionsCasted,\n \"is-mobile\": $data.isMobile,\n \"scroll-distance\": $props.scrollDistance,\n onFetchRoom: $options.fetchRoom,\n onFetchMoreRooms: $options.fetchMoreRooms,\n onLoadingMoreRooms: _cache[0] || (_cache[0] = ($event) => $data.loadingMoreRooms = $event),\n onAddRoom: $options.addRoom,\n onSearchRoom: $options.searchRoom,\n onRoomActionHandler: $options.roomActionHandler\n }, createSlots({ _: 2 }, [\n renderList($data.slots, (el) => {\n return {\n name: el.slot,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, el.slot, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"current-user-id\", \"rooms\", \"loading-rooms\", \"rooms-loaded\", \"room\", \"room-actions\", \"custom-search-room-enabled\", \"text-messages\", \"show-search\", \"show-add-room\", \"show-rooms-list\", \"text-formatting\", \"link-options\", \"is-mobile\", \"scroll-distance\", \"onFetchRoom\", \"onFetchMoreRooms\", \"onAddRoom\", \"onSearchRoom\", \"onRoomActionHandler\"])) : createCommentVNode(\"\", true),\n createVNode(_component_room, {\n \"current-user-id\": $props.currentUserId,\n rooms: $options.roomsCasted,\n \"room-id\": $data.room.roomId || \"\",\n \"load-first-room\": $options.loadFirstRoomCasted,\n messages: $options.messagesCasted,\n \"room-message\": $props.roomMessage,\n \"messages-loaded\": $options.messagesLoadedCasted,\n \"menu-actions\": $options.menuActionsCasted,\n \"message-actions\": $options.messageActionsCasted,\n \"message-selection-actions\": $options.messageSelectionActionsCasted,\n \"auto-scroll\": $options.autoScrollCasted,\n \"show-send-icon\": $options.showSendIconCasted,\n \"show-files\": $options.showFilesCasted,\n \"show-audio\": $options.showAudioCasted,\n \"audio-bit-rate\": $props.audioBitRate,\n \"audio-sample-rate\": $props.audioSampleRate,\n \"show-emojis\": $options.showEmojisCasted,\n \"show-reaction-emojis\": $options.showReactionEmojisCasted,\n \"show-new-messages-divider\": $options.showNewMessagesDividerCasted,\n \"show-footer\": $options.showFooterCasted,\n \"text-messages\": $options.t,\n \"single-room\": $options.singleRoomCasted,\n \"show-rooms-list\": $data.showRoomsList && $options.roomsListOpenedCasted,\n \"text-formatting\": $options.textFormattingCasted,\n \"link-options\": $options.linkOptionsCasted,\n \"is-mobile\": $data.isMobile,\n \"loading-rooms\": $options.loadingRoomsCasted,\n \"room-info-enabled\": $options.roomInfoEnabledCasted,\n \"textarea-action-enabled\": $options.textareaActionEnabledCasted,\n \"textarea-auto-focus\": $options.textareaAutoFocusCasted,\n \"user-tags-enabled\": $options.userTagsEnabledCasted,\n \"emojis-suggestion-enabled\": $options.emojisSuggestionEnabledCasted,\n \"scroll-distance\": $props.scrollDistance,\n \"accepted-files\": $props.acceptedFiles,\n \"capture-files\": $props.captureFiles,\n \"multiple-files\": $options.multipleFilesCasted,\n \"templates-text\": $options.templatesTextCasted,\n \"username-options\": $options.usernameOptionsCasted,\n \"emoji-data-source\": $props.emojiDataSource,\n onToggleRoomsList: $options.toggleRoomsList,\n onRoomInfo: $options.roomInfo,\n onFetchMessages: $options.fetchMessages,\n onSendMessage: $options.sendMessage,\n onEditMessage: $options.editMessage,\n onDeleteMessage: $options.deleteMessage,\n onOpenFile: $options.openFile,\n onOpenUserTag: $options.openUserTag,\n onOpenFailedMessage: $options.openFailedMessage,\n onMenuActionHandler: $options.menuActionHandler,\n onMessageActionHandler: $options.messageActionHandler,\n onMessageSelectionActionHandler: $options.messageSelectionActionHandler,\n onSendMessageReaction: $options.sendMessageReaction,\n onTypingMessage: $options.typingMessage,\n onTextareaActionHandler: $options.textareaActionHandler\n }, createSlots({ _: 2 }, [\n renderList($data.slots, (el) => {\n return {\n name: el.slot,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, el.slot, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"current-user-id\", \"rooms\", \"room-id\", \"load-first-room\", \"messages\", \"room-message\", \"messages-loaded\", \"menu-actions\", \"message-actions\", \"message-selection-actions\", \"auto-scroll\", \"show-send-icon\", \"show-files\", \"show-audio\", \"audio-bit-rate\", \"audio-sample-rate\", \"show-emojis\", \"show-reaction-emojis\", \"show-new-messages-divider\", \"show-footer\", \"text-messages\", \"single-room\", \"show-rooms-list\", \"text-formatting\", \"link-options\", \"is-mobile\", \"loading-rooms\", \"room-info-enabled\", \"textarea-action-enabled\", \"textarea-auto-focus\", \"user-tags-enabled\", \"emojis-suggestion-enabled\", \"scroll-distance\", \"accepted-files\", \"capture-files\", \"multiple-files\", \"templates-text\", \"username-options\", \"emoji-data-source\", \"onToggleRoomsList\", \"onRoomInfo\", \"onFetchMessages\", \"onSendMessage\", \"onEditMessage\", \"onDeleteMessage\", \"onOpenFile\", \"onOpenUserTag\", \"onOpenFailedMessage\", \"onMenuActionHandler\", \"onMessageActionHandler\", \"onMessageSelectionActionHandler\", \"onSendMessageReaction\", \"onTypingMessage\", \"onTextareaActionHandler\"])\n ]),\n createVNode(Transition, {\n name: \"vac-fade-preview\",\n appear: \"\"\n }, {\n default: withCtx(() => [\n $data.showMediaPreview ? (openBlock(), createBlock(_component_media_preview, {\n key: 0,\n file: $data.previewFile,\n onCloseMediaPreview: _cache[1] || (_cache[1] = ($event) => $data.showMediaPreview = false)\n }, createSlots({ _: 2 }, [\n renderList($data.slots, (el) => {\n return {\n name: el.slot,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, el.slot, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"file\"])) : createCommentVNode(\"\", true)\n ]),\n _: 3\n })\n ], 4);\n}\nvar ChatWindow = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"styles\", [_style_0]]]);\nconst VueAdvancedChat = defineCustomElement(ChatWindow);\nconst PACKAGE_NAME = \"vue-advanced-chat\";\nfunction register() {\n if (!customElements.get(PACKAGE_NAME)) {\n customElements.define(PACKAGE_NAME, VueAdvancedChat);\n }\n}\nexport { VueAdvancedChat, register };\n","import { render } from \"./ChatComponent.vue?vue&type=template&id=61a89d0e&ts=true\"\nimport script from \"./ChatComponent.vue?vue&type=script&lang=ts\"\nexport * from \"./ChatComponent.vue?vue&type=script&lang=ts\"\n\nimport \"./ChatComponent.vue?vue&type=style&index=0&id=61a89d0e&lang=css\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, resolveComponent as _resolveComponent, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4610efbd\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"bell\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: \"/static/teleforma/images/bell.svg\",\n alt: \"Notifications\",\n title: \"Notifications\",\n class: \"bell-image\"\n}, null, -1))\nconst _hoisted_3 = {\n key: 0,\n class: \"bell-count\"\n}\nconst _hoisted_4 = {\n key: 0,\n class: \"notifications-list\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_notification_message = _resolveComponent(\"notification-message\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n id: \"notifications\",\n onFocus: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.open && _ctx.open(...args))),\n onFocusout: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.close && _ctx.close(...args))),\n tabindex: \"0\"\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _hoisted_2,\n (_ctx.numberOfUnread > 0)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_3, _toDisplayString(_ctx.numberOfUnread), 1))\n : _createCommentVNode(\"\", true)\n ]),\n (_ctx.opened)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"ul\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.messages, (message) => {\n return (_openBlock(), _createBlock(_component_notification_message, {\n key: message._id,\n id: message._id,\n content: message.content,\n url: message.url,\n viewed: message.viewed,\n \"creation-date\": message.created\n }, null, 8, [\"id\", \"content\", \"url\", \"viewed\", \"creation-date\"]))\n }), 128))\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ], 32))\n}","<template>\n <div id=\"notifications\" @focus=\"open\" @focusout=\"close\" tabindex=\"0\">\n <div class=\"bell\">\n <img src=\"/static/teleforma/images/bell.svg\" alt=\"Notifications\" title=\"Notifications\" class=\"bell-image\" />\n <span v-if=\"numberOfUnread > 0\" class=\"bell-count\">{{ numberOfUnread }}</span>\n </div>\n <div v-if=\"opened\" class=\"notifications-list\">\n <!-- <h1 v-if=\"currentUserId\">{{ currentUserId }}</h1>\n <h1 v-else>Pas d'utilisateur</h1> -->\n <ul>\n <notification-message\n v-for=\"message in messages\"\n :key=\"message._id\"\n :id=\"message._id\"\n :content=\"message.content\"\n :url=\"message.url\"\n :viewed=\"message.viewed\"\n :creation-date=\"message.created\"\n ></notification-message>\n </ul>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport NotificationMessage from \"./sub/NotificationMessage.vue\"\n\ninterface BaseComponentData {\n socket: WebSocket | null\n messagesLoaded: boolean\n messages: any[]\n currentUserId: number | null\n opened: boolean\n}\n\nexport default defineComponent({\n \n data(): BaseComponentData {\n return {\n socket: null,\n messagesLoaded: false,\n messages: [],\n currentUserId: null,\n opened: false\n }\n },\n components: {\n NotificationMessage\n },\n created() {\n // get room info\n const userId = document.getElementById(\"user_id\")\n if (!userId) return\n // this.connect(`notifications_${userId}`)\n this.currentUserId = parseInt(userId.getAttribute(\"value\")!, 10)\n this.connect()\n },\n\n methods: {\n connect() {\n // connect to socket\n let protocol = \"wss\"\n if (window.location.protocol != \"https:\") protocol = \"ws\"\n this.socket = new WebSocket(\n protocol + \"://\" + window.location.host + \"/ws/notification/\" + this.currentUserId + \"/\"\n )\n this.fetchMessages()\n\n this.socket.onclose = () => {\n console.log(\"Chat socket closed\")\n }\n },\n\n async fetchMessages() {\n this.socket!.onmessage = (e) => {\n const data = JSON.parse(e.data)\n const type = data.type\n // debugger;\n // do not load messages in case of socket reconnect\n if (type === \"initial\" && this.messagesLoaded) return\n\n const newMessages = data.messages\n\n // check if a message with the same id already exists\n // it means the message have been updated (probably the \"viewed\" state)\n let existing = null\n if (type === \"new\" && newMessages.length === 1) {\n existing = this.messages.findIndex((message) => message._id === newMessages[0]._id)\n }\n\n // if it exists, then we update it instead of appending a new one\n if (existing !== null && existing !== -1) {\n this.messages = [...this.messages.slice(0, existing), newMessages[0], ...this.messages.slice(existing + 1)]\n } else this.messages = [...newMessages, ...this.messages]\n if (type === \"initial\") this.messagesLoaded = true\n }\n },\n\n open() {\n this.opened = true\n },\n close() {\n this.opened = false\n }\n },\n\n computed: {\n numberOfUnread(): any {\n return this.messages.filter((message) => !message.viewed).length\n }\n }\n})\n</script>\n\n<style scoped>\n#notifications {\n position: absolute;\n top: 0px;\n right: 5px;\n text-align: left;\n}\n.bell {\n width: 40px;\n height: 40px;\n position: relative;\n cursor: pointer;\n}\n.bell-count {\n position: absolute;\n width: 20px;\n height: 20px;\n top: 5px;\n right: 0px;\n display: flex;\n justify-content: center;\n align-items: center;\n color: white;\n border-radius: 10px;\n background-color: red;\n}\n\n.notifications-list {\n position: absolute;\n background-color: white;\n z-index: 100;\n right: 10px;\n width: 400px;\n max-height: calc(100vh - 300px);\n max-width: calc(100vw - 50px);\n border: 1px solid lightblue;\n border-radius: 3px;\n overflow-y: scroll;\n}\n\nul {\n margin: 0;\n padding: 0;\n box-shadow: 5px 5px 5px grey;\n}\n</style>\n","import { toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, withModifiers as _withModifiers, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-fa1f8db4\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"date\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"li\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.onClick())),\n onMouseup: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (_ctx.onMiddleClick()), [\"middle\"]))\n }, [\n _createElementVNode(\"span\", {\n class: _normalizeClass({ unviewed: !_ctx.viewed, text: true })\n }, _toDisplayString(_ctx.content), 3),\n _createElementVNode(\"span\", _hoisted_1, _toDisplayString(_ctx.relativeCreationDate), 1)\n ], 32))\n}","<template>\n <li @click=\"onClick()\" @click.middle=\"onMiddleClick()\">\n <span :class=\"{ unviewed: !viewed, text: true }\">{{ content }}</span>\n <span class=\"date\">{{ relativeCreationDate }} </span>\n </li>\n</template>\n\n<script lang=\"ts\">\n\nimport { defineComponent } from 'vue'\nimport { formatRelative } from \"date-fns\"\nimport { fr } from \"date-fns/locale\"\nimport axios from \"axios\"\n\n\nexport default defineComponent({\n props: {\n id: Number,\n content: String,\n url: String,\n viewed: Boolean,\n creationDate: String\n },\n\n methods: {\n async setAsViewed() {\n if (this.viewed === false) {\n await axios.post(\"/notification\", { id: this.id, viewed: true })\n }\n },\n\n async onClick() {\n await this.setAsViewed()\n if (this.url) window.location.href = this.url\n },\n\n async onMiddleClick() {\n await this.setAsViewed()\n if (this.url) window.open(this.url, \"_blank\")\n }\n },\n computed: {\n relativeCreationDate():string {\n return formatRelative(new Date(this.creationDate as string), new Date(), { locale: fr })\n }\n }\n})\n</script>\n\n<style scoped>\nli {\n list-style: none;\n display: block;\n align-items: center;\n margin: 0;\n border-radius: 0;\n padding: 10px;\n cursor: pointer;\n overflow: hidden;\n}\nli:hover {\n background-color: #ccf2cf;\n}\nli:not(:last-child) {\n border-bottom: 1px solid lightblue;\n}\n\n.unviewed {\n font-weight: bold;\n}\n.date {\n float: right;\n color: lightslategrey;\n font-size: 0.9em;\n font-style: italic;\n}\n</style>\n","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\n\nexport default function startOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\n\nexport default function differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var startOfDayLeft = startOfDay(dirtyDateLeft);\n var startOfDayRight = startOfDay(dirtyDateRight);\n var timestampLeft = startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n var timestampRight = startOfDayRight.getTime() - getTimezoneOffsetInMilliseconds(startOfDayRight); // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\n\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || typeof value === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now `isValid` doesn't throw an exception\n * if the first argument is not an instance of Date.\n * Instead, argument is converted beforehand using `toDate`.\n *\n * Examples:\n *\n * | `isValid` argument | Before v2.0.0 | v2.0.0 onward |\n * |---------------------------|---------------|---------------|\n * | `new Date()` | `true` | `true` |\n * | `new Date('2016-01-01')` | `true` | `true` |\n * | `new Date('')` | `false` | `false` |\n * | `new Date(1488370835081)` | `true` | `true` |\n * | `new Date(NaN)` | `false` | `false` |\n * | `'2016-01-01'` | `TypeError` | `false` |\n * | `''` | `TypeError` | `false` |\n * | `1488370835081` | `TypeError` | `true` |\n * | `NaN` | `TypeError` | `false` |\n *\n * We introduce this change to make *date-fns* consistent with ECMAScript behavior\n * that try to coerce arguments to the expected type\n * (which is also the case with other *date-fns* functions).\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\n\nvar formatDistance = function (token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n};\n\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\n\nvar formatRelative = function (token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\n\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n\n return valuesArray[index];\n };\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n}; // Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\n\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nvar ordinalNumber = function (dirtyNumber, _options) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n};\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n\n return undefined;\n}","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, dirtyOptions);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);\n var year = getUTCWeekYear(dirtyDate, dirtyOptions);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, dirtyOptions);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n\n while (output.length < targetLength) {\n output = '0' + output;\n }\n\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n // Year\n y: function (date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function (date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function (date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function (date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n\n case 'aaa':\n return dayPeriodEnumValue;\n\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function (date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function (date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function (date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function (date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function (date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function (date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n } // Ordinal number\n\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function (date, token) {\n var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function (date, token, localize, options) {\n var week = getUTCWeek(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function (date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function (date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function (date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function (date, token, localize) {\n var hours = date.getUTCHours() % 12;\n\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function (date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function (date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n\n return lightFormatters.m(date, token);\n },\n // Second\n s: function (date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return 'Z';\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\n\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n\n if (minutes === 0) {\n return sign + String(hours);\n }\n\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n\n return formatTimezone(offset, dirtyDelimiter);\n}\n\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n\nexport default formatters;","function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n}\n\nfunction timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n}\n\nfunction dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n}\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n }\n}","import isValid from \"../isValid/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The second argument is now required for the sake of explicitness.\n *\n * ```javascript\n * // Before v2.0.0\n * format(new Date(2016, 0, 1))\n *\n * // v2.0.0 onward\n * format(new Date(2016, 0, 1), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n * ```\n *\n * - New format string API for `format` function\n * which is based on [Unicode Technical Standard #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table).\n * See [this post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.\n *\n * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * var result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, formatterOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = formatters[firstCharacter];\n\n if (formatter) {\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import differenceInCalendarDays from \"../differenceInCalendarDays/index.js\";\nimport format from \"../format/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n\n/**\n * @name formatRelative\n * @category Common Helpers\n * @summary Represent the date in words relative to the given base date.\n *\n * @description\n * Represent the date in words relative to the given base date.\n *\n * | Distance to the base date | Result |\n * |---------------------------|---------------------------|\n * | Previous 6 days | last Sunday at 04:30 AM |\n * | Last day | yesterday at 04:30 AM |\n * | Same day | today at 04:30 AM |\n * | Next day | tomorrow at 04:30 AM |\n * | Next 6 days | Sunday at 04:30 AM |\n * | Other | 12/31/2017 |\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to format\n * @param {Date|Number} baseDate - the date to compare with\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {String} the date in words\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `baseDate` must not be Invalid Date\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.locale` must contain `formatRelative` property\n *\n * @example\n * // Represent the date of 6 days ago in words relative to the given base date. In this example, today is Wednesday\n * const result = formatRelative(addDays(new Date(), -6), new Date())\n * //=> \"last Thursday at 12:45 AM\"\n */\nexport default function formatRelative(dirtyDate, dirtyBaseDate, dirtyOptions) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var baseDate = toDate(dirtyBaseDate);\n\n var _ref = dirtyOptions || {},\n _ref$locale = _ref.locale,\n locale = _ref$locale === void 0 ? defaultLocale : _ref$locale,\n _ref$weekStartsOn = _ref.weekStartsOn,\n weekStartsOn = _ref$weekStartsOn === void 0 ? 0 : _ref$weekStartsOn;\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n if (!locale.formatRelative) {\n throw new RangeError('locale must contain formatRelative property');\n }\n\n var diff = differenceInCalendarDays(date, baseDate);\n\n if (isNaN(diff)) {\n throw new RangeError('Invalid time value');\n }\n\n var token;\n\n if (diff < -6) {\n token = 'other';\n } else if (diff < -1) {\n token = 'lastWeek';\n } else if (diff < 0) {\n token = 'yesterday';\n } else if (diff < 1) {\n token = 'today';\n } else if (diff < 2) {\n token = 'tomorrow';\n } else if (diff < 7) {\n token = 'nextWeek';\n } else {\n token = 'other';\n }\n\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var utcBaseDate = subMilliseconds(baseDate, getTimezoneOffsetInMilliseconds(baseDate));\n var formatStr = locale.formatRelative(token, utcDate, utcBaseDate, {\n locale: locale,\n weekStartsOn: weekStartsOn\n });\n return format(date, formatStr, {\n locale: locale,\n weekStartsOn: weekStartsOn\n });\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'moins d’une seconde',\n other: 'moins de {{count}} secondes'\n },\n xSeconds: {\n one: '1 seconde',\n other: '{{count}} secondes'\n },\n halfAMinute: '30 secondes',\n lessThanXMinutes: {\n one: 'moins d’une minute',\n other: 'moins de {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'environ 1 heure',\n other: 'environ {{count}} heures'\n },\n xHours: {\n one: '1 heure',\n other: '{{count}} heures'\n },\n xDays: {\n one: '1 jour',\n other: '{{count}} jours'\n },\n aboutXWeeks: {\n one: 'environ 1 semaine',\n other: 'environ {{count}} semaines'\n },\n xWeeks: {\n one: '1 semaine',\n other: '{{count}} semaines'\n },\n aboutXMonths: {\n one: 'environ 1 mois',\n other: 'environ {{count}} mois'\n },\n xMonths: {\n one: '1 mois',\n other: '{{count}} mois'\n },\n aboutXYears: {\n one: 'environ 1 an',\n other: 'environ {{count}} ans'\n },\n xYears: {\n one: '1 an',\n other: '{{count}} ans'\n },\n overXYears: {\n one: 'plus d’un an',\n other: 'plus de {{count}} ans'\n },\n almostXYears: {\n one: 'presqu’un an',\n other: 'presque {{count}} ans'\n }\n};\n\nvar formatDistance = function (token, count, options) {\n var result;\n var form = formatDistanceLocale[token];\n\n if (typeof form === 'string') {\n result = form;\n } else if (count === 1) {\n result = form.one;\n } else {\n result = form.other.replace('{{count}}', String(count));\n }\n\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'dans ' + result;\n } else {\n return 'il y a ' + result;\n }\n }\n\n return result;\n};\n\nexport default formatDistance;","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE d MMMM y',\n long: 'd MMMM y',\n medium: 'd MMM y',\n short: 'dd/MM/y'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'à' {{time}}\",\n long: \"{{date}} 'à' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"eeee 'dernier à' p\",\n yesterday: \"'hier à' p\",\n today: \"'aujourd’hui à' p\",\n tomorrow: \"'demain à' p'\",\n nextWeek: \"eeee 'prochain à' p\",\n other: 'P'\n};\n\nvar formatRelative = function (token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\n\nexport default formatRelative;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['av. J.-C', 'ap. J.-C'],\n abbreviated: ['av. J.-C', 'ap. J.-C'],\n wide: ['avant Jésus-Christ', 'après Jésus-Christ']\n};\nvar quarterValues = {\n narrow: ['T1', 'T2', 'T3', 'T4'],\n abbreviated: ['1er trim.', '2ème trim.', '3ème trim.', '4ème trim.'],\n wide: ['1er trimestre', '2ème trimestre', '3ème trimestre', '4ème trimestre']\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'],\n wide: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']\n};\nvar dayValues = {\n narrow: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],\n short: ['di', 'lu', 'ma', 'me', 'je', 've', 'sa'],\n abbreviated: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'],\n wide: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'minuit',\n noon: 'midi',\n morning: 'mat.',\n afternoon: 'ap.m.',\n evening: 'soir',\n night: 'mat.'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'minuit',\n noon: 'midi',\n morning: 'matin',\n afternoon: 'après-midi',\n evening: 'soir',\n night: 'matin'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'minuit',\n noon: 'midi',\n morning: 'du matin',\n afternoon: 'de l’après-midi',\n evening: 'du soir',\n night: 'du matin'\n }\n};\n\nvar ordinalNumber = function (dirtyNumber, options) {\n var number = Number(dirtyNumber);\n var unit = options === null || options === void 0 ? void 0 : options.unit;\n if (number === 0) return '0';\n var feminineUnits = ['year', 'week', 'hour', 'minute', 'second'];\n var suffix;\n\n if (number === 1) {\n suffix = unit && feminineUnits.includes(unit) ? 'ère' : 'er';\n } else {\n suffix = 'ème';\n }\n\n return number + suffix;\n};\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide'\n })\n};\nexport default localize;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(ième|ère|ème|er|e)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(av\\.J\\.C|ap\\.J\\.C|ap\\.J\\.-C)/i,\n abbreviated: /^(av\\.J\\.-C|av\\.J-C|apr\\.J\\.-C|apr\\.J-C|ap\\.J-C)/i,\n wide: /^(avant Jésus-Christ|après Jésus-Christ)/i\n};\nvar parseEraPatterns = {\n any: [/^av/i, /^ap/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^T?[1234]/i,\n abbreviated: /^[1234](er|ème|e)? trim\\.?/i,\n wide: /^[1234](er|ème|e)? trimestre/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(janv|févr|mars|avr|mai|juin|juill|juil|août|sept|oct|nov|déc)\\.?/i,\n wide: /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^av/i, /^ma/i, /^juin/i, /^juil/i, /^ao/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[lmjvsd]/i,\n short: /^(di|lu|ma|me|je|ve|sa)/i,\n abbreviated: /^(dim|lun|mar|mer|jeu|ven|sam)\\.?/i,\n wide: /^(dimanche|lundi|mardi|mercredi|jeudi|vendredi|samedi)/i\n};\nvar parseDayPatterns = {\n narrow: [/^d/i, /^l/i, /^m/i, /^m/i, /^j/i, /^v/i, /^s/i],\n any: [/^di/i, /^lu/i, /^ma/i, /^me/i, /^je/i, /^ve/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|minuit|midi|mat\\.?|ap\\.?m\\.?|soir|nuit)/i,\n any: /^([ap]\\.?\\s?m\\.?|du matin|de l'après[-\\s]midi|du soir|de la nuit)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^min/i,\n noon: /^mid/i,\n morning: /mat/i,\n afternoon: /ap/i,\n evening: /soir/i,\n night: /nuit/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary French locale.\n * @language French\n * @iso-639-2 fra\n * @author Jean Dupouy [@izeau]{@link https://github.com/izeau}\n * @author François B [@fbonzon]{@link https://github.com/fbonzon}\n */\n\nvar locale = {\n code: 'fr',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","import { render } from \"./NotificationMessage.vue?vue&type=template&id=fa1f8db4&scoped=true&ts=true\"\nimport script from \"./NotificationMessage.vue?vue&type=script&lang=ts\"\nexport * from \"./NotificationMessage.vue?vue&type=script&lang=ts\"\n\nimport \"./NotificationMessage.vue?vue&type=style&index=0&id=fa1f8db4&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-fa1f8db4\"]])\n\nexport default __exports__","import { render } from \"./NotificationsBell.vue?vue&type=template&id=4610efbd&scoped=true&ts=true\"\nimport script from \"./NotificationsBell.vue?vue&type=script&lang=ts\"\nexport * from \"./NotificationsBell.vue?vue&type=script&lang=ts\"\n\nimport \"./NotificationsBell.vue?vue&type=style&index=0&id=4610efbd&scoped=true&lang=css\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4610efbd\"]])\n\nexport default __exports__","export enum PlayerState {\n UNSTARTED = 'UNSTARTED',\n ENDED = 'ENDED',\n PLAYING = 'PLAYING',\n PAUSE = 'PAUSE',\n BUFFERING = 'BUFFERING',\n READY = 'READY', // ready to be played after buffering\n LOADING = 'LOADING',\n LOADED = 'LOADED',\n }","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : String(i);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","const ENABLE_DEBUG = true;\nexport const Logger = {\n debug: (...args: unknown[]) => {\n if (!ENABLE_DEBUG) return;\n console.debug(...args);\n },\n error: (...args: unknown[]) => {\n console.error(...args);\n }\n};","import { PlayerState } from './constants';\nimport { MultiVideoPlayer, VideoPlayerOptions } from './main';\nimport { Logger } from \"./utils\";\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = () => { };\nclass VideoPlayer {\n public videoId: string;\n public videoPlayerConfig: VideoPlayerOptions;\n // video js player\n public videojs: any;\n private player: MultiVideoPlayer;\n public controls: boolean;\n public main: boolean;\n public sound: boolean;\n public playBackRate: boolean;\n public canWait: boolean;\n public videoPlayerArea: Element | null;\n // public videoElement: HTMLVideoElement | null;\n public videoState: PlayerState;\n private readonly _startSeconds: number;\n private readonly loop: boolean;\n public isPlaying: boolean;\n constructor(player: MultiVideoPlayer, videoPlayerConfig: VideoPlayerOptions) {\n this.videoId = Math.random().toString(36).substring(2, 15);\n this.player = player;\n this.videoPlayerConfig = videoPlayerConfig;\n this.main = this.videoPlayerConfig.main ?? false;\n this.sound = this.videoPlayerConfig.sound ?? false;\n this.playBackRate = this.videoPlayerConfig.playBackRate ?? false;\n this.canWait = true;\n this.controls = this.videoPlayerConfig.controls ?? player.options.controls ?? true;\n this.loop = player.options.loop ?? false;\n\n this._startSeconds = parseFloat(String(this.videoPlayerConfig.startSeconds ?? 0));\n\n this.videoPlayerArea = null;\n // this.videoElement = null;\n this.videoState = PlayerState.LOADING;\n this.isPlaying = false;\n\n this.mount();\n }\n\n private mount() {\n this.render();\n // this.videoElementId = document.querySelector(`#video_player_${this.videoId} video`);\n // console.log(this.videoElement)\n\n if (!this.videoElement) {\n return Logger.debug('video element not found');\n }\n\n // if we do not setTimeout here, controls act weirdly (no explanation...)\n setTimeout(() => {\n this.setupVideoElement({ controls: this.controls, main: this.main });\n }, 1);\n\n // this.videojs.on('volumechange', (e: any) => {\n // console.log(e)\n // // find the videos with the sound on\n // const videos = this.player.videoPlayers.filter(v => v.sound)\n\n // console.log(\"volume change\", this.player.videoPlayers[0].videojs!.volume())\n // console.log(this.player.videoPlayers[0])\n // // console.log(\"change volume of \", videos)\n // // this.player.videoPlayers[0].videojs!.volume(0)\n // for (const video of videos) {\n // video.videojs!.volume(this.player.videoPlayers[0].videojs!.volume())\n // // this.videojs.volume(this.player.videoPlayers[0].videojs!.volume())\n // }\n // e.preventDefault()\n // e.stopPropagation()\n\n // })\n window.addEventListener(\"unhandledrejection\", (event) => {\n if (event.reason?.name === \"AbortError\" || event.reason?.message.includes(\"The play() request was interrupted\")) {\n console.warn(\"❌❌❌❌❌❌❌❌The play() request was interrupted❌❌❌❌❌❌❌❌❌❌\");\n\n event.preventDefault();\n event.stopPropagation();\n }\n });\n\n // window.addEventListener(\"resize\", () => {\n // const videoElement = document.querySelector('video');\n\n // if (document.fullscreenElement) {\n // if (videoElement) {\n // videoElement.style.height = '100vh';\n // videoElement.style.width = '100%';\n // }\n // } else {\n // if (videoElement) {\n // videoElement.style.height = \"100%\";\n // videoElement.style.width = \"100%\";\n // }\n // }\n // });\n \n\n let lastScrollY = 0;\n\n document.addEventListener(\"fullscreenchange\", () => {\n const videoElement = document.querySelector('video');\n\n if (document.fullscreenElement) {\n lastScrollY = window.scrollY;\n } else {\n if (videoElement) {\n videoElement.style.height = \"100%\";\n videoElement.style.width = \"100%\";\n }\n\n setTimeout(() => {\n window.scrollTo({\n top: lastScrollY,\n behavior: \"smooth\",\n });\n }, 200);\n }\n });\n\n this.videojs.on('ratechange', () => {\n const newRate = this.videojs.playbackRate();\n console.log(`Playback rate changed to: ${newRate}`);\n \n this.player.videoPlayers.forEach(video => {\n if (video.videojs && video.videojs.playbackRate() !== newRate) {\n video.videojs.playbackRate(newRate);\n console.log(`Updated video ${video.videoId} to speed ${newRate}`);\n }\n });\n });\n \n\n this.videojs.on('loadeddata', this.onReady.bind(this))\n this.videojs.on('timeupdate', this.onTimeUpdate.bind(this))\n this.videojs.on('seeking', this.onSeeking.bind(this))\n this.videojs.on('ended', this.onStateChange.bind(this, PlayerState.ENDED))\n\n this.videojs.on('play', () => {\n this.syncTime();\n if (!this.isPlaying && this.player.state !== PlayerState.BUFFERING) {\n this.onStateChange(PlayerState.PLAYING);\n }\n });\n\n this.videojs.on('pause', () => {\n\n if (this.isPlaying) {\n this.onStateChange(PlayerState.PAUSE);\n }\n });\n // this.videojs.on('waiting', () => {\n // // console.log(\"WAITING FOR BUFFERING\", this.videoState, e)\n // // if(this.isPlaying)\n\n // this.onStateChange(PlayerState.BUFFERING)\n // })\n this.videojs.on('canplay', () => {\n this.syncTime();\n if (this.player.state === PlayerState.PAUSE) return;\n\n\n // debugger;\n if (![PlayerState.LOADING, PlayerState.LOADED].includes(this.player.state as PlayerState)) {\n this.onStateChange(PlayerState.READY)\n }\n this.canWait = false\n setTimeout(() => {\n this.canWait = true\n\n }, 1000)\n })\n\n this.videojs.on('waiting', () => {\n if (!this.canWait)\n return\n if (this.videoElement!.readyState === 4)\n return\n console.log(\"BUFFERING...\", this.videoElement!.readyState)\n if (![PlayerState.LOADING, PlayerState.LOADED].includes(this.player.state as PlayerState)) {\n if (!this.isPlaying) {\n this.onStateChange(PlayerState.BUFFERING)\n }\n }\n })\n\n // this.videojs.on('progress', (e:any) => {\n // console.log('progress')\n // console.log(e)\n // this.onStateChange.bind(this, PlayerState.PLAYING)\n // })\n\n\n // this.videoElement.addEventListener('play', this.onStateChange.bind(this, PlayerState.PLAYING), false);\n // this.videoElement.addEventListener('pause', this.onStateChange.bind(this, PlayerState.PAUSE), false);\n // this.videoElement.addEventListener('seeking', this.onSeeking.bind(this), false);\n // this.videoElement.addEventListener('timeupdate', this.onTimeUpdate.bind(this), false);\n // this.videoElement.addEventListener('loadeddata', this.onReady.bind(this), false);\n // this.videoElement.addEventListener('canplaythrough', this.onStateChange.bind(this, PlayerState.UNSTARTED), false);\n\n // this.videoElement.addEventListener('ended', this.onStateChange.bind(this, PlayerState.ENDED), false);\n // this.videoElement.addEventListener('waiting', this.onStateChange.bind(this, PlayerState.BUFFERING), false);\n }\n\n public syncTime() {\n const mainVideo = this.player.videoPlayers.find(v => v.main);\n const newRate = this.videojs.playbackRate();\n const syncThreshold = newRate === 2 ? 0.25 : newRate === 1.5 ? 0.2 : 0.1;\n const syncLoop = () => {\n if (this.main) {\n // Sync all other videos with the main one\n this.player.videoPlayers.forEach(video => {\n if (!video.main && video.videojs) {\n const videoCurrentTime = video.videojs.currentTime();\n const mainCurrentTime = this.videojs.currentTime();\n if (Math.abs(mainCurrentTime - videoCurrentTime) > syncThreshold) {\n video.videojs.currentTime(mainCurrentTime);\n console.log(`🔄 Synced video ${video.videoId} to ${mainCurrentTime}s (Threshold: ${syncThreshold})`);\n }\n }\n });\n } else if (mainVideo && mainVideo.videojs) {\n const mainCurrentTime = mainVideo.videojs.currentTime();\n const thisCurrentTime = this.videojs.currentTime();\n \n if (Math.abs(mainCurrentTime - thisCurrentTime) > syncThreshold) {\n this.videojs.currentTime(mainCurrentTime);\n console.log(`🔄 Synced video ${this.videoId} to ${mainCurrentTime}s (Threshold: ${syncThreshold})`);\n }\n }\n };\n \n requestAnimationFrame(syncLoop);\n }\n \n\n get videoElement(): HTMLVideoElement | null {\n return document.querySelector(`#video_player_${this.videoId} video`) as HTMLVideoElement\n }\n\n private onReady() {\n Logger.debug(this.videoId, '::[onReady]');\n this.timeTo(0);\n this.player.onReady();\n }\n\n private onSeeking() {\n Logger.debug(this.videoId, '::[onSeeking]');\n if (!this.main) {\n return;\n }\n // this.player.onTimeUpdate(this, this.getPlayedTime());\n requestAnimationFrame(() => {\n this.syncTime();\n });\n }\n\n private onTimeUpdate() {\n if (!this.main) {\n return;\n }\n requestAnimationFrame(() => {\n this.syncTime();\n });\n }\n\n private onStateChange(state: PlayerState) {\n Logger.debug(this.videoId, '::[onStateChange]', state);\n this.videoState = state;\n\n const statesToPropagate = [\n PlayerState.BUFFERING,\n PlayerState.READY,\n PlayerState.PLAYING,\n PlayerState.PAUSE,\n PlayerState.ENDED,\n PlayerState.UNSTARTED,\n ];\n if (state === PlayerState.PLAYING) {\n this.isPlaying = true;\n\n if (!this.main) {\n return;\n }\n }\n\n if (state === PlayerState.PAUSE) {\n this.isPlaying = false;\n if (!this.main) {\n return;\n }\n }\n\n if (state === PlayerState.BUFFERING) {\n this.isPlaying = false;\n }\n\n if (statesToPropagate.includes(state)) {\n this.player.changeState(state, this);\n }\n }\n\n private render() {\n // if video area is defined, add video to area\n this.videoPlayerArea = document.querySelector(this.videoPlayerConfig.id);\n if (!this.videoPlayerArea) {\n return Logger.debug('id not found: ', this.videoPlayerConfig.id);\n }\n this.videoPlayerArea.innerHTML = `\n <video \n id=\"video_player_${this.videoId}\"\n class=\"video-js vjs-theme-fantasy\"\n controls\n preload=\"auto\"\n data-setup='{\"playbackRates\": [1, 1.25, 1.5, 2]}'\n style=\"width:100%;height:100%;\"\n >\n <source src=\"${this.videoPlayerConfig.initialSrc}\" type=\"video/mp4\" />\n <p class=\"vjs-no-js\">\n To view this video please enable JavaScript, and consider upgrading to a\n web browser that\n <a href=\"https://videojs.com/html5-video-support/\" target=\"_blank\"\n >supports HTML5 video</a\n >\n </p>\n </video>\n `;\n // console.log(\"test\")\n this.videojs = window.videojs(`video_player_${this.videoId}`, {\n userActions: {\n doubleClick: false\n },\n controlBar: {\n // 'pictureInPictureToggle': false,\n volumePanel: this.sound,\n fullscreenToggle: false,\n playbackRateMenuButton: this.playBackRate,\n\n }\n });\n this.videojs.controls(true)\n this.videojs.muted(!this.sound)\n this._createFullscreenButton()\n // console.log(player);\n }\n\n private setupVideoElement(options: { controls?: boolean, main: boolean }) {\n if (options.controls !== undefined)\n this.setControls(options.controls);\n this.setMain(options.main);\n }\n\n public _swap(videoPlayer: VideoPlayer) {\n if (!this.videoElement || !videoPlayer.videoElement) return;\n\n const animateSwap = () => {\n if (window.document.fullscreenElement && window.innerHeight > window.innerWidth) {\n // Portrait mode\n this.videoElement!.style.height = \"100%\";\n videoPlayer.videoElement!.style.height = \"100vh\";\n } else {\n if (window.document.fullscreenElement) {\n this.videoElement!.style.height = \"100%\";\n videoPlayer.videoElement!.style.height = \"100vh\";\n } else {\n this.videoElement!.style.height = \"100%\";\n videoPlayer.videoElement!.style.height = \"100%\";\n }\n }\n };\n\n requestAnimationFrame(animateSwap);\n\n const nodeA = this.videoElement.parentElement;\n const nodeB = videoPlayer.videoElement.parentElement;\n // console.log(this.videoElement.attr('id'))\n // const nodeA = document.getElementById(this.videoElement.id)?.parentElement\n // const nodeB = document.getElementById(videoPlayer.videoElement.id)?.parentElement\n // console.log(videoInDom)\n // debugger\n const parentA = nodeA!.parentNode;\n const parentB = nodeB!.parentNode;\n\n\n // const newvideojs = videoPlayer.videojs;\n // videoPlayer.videojs = this.videojs;\n // this.videojs = newvideojs;\n\n if (!parentA || !parentB) throw new Error('Parent node not found');\n\n const siblingA = nodeA!.nextSibling === nodeB ? nodeA : nodeA!.nextSibling;\n parentB.insertBefore(nodeA!, nodeB!);\n parentA.insertBefore(nodeB!, siblingA!);\n\n const thisControls = this.controls;\n const thisMain = this.main;\n\n\n this.setupVideoElement({ controls: videoPlayer.controls, main: videoPlayer.main });\n videoPlayer.setupVideoElement({ controls: thisControls, main: thisMain });\n\n\n // this.videojs.dispose();\n // videoPlayer.videojs.dispose();\n // this.videojs = videojs(`video_player_${this.videoId}`);\n // videoPlayer.videojs = videojs(`video_player_${videoPlayer.videoId}`);\n }\n\n /**\n * -------------------------------\n * PUBLIC METHODS FOR VIDEO PLAYER\n * -------------------------------\n */\n\n public async play() {\n if (!this.videoElement) return;\n if (this.videoState === PlayerState.PLAYING || this.videoState === PlayerState.BUFFERING) return;\n const isPlaying = this.videoElement.currentTime > 0 && !this.videoElement.paused && !this.videoElement.ended && this.videoElement.readyState > this.videoElement.HAVE_CURRENT_DATA;\n if (isPlaying) {\n console.log(\"already playing\")\n return\n }\n\n // debugger;\n // const video = document.getElementById(this.videoElement.id)\n // await video!.play()\n await this.videoElement.play().then(() => {\n console.log(\"Playback started!\");\n })\n .catch(error => {\n console.warn(\"Playback failed:\", error);\n });;\n\n\n }\n\n public pause() {\n if (!this.videoElement) return;\n if (this.videoState === PlayerState.PAUSE) return;\n if (!this.isPlaying) return;\n try {\n this.videoElement.pause();\n }\n catch (error) {\n console.log(error)\n }\n }\n\n public stop() {\n if (!this.videoElement) return;\n try {\n this.videoElement.pause();\n this.timeTo(this.getDuration() - 0.5);\n }\n catch (error) {\n console.log(error)\n }\n }\n\n public setControls(controls: boolean) {\n if (!this.videoElement) return;\n this.videojs.controls(controls)\n // this.videojs.player.userActive(false)\n // this.videoElement.controls = controls;\n this.controls = controls;\n }\n\n public setMain(main: boolean) {\n this.main = main;\n }\n\n public timeTo(time: number) {\n if (!this.videoElement) return;\n time = parseFloat(time.toString());\n time = (time + this._startSeconds);\n\n if (time >= this.getDuration()) {\n this.videoElement.currentTime = this.getDuration() - 0.05;\n Logger.debug('timeTo: time is greater than duration');\n this.pause();\n return;\n }\n\n Logger.debug('set time to: ', time);\n this.videoElement.currentTime = time;\n }\n\n public getDuration() {\n return (this.videoElement?.duration || 0);\n }\n\n public getPlayLength() {\n return this.getDuration() - this._startSeconds;\n }\n\n public getCurrentTime() {\n return (this.videoElement?.currentTime || 0);\n }\n\n public getPlayedTime() {\n const time = this.getCurrentTime() - this._startSeconds;\n return Math.max(time, 0);\n }\n\n public isEnded() {\n const diff = Math.abs(this.getCurrentTime() - this.getDuration());\n return diff < 0.1;\n\n }\n\n private _createFullscreenButton() {\n const fullscreenButton = this.videojs?.controlBar.addChild('button', {\n clickHandler: function () {\n const doc = window.document;\n const videoElement = document.querySelector('video');\n const videoContainer = document.getElementById(\"fullscreen-part\");\n\n if (videoElement && videoContainer) {\n if (!doc.fullscreenElement) {\n // Enter fullscreen\n videoContainer.requestFullscreen().then(() => {\n videoElement.style.height = '100vh';\n videoElement.style.width = '100%';\n });\n\n } else {\n // Exit fullscreen\n document.exitFullscreen().then(() => {\n videoElement.style.height = '100%';\n videoElement.style.width = '100%';\n });\n }\n }\n }\n });\n\n fullscreenButton.controlText('Fullscreen');\n\n this.videojs?.controlBar.el().appendChild(fullscreenButton.el());\n const buttonDom = fullscreenButton.el();\n buttonDom.innerHTML = `<span aria-hidden=\"true\" class=\"vjs-icon-placeholder\"></span><span class=\"vjs-control-text\" aria-live=\"polite\">Fullscreen</span>`;\n buttonDom.classList.add('vjs-fullscreen-control');\n }\n\n\n\n\n}\n\nexport default VideoPlayer;","import { fi } from 'date-fns/locale';\nimport { PlayerState } from './constants';\nimport { MultiVideoPlayerOptions, VideoPlayerOptions } from './main';\nimport { Logger } from \"./utils\";\nimport VideoPlayer from './VideoPlayer';\n\nconst validStates = {\n [PlayerState.LOADING]: [PlayerState.LOADED],\n [PlayerState.LOADED]: [PlayerState.PLAYING],\n [PlayerState.PLAYING]: [PlayerState.PAUSE, PlayerState.ENDED, PlayerState.BUFFERING],\n [PlayerState.PAUSE]: [PlayerState.PLAYING, PlayerState.ENDED],\n [PlayerState.ENDED]: [PlayerState.PLAYING],\n\n [PlayerState.BUFFERING]: [PlayerState.READY, PlayerState.PAUSE, PlayerState.PLAYING],\n [PlayerState.READY]: [PlayerState.PLAYING],\n [PlayerState.UNSTARTED]: [],\n};\n\nconst isValidState = (currentState: PlayerState, nextState: PlayerState) => {\n const stateOuts: PlayerState[] = validStates[currentState];\n if (!stateOuts) {\n return false;\n }\n\n return stateOuts.includes(nextState);\n};\n\n\nclass SyncVideoPlayer {\n public options: MultiVideoPlayerOptions;\n public $container: Element | null;\n public videoPlayers: VideoPlayer[] = [];\n public state: PlayerState;\n private readyCount: number;\n private currentTime: number;\n\n constructor(options: MultiVideoPlayerOptions) {\n this.options = {\n controls: options.controls ?? true,\n loop: options.loop ?? false,\n area: options.area || '',\n videoPlayers: options.videoPlayers || [],\n template: '<div id=\"sync_video_player_container\"></div>'\n };\n\n this.state = PlayerState.LOADING;\n this.readyCount = 0;\n\n this.$container = null;\n\n this.videoPlayers = [];\n this.currentTime = 0;\n }\n\n public getDebugInfo() {\n return {\n state: this.state,\n currentTime: this.currentTime,\n videoPlayers: this.videoPlayers.map(vp => {\n return {\n id: vp.videoId,\n state: vp.videoState,\n currentTime: vp.getCurrentTime(),\n duration: vp.getDuration,\n isMain: vp.main,\n isPlaying: vp.isPlaying,\n };\n }),\n };\n }\n\n public mount() {\n this.render();\n this.addVideoPlayers(this.options.videoPlayers);\n }\n\n private render() {\n const { template, area } = this.options;\n if (!area) {\n return;\n }\n const areaEl = document.querySelector(area);\n if (!areaEl) {\n return Logger.error('area not found: ', area);\n }\n\n areaEl.innerHTML = template || '';\n this.$container = document.querySelector('#sync_video_player_container');\n }\n\n public async changeState(state: PlayerState, videoPlayer: VideoPlayer) {\n const mainVideoPlayer = this.videoPlayers.find((vp) => vp.main);\n\n if (state === PlayerState.BUFFERING) {\n if (mainVideoPlayer && mainVideoPlayer === videoPlayer) {\n return this.pause();\n }\n return;\n }\n\n if (state === PlayerState.PLAYING) {\n \n if (this.state !== PlayerState.BUFFERING) {\n return await this.play();\n }\n return;\n }\n\n if (state === PlayerState.PAUSE) {\n if (videoPlayer.isEnded()) {\n return;\n }\n return this.pause(true);\n }\n\n if (state === PlayerState.ENDED) {\n if (mainVideoPlayer && mainVideoPlayer !== videoPlayer) {\n return;\n }\n await this.moveStateTo(PlayerState.ENDED, () => {\n if (this.options.loop) {\n return this.timeTo(0);\n }\n });\n }\n\n if (state === PlayerState.READY) {\n const allReady = this.videoPlayers.every((vp) =>\n [PlayerState.READY, PlayerState.PLAYING, PlayerState.PAUSE].includes(vp.videoState)\n );\n\n if (allReady) {\n return await this.play();\n }\n }\n\n if (state === PlayerState.UNSTARTED) {\n if (this.state === PlayerState.ENDED && this.options.loop) {\n console.log(\"changeState - UNSTARTED - call : this.play()\");\n return await this.play();\n }\n }\n}\n\n\n private async moveStateTo(state: PlayerState, success?: (newState: PlayerState, oldState: PlayerState) => void, fail?: (newState: PlayerState, oldState: PlayerState) => void) {\n if (state === this.state) return;\n if (isValidState(this.state, state)) {\n const oldState = this.state;\n this.state = state;\n if (success) {\n await success(this.state, oldState);\n }\n Logger.debug('state changed to: ', state);\n } else {\n if (fail) {\n await fail(this.state, state);\n }\n Logger.error('invalid state change: ', this.state, state);\n }\n }\n\n public async onReady() {\n this.readyCount++;\n if (this.readyCount !== this.videoPlayers.length) return;\n await this.moveStateTo(PlayerState.LOADED);\n }\n\n public onTimeUpdate(videoPlayer: VideoPlayer, time: number) {\n const diff = Math.abs(this.currentTime - time);\n if (diff >= 0.2) {\n this.timeTo(time);\n }\n this.currentTime = time;\n this.fixVideoStates();\n }\n\n private fixVideoStates() {\n const mainVideoPlayer = this.videoPlayers.find((vp) => vp.main);\n if (!mainVideoPlayer) return;\n\n this.videoPlayers.forEach(async vp => {\n if (vp === mainVideoPlayer || vp.isEnded()) return;\n if (mainVideoPlayer.isPlaying && !vp.isPlaying) {\n await vp.play();\n } else if (!mainVideoPlayer.isPlaying && vp.isPlaying) {\n await vp.pause();\n }\n });\n }\n\n\n /**\n * ------------------------------\n * Public methods\n * ------------------------------\n */\n\n public addVideoPlayers(videoPlayers: VideoPlayerOptions[] | undefined) {\n if (!videoPlayers) return;\n\n videoPlayers.forEach(videoPlayer => {\n this.addVideoPlayer(videoPlayer);\n });\n }\n\n public addVideoPlayer(videoPlayer: VideoPlayerOptions) {\n const videoInstance = new VideoPlayer(this, videoPlayer);\n if (!videoInstance.videoElement) return;\n this.videoPlayers.push(videoInstance);\n }\n\n public async play() {\n await this.moveStateTo(PlayerState.PLAYING, async () => {\n // this.timeTo(this.currentTime);\n await Promise.all(\n this.videoPlayers.map(async (video) => {\n if (this.currentTime < video.getPlayLength()) {\n await video.play();\n }\n })\n );\n });\n }\n\n public pause(excludeMain?: boolean) {\n this.moveStateTo(PlayerState.PAUSE, () => {\n this.videoPlayers.forEach((video) => {\n video.pause();\n });\n });\n}\n\n public async stop() {\n await this.moveStateTo(PlayerState.PAUSE, async () => {\n await Promise.all(this.videoPlayers.map(async video => {\n await video.stop();\n }));\n });\n }\n\n public async timeTo(time: number) {\n this.currentTime = time;\n this.videoPlayers.forEach(async video => {\n await video.timeTo(time);\n });\n }\n\n public swapVideo(index1: number, index2: number) {\n if (index1 === index2) return;\n this.videoPlayers[index1]._swap(this.videoPlayers[index2]);\n const tmp = this.videoPlayers[index1];\n this.videoPlayers[index1] = this.videoPlayers[index2];\n this.videoPlayers[index2] = tmp;\n }\n}\n\nexport default SyncVideoPlayer;","import { defineComponent as _defineComponent } from 'vue'\nimport { openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, withModifiers as _withModifiers, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode } from \"vue\"\n\nconst _hoisted_1 = {\n class: \"container\",\n id: \"fullscreen-part\"\n}\nconst _hoisted_2 = { id: \"main-video\" }\nconst _hoisted_3 = { id: \"thumbnails-videos\" }\nconst _hoisted_4 = [\"id\", \"onClick\", \"onTouchend\"]\nconst _hoisted_5 = { class: \"controls\" }\nconst _hoisted_6 = { class: \"time\" }\n\nimport { onMounted, nextTick, ref } from \"vue\"\n\nimport SyncVideoPlayer from \"./SyncVideoPlayer\"\nimport { PlayerState } from './constants';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'VideoComponent',\n setup(__props) {\n\nconst multivideos = (window as any).multivideos\nconsole.log(multivideos)\n\nconst syncVideoPlayer = new SyncVideoPlayer({\n controls: false,\n loop: false,\n videoPlayers: multivideos || []\n})\n\n\n// build a list of video ids equal to multivideos length\nconst ids = ref(Array.from({ length: multivideos.length }, (_, i) => `video-${i}`))\nconst debugInfo = ref({})\n\nvar count = 0;\n\nonMounted(() => {\n syncVideoPlayer.mount();\n\n setInterval(() => {\n debugInfo.value = syncVideoPlayer.getDebugInfo();\n }, 50);\n\n // const videoElement = document.querySelector(\"#video-0 video\");\n // console.log(\"✅✅✅✅✅ videoElement = \", videoElement)\n // videoElement.addEventListener('play', (event) => {\n // count = count + 1;\n // try{\n // console.log(\"✅✅✅✅✅ 778999454555555555\", count)\n // syncVideoPlayer.play();\n // console.log(\"✅✅✅✅✅ 778999454555555555\")\n // }\n // catch(error){\n // console.log(error)\n // }\n // });\n\n // videoElement.addEventListener('pause', (event) => {\n // try{\n // syncVideoPlayer.pause();\n // }\n // catch(error){\n // console.log(error)\n // }\n // });\n \n\n // const buttonTest = document.querySelector('.vjs-play-control');\n // if (buttonTest) {\n // buttonTest.addEventListener('click', (event) => {\n // event.preventDefault();\n // event.stopPropagation(); \n // if(buttonTest.classList.contains('vjs-paused'))\n // {\n // console.log(\"✅✅✅✅✅ Play ✅✅✅✅✅\")\n // }\n // else {\n // console.log(\"✅✅✅✅✅ Pause ✅✅✅✅✅\")\n // }\n // });\n // }\n\n})\n\n\n// function resizeVideoContainers() {\n// /** resize video containers so it fits a 2/3 - 1/3 */\n\n// console.log(\"resizeVideoContainers\")\n// const mainVideoContainer = document.getElementById(\"main-video\")\n// const mainVideoHeight = mainVideoContainer?.clientHeight\n// // set height to thumbnails list\n// const thumbnailsVideos = document.getElementById(\"thumbnails-videos\")\n// // check if window size is less than 1280px (thumbnails wraps below in this case)\n// let thumbnailsVideoHeight = mainVideoHeight\n// if (window.innerWidth < 1280) {\n// thumbnailsVideoHeight = mainVideoHeight / 2\n\n// }\n// console.log(thumbnailsVideos, thumbnailsVideoHeight)\n\n// thumbnailsVideos!.style.height = `${thumbnailsVideoHeight}px`\n// }\n\n\nasync function onPlay() {\n await syncVideoPlayer.play()\n}\n\nasync function onPause() {\n await syncVideoPlayer.pause()\n}\n\nfunction onAdd() {\n // create area for video1\n const id = `video-${Math.random().toString(36).substring(2, 9)}`\n ids.value.push(id)\n nextTick(() => {\n // add video\n syncVideoPlayer.addVideoPlayer({\n id: `#${id}`,\n initialSrc:\n \"https://static.videezy.com/system/resources/previews/000/004/294/original/18_20Dragon_20Coaster_20Part_202.mp4\"\n })\n })\n}\n\nfunction onFullscreen() {\n document.getElementById(\"multivideo\")!.requestFullscreen()\n}\n\nasync function onClick(index: number) {\n syncVideoPlayer.swapVideo(0, index)\n}\n\nasync function onChange(e: Event) {\n const value = (e.target as HTMLInputElement).value\n await syncVideoPlayer.timeTo(parseFloat(value))\n}\n\n\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_openBlock(), _createElementBlock(\"div\", {\n class: \"box\",\n id: \"video-0\",\n key: 0,\n onClick: _cache[0] || (_cache[0] = ($event: any) => (onClick(0))),\n onTouchend: _cache[1] || (_cache[1] = ($event: any) => (onClick(0)))\n }, null, 32))\n ]),\n _createElementVNode(\"div\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(ids.value.slice(1), (id, i) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"box\",\n id: id,\n key: i + 1,\n onClick: _withModifiers(($event: any) => (onClick(i + 1)), [\"prevent\"]),\n onTouchend: _withModifiers(($event: any) => (onClick(i + 1)), [\"prevent\"])\n }, null, 40, _hoisted_4))\n }), 128))\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _createTextVNode(\" MAIN STATE = \" + _toDisplayString(debugInfo.value.state) + \" \", 1),\n _createElementVNode(\"ul\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(debugInfo.value.videoPlayers, (player) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: player.id\n }, _toDisplayString(player.id) + \" - \" + _toDisplayString(player.state), 1))\n }), 128))\n ]),\n _createElementVNode(\"button\", { onClick: onAdd }, \"Add video\"),\n _createElementVNode(\"button\", { onClick: onPlay }, \"Play\"),\n _createElementVNode(\"button\", { onClick: onPause }, \"Pause\"),\n _createElementVNode(\"button\", { onClick: onFullscreen }, \"fullscreen\"),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"input\", {\n type: \"range\",\n min: \"0\",\n max: \"100\",\n value: \"0\",\n class: \"slider\",\n id: \"myRange\",\n onInput: onChange\n }, null, 32)\n ])\n ])\n ]))\n}\n}\n\n})","<script setup lang=\"ts\">\nimport { onMounted, nextTick, ref } from \"vue\"\n\nimport SyncVideoPlayer from \"./SyncVideoPlayer\"\nimport { PlayerState } from './constants';\n\nconst multivideos = (window as any).multivideos\nconsole.log(multivideos)\n\nconst syncVideoPlayer = new SyncVideoPlayer({\n controls: false,\n loop: false,\n videoPlayers: multivideos || []\n})\n\n\n// build a list of video ids equal to multivideos length\nconst ids = ref(Array.from({ length: multivideos.length }, (_, i) => `video-${i}`))\nconst debugInfo = ref({})\n\nvar count = 0;\n\nonMounted(() => {\n syncVideoPlayer.mount();\n\n setInterval(() => {\n debugInfo.value = syncVideoPlayer.getDebugInfo();\n }, 50);\n\n // const videoElement = document.querySelector(\"#video-0 video\");\n // console.log(\"✅✅✅✅✅ videoElement = \", videoElement)\n // videoElement.addEventListener('play', (event) => {\n // count = count + 1;\n // try{\n // console.log(\"✅✅✅✅✅ 778999454555555555\", count)\n // syncVideoPlayer.play();\n // console.log(\"✅✅✅✅✅ 778999454555555555\")\n // }\n // catch(error){\n // console.log(error)\n // }\n // });\n\n // videoElement.addEventListener('pause', (event) => {\n // try{\n // syncVideoPlayer.pause();\n // }\n // catch(error){\n // console.log(error)\n // }\n // });\n \n\n // const buttonTest = document.querySelector('.vjs-play-control');\n // if (buttonTest) {\n // buttonTest.addEventListener('click', (event) => {\n // event.preventDefault();\n // event.stopPropagation(); \n // if(buttonTest.classList.contains('vjs-paused'))\n // {\n // console.log(\"✅✅✅✅✅ Play ✅✅✅✅✅\")\n // }\n // else {\n // console.log(\"✅✅✅✅✅ Pause ✅✅✅✅✅\")\n // }\n // });\n // }\n\n})\n\n\n// function resizeVideoContainers() {\n// /** resize video containers so it fits a 2/3 - 1/3 */\n\n// console.log(\"resizeVideoContainers\")\n// const mainVideoContainer = document.getElementById(\"main-video\")\n// const mainVideoHeight = mainVideoContainer?.clientHeight\n// // set height to thumbnails list\n// const thumbnailsVideos = document.getElementById(\"thumbnails-videos\")\n// // check if window size is less than 1280px (thumbnails wraps below in this case)\n// let thumbnailsVideoHeight = mainVideoHeight\n// if (window.innerWidth < 1280) {\n// thumbnailsVideoHeight = mainVideoHeight / 2\n\n// }\n// console.log(thumbnailsVideos, thumbnailsVideoHeight)\n\n// thumbnailsVideos!.style.height = `${thumbnailsVideoHeight}px`\n// }\n\n\nasync function onPlay() {\n await syncVideoPlayer.play()\n}\n\nasync function onPause() {\n await syncVideoPlayer.pause()\n}\n\nfunction onAdd() {\n // create area for video1\n const id = `video-${Math.random().toString(36).substring(2, 9)}`\n ids.value.push(id)\n nextTick(() => {\n // add video\n syncVideoPlayer.addVideoPlayer({\n id: `#${id}`,\n initialSrc:\n \"https://static.videezy.com/system/resources/previews/000/004/294/original/18_20Dragon_20Coaster_20Part_202.mp4\"\n })\n })\n}\n\nfunction onFullscreen() {\n document.getElementById(\"multivideo\")!.requestFullscreen()\n}\n\nasync function onClick(index: number) {\n syncVideoPlayer.swapVideo(0, index)\n}\n\nasync function onChange(e: Event) {\n const value = (e.target as HTMLInputElement).value\n await syncVideoPlayer.timeTo(parseFloat(value))\n}\n\n\n</script>\n\n<template>\n <div>\n <div>\n <div class=\"container\" id=\"fullscreen-part\">\n <div id=\"main-video\">\n <div class=\"box\" id=\"video-0\" :key=\"0\" @click=\"onClick(0)\" @touchend=\"onClick(0)\"></div>\n </div>\n <div id=\"thumbnails-videos\">\n <div v-for=\"(id, i) in ids.slice(1)\" class=\"box\" :id=\"id\" :key=\"i + 1\" @click.prevent=\"onClick(i + 1)\"\n @touchend.prevent=\"onClick(i + 1)\"></div>\n </div>\n </div>\n </div>\n\n <div class=\"controls\">\n MAIN STATE = {{ debugInfo.state }}\n <ul>\n <li v-for=\"player in debugInfo.videoPlayers\" :key=\"player.id\">\n {{ player.id }} - {{ player.state }}\n </li>\n </ul>\n\n <button @click=\"onAdd\">Add video</button>\n <button @click=\"onPlay\">Play</button>\n <button @click=\"onPause\">Pause</button>\n <button @click=\"onFullscreen\">fullscreen</button>\n <!-- range selector for time -->\n <div class=\"time\">\n <input type=\"range\" min=\"0\" max=\"100\" value=\"0\" class=\"slider\" id=\"myRange\" @input=\"onChange\" />\n </div>\n </div>\n </div>\n</template>\n\n<style>\n.container {\n position: relative;\n}\n\n#thumbnails-videos {\n position: absolute;\n top: 0;\n right: 0;\n width: 25%;\n margin-left: 10px;\n\n max-height: 100%;\n overflow-y: auto;\n}\n</style>\n","import script from \"./VideoComponent.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./VideoComponent.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./VideoComponent.vue?vue&type=style&index=0&id=482f0b94&lang=css\"\n\nconst __exports__ = script;\n\nexport default __exports__","import \"./compatibility\"\nimport { createApp } from \"vue\"\n\nimport ChatComponent from \"./components/ChatComponent.vue\"\nimport NotificationsBell from \"./components/NotificationsBell.vue\"\nimport VideoComponent from \"./video/VideoComponent.vue\"\n\nimport axios from \"axios\";\n// default axios config\naxios.defaults.xsrfHeaderName = \"X-CSRFTOKEN\";\naxios.defaults.xsrfCookieName = \"csrftoken\";\naxios.defaults.withCredentials = true\n\nif (document.getElementById(\"chat\")) {\n createApp(ChatComponent).mount('#chat')\n}\n\nif (document.getElementById(\"notifications\")) {\n createApp(NotificationsBell).mount('#notifications')\n}\n\nif(document.getElementById(\"multivideo\")) {\n createApp(VideoComponent).mount('#multivideo');\n}"],"names":["module","exports","utils","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","config","Promise","resolve","reject","requestData","data","requestHeaders","headers","isFormData","request","XMLHttpRequest","auth","username","password","unescape","encodeURIComponent","Authorization","btoa","fullPath","baseURL","url","open","method","toUpperCase","params","paramsSerializer","timeout","onreadystatechange","readyState","status","responseURL","indexOf","responseHeaders","getAllResponseHeaders","responseData","responseType","response","responseText","statusText","onabort","onerror","ontimeout","timeoutErrorMessage","isStandardBrowserEnv","xsrfValue","withCredentials","xsrfCookieName","read","undefined","xsrfHeaderName","forEach","val","key","toLowerCase","setRequestHeader","isUndefined","e","onDownloadProgress","addEventListener","onUploadProgress","upload","cancelToken","promise","then","cancel","abort","send","bind","Axios","mergeConfig","defaults","createInstance","defaultConfig","context","instance","prototype","extend","axios","create","instanceConfig","Cancel","CancelToken","isCancel","all","promises","spread","isAxiosError","message","this","toString","__CANCEL__","executor","TypeError","resolvePromise","token","reason","throwIfRequested","source","c","value","InterceptorManager","dispatchRequest","interceptors","arguments","chain","interceptor","unshift","fulfilled","rejected","push","length","shift","getUri","replace","handlers","use","eject","id","fn","h","isAbsoluteURL","combineURLs","requestedURL","enhanceError","code","error","Error","transformData","throwIfCancellationRequested","transformRequest","merge","common","adapter","transformResponse","toJSON","name","description","number","fileName","lineNumber","columnNumber","stack","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","target","isPlainObject","isArray","slice","mergeDeepProperties","prop","axiosKeys","concat","otherKeys","Object","keys","filter","validateStatus","fns","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","getDefaultAdapter","process","call","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","isObject","JSON","stringify","parse","maxContentLength","maxBodyLength","thisArg","args","Array","i","apply","encode","serializedParams","parts","v","isDate","toISOString","join","hashmarkIndex","relativeURL","write","expires","path","domain","secure","cookie","isNumber","Date","toGMTString","isString","document","match","RegExp","decodeURIComponent","remove","now","test","payload","originURL","msie","navigator","userAgent","urlParsingNode","createElement","resolveURL","href","setAttribute","protocol","host","search","hash","hostname","port","pathname","charAt","window","location","requestURL","parsed","normalizedName","ignoreDuplicateOf","split","line","trim","substr","callback","arr","constructor","FormData","result","ArrayBuffer","isView","getPrototypeOf","isFunction","pipe","URLSearchParams","str","product","obj","l","hasOwnProperty","assignValue","a","b","stripBOM","content","charCodeAt","testVideo","canPlayType","webm","container","getElementById","p","classList","add","prepend","innerHTML","sfc","props","__vccOpts","isCallable","tryToString","$TypeError","argument","$String","String","toIndexedObject","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","el","fromIndex","O","index","includes","DESCRIPTORS","getOwnPropertyDescriptor","SILENT_ON_NON_WRITABLE_LENGTH_SET","defineProperty","writable","uncurryThis","stringSlice","it","hasOwn","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","exceptions","f","createPropertyDescriptor","object","bitmap","enumerable","configurable","makeBuiltIn","defineGlobalProperty","options","simple","global","unsafe","nonConfigurable","nonWritable","fails","get","EXISTS","MAX_SAFE_INTEGER","version","Deno","versions","v8","createNonEnumerableProperty","defineBuiltIn","copyConstructorProperties","isForced","FORCED","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","sham","exec","NATIVE_BIND","Function","FunctionPrototype","getDescriptor","PROPER","CONFIGURABLE","uncurryThisWithBind","aFunction","namespace","aCallable","isNullOrUndefined","V","P","func","check","Math","globalThis","self","g","toObject","classof","$Object","propertyIsEnumerable","store","functionToString","inspectSource","set","has","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","enforce","getterFor","TYPE","state","type","metadata","facade","STATE","documentAll","replacement","feature","detection","normalize","POLYFILL","NATIVE","string","getBuiltIn","isPrototypeOf","USE_SYMBOL_AS_UID","$Symbol","toLength","CONFIGURABLE_FUNCTION_NAME","InternalStateModule","enforceInternalState","getInternalState","CONFIGURABLE_LENGTH","TEMPLATE","getter","setter","arity","ceil","floor","trunc","x","n","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","anObject","toPropertyKey","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","current","propertyIsEnumerableModule","internalObjectKeys","enumBugKeys","getOwnPropertyNames","getOwnPropertySymbols","names","$propertyIsEnumerable","NASHORN_BUG","input","pref","valueOf","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","uid","SHARED","IS_PURE","mode","copyright","license","V8_VERSION","symbol","Symbol","toIntegerOrInfinity","max","min","integer","IndexedObject","requireObjectCoercible","len","isSymbol","getMethod","ordinaryToPrimitive","wellKnownSymbol","TO_PRIMITIVE","exoticToPrim","toPrimitive","postfix","random","NATIVE_SYMBOL","iterator","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","$","setArrayLength","doesNotExceedSafeInteger","INCORRECT_TO_LENGTH","properErrorOnNonWritableLength","proto","item","argCount","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","__esModule","d","definition","o","makeMap","expectsLowerCase","Set","EMPTY_OBJ","EMPTY_ARR","NOOP","NO","isOn","isModelListener","startsWith","assign","splice","hasOwnProperty$1","isMap","toTypeString","isSet","isRegExp","isPromise","catch","objectToString","toRawType","isIntegerKey","parseInt","isReservedProp","cacheStringFunction","cache","hit","camelizeRE","camelize","_","hyphenateRE","hyphenate","capitalize","toHandlerKey","s","hasChanged","oldValue","is","invokeArrayFns","arg","def","looseToNumber","parseFloat","isNaN","toNumber","Number","NaN","_globalThis","getGlobalThis","GLOBALS_ALLOWED","isGloballyAllowed","normalizeStyle","res","normalized","parseStringStyle","listDelimiterRE","propertyDelimiterRE","styleCommentRE","cssText","ret","tmp","normalizeClass","normalizeProps","class","klass","style","specialBooleanAttrs","isSpecialBooleanAttr","includeBooleanAttr","looseCompareArrays","equal","looseEqual","aValidType","bValidType","getTime","aKeysCount","bKeysCount","aHasKey","bHasKey","looseIndexOf","findIndex","toDisplayString","replacer","_key","__v_isRef","size","entries","reduce","val2","stringifySymbol","values","map","_a","activeEffectScope","activeEffect","EffectScope","detached","_active","effects","cleanups","parent","scopes","active","run","currentEffectScope","on","off","stop","fromParent","last","pop","effectScope","recordEffectScope","effect","scope","getCurrentScope","onScopeDispose","ReactiveEffect","trigger","scheduler","deps","_dirtyLevel","_trackId","_runnings","_shouldSchedule","_depsLength","dirty","pauseTracking","dep","computed","triggerComputed","resetTracking","lastShouldTrack","shouldTrack","lastEffect","preCleanupEffect","postCleanupEffect","onStop","effect2","cleanupDepEffect","trackId","delete","cleanup","_effect","lazy","runner","pauseScheduleStack","trackStack","pauseScheduling","resetScheduling","queueEffectSchedulers","trackEffect","debuggerEventExtraInfo","oldDep","triggerEffects","dirtyLevel","lastDirtyLevel","scheduleEffects","allowRecurse","createDep","Map","targetMap","ITERATE_KEY","MAP_KEY_ITERATE_KEY","track","depsMap","newValue","oldTarget","newLength","key2","getDepFromReactive","isNonTrackableKeys","builtInSymbols","arrayInstrumentations","createArrayInstrumentations","instrumentations","toRaw","BaseReactiveHandler","_isReadonly","_shallow","receiver","isReadonly2","shallow","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","targetIsArray","Reflect","isRef","readonly","reactive","MutableReactiveHandler","super","isOldValueReadonly","isReadonly","isShallow","hadKey","deleteProperty","ReadonlyReactiveHandler","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","shallowReadonlyHandlers","toShallow","getProto","rawTarget","rawKey","has2","wrap","toReadonly","toReactive","get2","deleteEntry","clear","hadItems","createForEach","observed","createIterableMethod","targetIsMap","isPair","isKeyOnly","innerIterator","next","done","createReadonlyMethod","createInstrumentations","mutableInstrumentations2","shallowInstrumentations2","readonlyInstrumentations2","shallowReadonlyInstrumentations2","iteratorMethods","mutableInstrumentations","readonlyInstrumentations","shallowInstrumentations","shallowReadonlyInstrumentations","createInstrumentationGetter","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","shallowReadonlyCollectionHandlers","targetTypeMap","rawType","getTargetType","isExtensible","createReactiveObject","shallowReactive","shallowReadonly","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","proxy","Proxy","isReactive","isProxy","raw","markRaw","ComputedRefImpl","_setter","isSSR","_value","triggerRefValue","_cacheable","trackRefValue","_dirty","computed$1","getterOrOptions","debugOptions","onlyGetter","cRef","ref2","newVal","r","ref","createRef","shallowRef","rawValue","RefImpl","__v_isShallow","_rawValue","useDirectValue","triggerRef","unref","toValue","shallowUnwrapHandlers","proxyRefs","objectWithRefs","CustomRefImpl","factory","_get","_set","customRef","toRefs","propertyToRef","ObjectRefImpl","_object","_defaultValue","GetterRefImpl","_getter","__v_isReadonly","toRef","defaultValue","TrackOpTypes","TriggerOpTypes","assertNumber","ErrorCodes","ErrorTypeStrings$1","callWithErrorHandling","err","handleError","callWithAsyncErrorHandling","throwInDev","contextVNode","vnode","cur","exposedInstance","errorInfo","errorCapturedHooks","ec","appErrorHandler","appContext","errorHandler","logError","console","isFlushing","isFlushPending","queue","flushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","nextTick","findInsertionIndex","start","end","middle","middleJob","middleJobId","getId","pre","queueJob","job","queueFlush","flushJobs","invalidateJob","queuePostFlushCb","cb","flushPreFlushCbs","seen","flushPostFlushCbs","deduped","sort","Infinity","comparator","diff","devtools$1","devtoolsNotInstalled","setDevtoolsHook$1","hook","_b","enabled","event","emit","HTMLElement","replay","__VUE_DEVTOOLS_HOOK_REPLAY__","newHook","setTimeout","DeprecationTypes$1","warnDeprecation","globalCompatConfig","MODE","configureCompat$1","getCompatConfigForKey","compatConfig","isCompatEnabled","enableForBuiltIn","__isBuiltIn","rawMode","assertCompatEnabled","softAssertCompatEnabled","checkCompatEnabled","eventRegistryMap","getRegistry","events","once","wrapped","vm","cbs","emit$1","compatModelEventPrefix","convertLegacyVModelProps","shapeFlag","dynamicProps","comp","model","applyModelFromMixins","mixins","modelValue","m","compatModelEmit","modelHandler","rawArgs","isUnmounted","modelArg","modifiersKey","handlerName","handler","onceHandler","emitted","normalizeEmitsOptions","asMixin","emitsCache","cached","emits","hasExtends","extendEmits","raw2","normalizedFromExtend","extends","isEmitListener","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","prev","__scopeId","_scopeId","pushScopeId","popScopeId","withScopeId","_id","withCtx","ctx","isNonScopedSlot","_n","renderFnWithContext","_d","setBlockTracking","prevInstance","_c","_ns","renderComponentRoot","Component","withProxy","propsOptions","slots","attrs","render","renderCache","setupState","inheritAttrs","fallthroughAttrs","proxyToUse","thisProxy","normalizeVNode","render2","getFunctionalFallthrough","blockStack","createVNode","Comment","root","some","filterModelListeners","cloneVNode","cls","dirs","transition","filterSingleRoot","children","recurse","singleRoot","child","isVNode","shouldUpdateComponent","prevVNode","nextVNode","optimized","prevProps","prevChildren","component","nextProps","nextChildren","patchFlag","emitsOptions","$stable","hasPropsChanged","nextKeys","updateHOCHostEl","subTree","suspense","activeBranch","COMPONENTS","DIRECTIVES","FILTERS","resolveComponent","maybeSelfReference","resolveAsset","NULL_DYNAMIC_COMPONENT","for","resolveDynamicComponent","resolveDirective","resolveFilter$1","warnMissing","currentInstance","selfName","getComponentName","registry","isSuspense","__isSuspense","suspenseId","SuspenseImpl","n1","n2","anchor","parentComponent","parentSuspense","slotScopeIds","rendererInternals","mountSuspense","patchSuspense","hydrate","hydrateSuspense","createSuspenseBoundary","normalizeSuspenseChildren","Suspense","triggerEvent","eventListener","patch","hiddenContainer","pendingBranch","ssContent","ssFallback","setActiveBranch","um","unmount","newBranch","newFallback","isInFallback","isHydrating","isSameVNodeType","pendingId","fallback","move","parentNode","parentSuspenseId","isSuspensible","isVNodeSuspensible","initialAnchor","resume","sync","vnode2","parentComponent2","container2","delayEnter","afterLeave","hasUnresolvedAncestor","fallbackVNode","namespace2","anchor2","mountFallback","registerDep","setupRenderEffect","isInPendingSuspense","hydratedEl","asyncDep","asyncSetupResult","asyncResolved","handleSetupResult","placeholder","parentSuspense2","doRemove","node","hydrateNode","isSlotChildren","normalizeSuspenseSlot","default","block","trackBlock","isBlockTreeEnabled","openBlock","currentBlock","closeBlock","singleChild","dynamicChildren","queueEffectWithSuspense","branch","suspensible","legacyDirectiveHookMap","beforeMount","mounted","updated","unmounted","mapCompatDirectiveHook","dir","mappedName","mapped","mappedHook","ssrContextKey","useSSRContext","inject","watchEffect","doWatch","watchPostEffect","flush","watchSyncEffect","INITIAL_WATCHER_VALUE","watch","immediate","deep","onTrack","onTrigger","_cb","unwatch","reactiveGetter","source2","traverse","forceTrigger","isMultiSource","onCleanup","baseGetter","ssrCleanup","isInSSRComponentSetup","__watcherHandles","fill","queuePostRenderEffect","instanceWatch","publicThis","createPathGetter","reset","setCurrentInstance","segments","depth","currentDepth","withDirectives","directives","getExposeProxy","bindings","modifiers","invokeDirectiveHook","oldBindings","binding","leaveCbKey","enterCbKey$1","useTransitionState","isMounted","isLeaving","isUnmounting","leavingVNodes","onMounted","onBeforeUnmount","TransitionHookValidator","BaseTransitionPropsValidators","appear","Boolean","persisted","onBeforeEnter","onEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onLeave","onAfterLeave","onLeaveCancelled","onBeforeAppear","onAppear","onAfterAppear","onAppearCancelled","BaseTransitionImpl","setup","getCurrentInstance","prevTransitionKey","getTransitionRawChildren","hasFound","rawProps","emptyPlaceholder","innerChild","getKeepAliveChild","enterHooks","resolveTransitionHooks","setTransitionHooks","oldChild","oldInnerChild","transitionKeyChanged","getTransitionKey","leavingHooks","update","delayLeave","earlyRemove","delayedLeave","leavingVNodesCache","getLeavingNodesForType","BaseTransition","callHook","callAsyncHook","every","hook2","hooks","beforeEnter","leavingVNode","enter","afterHook","cancelHook","called","cancelled","leave","clone","isKeepAlive","keepComment","parentKey","keyedFragmentCount","Fragment","defineComponent","extraOptions","isAsyncWrapper","__asyncLoader","defineAsyncComponent","loader","loadingComponent","errorComponent","delay","onError","userOnError","resolvedComp","pendingRequest","retries","retry","load","thisRequest","userRetry","userFail","toStringTag","__asyncResolved","createInnerComp","loaded","delayed","ce","__isKeepAlive","KeepAliveImpl","include","exclude","sharedContext","renderer","_unmount","storageContainer","resetShapeFlag","pruneCache","pruneCacheEntry","activate","instance2","isDeactivated","vnodeHook","onVnodeMounted","invokeVNodeHook","deactivate","da","onVnodeUnmounted","matches","pendingCacheKey","cacheSubtree","getInnerChild","onUpdated","rawVNode","cachedVNode","KeepAlive","pattern","onActivated","registerKeepAliveHook","onDeactivated","wrappedHook","__wdc","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","onUnmounted","__weh","createHook","lifecycle","onBeforeMount","onBeforeUpdate","onServerPrefetch","onRenderTriggered","onRenderTracked","onErrorCaptured","getCompatChildren","walk","vnodes","getCompatListeners","listeners","convertLegacyRenderFn","_rc","_compatChecked","_compatWrapped","compatH","propsOrChildren","t","is2ndArgArrayChildren","convertLegacySlots","convertLegacyDirectives","convertLegacyProps","skipLegacyRootLevelProps","legacyProps","converted","handlerKey","convertLegacyEventKey","existing","incoming","staticClass","staticStyle","slotName","slot","slotChildren","scopedSlots","normalizeChildren","defineLegacyVNodeProperties","getInstance","componentOptions","defineProperties","tag","elm","componentInstance","text","Ctor","propsData","normalizedFunctionalComponentMap","legacySlotProxyHandlers","convertLegacyFunctionalComponent","legacyFn","Func","legacyCtx","injections","resolveInjections","displayName","renderList","renderItem","from","createSlots","dynamicSlots","j","renderSlot","noSlotted","isCE","validSlotContent","ensureValidVNode","rendered","createBlock","scopeId","toHandlers","preserveCaseIfNecessary","legacyBindObjectProps","_tag","_asProp","isSync","camelizedKey","hyphenatedKey","$event","legacyBindObjectListeners","mergeProps","legacyRenderSlot","bindObject","legacyresolveScopedSlots","hasDynamicKeys","mapKeyToName","staticCacheMap","legacyRenderStatic","staticRenderFns","legacyCheckKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","configKeyCodes","keyCodes","mappedKeyCode","isKeyNotMatch","expect","actual","legacyMarkOnce","tree","legacyBindDynamicKeys","legacyPrependModifier","installCompatInstanceProperties","del","$set","$delete","$mount","_compat_mount","$destroy","_compat_destroy","$slots","$scopedSlots","$on","$once","$off","$children","$listeners","$vnode","$options","resolveMergedOptions","$parent","_self","_uid","_data","_isMounted","_isDestroyed","$createElement","_o","_s","_l","_t","_q","_i","_m","_f","_k","_v","createTextVNode","_e","createCommentVNode","_u","_g","_p","getPublicInstance","isStatefulComponent","publicPropertiesMap","$el","$data","$props","$attrs","$refs","refs","$root","$emit","$forceUpdate","$nextTick","$watch","hasSetupBinding","__isScriptSetup","PublicInstanceProxyHandlers","accessCache","normalizedProps","shouldCacheAccess","publicGetter","cssModule","globalProperties","__cssModules","desc","RuntimeCompiledPublicInstanceProxyHandlers","unscopables","deepMergeData","to","toVal","fromVal","defineProps","defineEmits","defineExpose","exposed","defineOptions","defineSlots","defineModel","withDefaults","useSlots","getContext","useAttrs","setupContext","createSetupContext","normalizePropsOrEmits","mergeDefaults","opt","skipFactory","mergeModels","createPropsRestProxy","excludedKeys","withAsyncContext","getAwaitable","awaitable","unsetCurrentInstance","applyOptions","beforeCreate","callHook$1","dataOptions","computedOptions","methods","watchOptions","provide","provideOptions","injectOptions","created","beforeUpdate","activated","deactivated","beforeDestroy","beforeUnmount","destroyed","renderTracked","renderTriggered","errorCaptured","serverPrefetch","expose","components","filters","checkDuplicateProperties","methodHandler","createWatcher","provides","registerLifecycleHook","register","_hook","normalizeInject","base","extendsOptions","globalMixins","optionsCache","optionMergeStrategies","resolved","mergeOptions","strats","strat","internalOptionMergeStrats","mergeDataFn","mergeEmitsOrPropsOptions","mergeObjectOptions","mergeAsArray","mergeWatchOptions","mergeInject","merged","installLegacyOptionMergeStrats","singletonApp","singletonCtor","isCopyingConfig","createCompatVue$1","createApp","createSingletonApp","Vue","Vue2","createCompatApp","app","applySingletonPrototype","_createRoot","install","mixin","directive","_base","cid","extendCache","extendCtor","extendOptions","Super","SubVue","inlineOptions","mergeBase","superValue","observable","util","warn","defineReactive","configureCompat","installAppCompatProperties","installFilterMethod","installCompatMount","installLegacyAPIs","applySingletonAppMutations","_context","isRuntimeOnly","compilerOptions","isCustomElement","hasPrototypeAugmentations","descriptors","getOwnPropertyDescriptors","_component","hasNoRender","template","emptyRender","createComponentInstance","setupComponent","isCompatRoot","selectorOrEl","querySelector","SVGElement","MathMLElement","finishComponentSetup","Element","removeAttribute","_container","__vue_app__","bum","methodsToPatch","patched","WeakSet","reactiveVal","defineReactiveSimple","createAppContext","isNativeTag","performance","warnHandler","propsCache","uid$1","createAppAPI","rootComponent","rootProps","installedPlugins","_props","_instance","plugin","mount","rootContainer","isHydrate","runWithContext","currentApp","parentProvides","treatDefaultAsFactory","hasInjectionContext","createPropsDefaultThis","propKey","shouldSkipAttr","initProps","isStateful","InternalObjectKey","propsDefaults","setFullProps","updateProps","rawPrevProps","rawCurrentProps","hasAttrsChanged","kebabKey","resolvePropValue","propsToUpdate","endsWith","needCastKeys","rawCastValues","camelKey","castValues","isAbsent","hasDefault","normalizePropsOptions","extendProps","normalizedKey","validatePropName","booleanIndex","getTypeIndex","stringIndex","getType","ctor","isSameType","expectedTypes","isInternalKey","normalizeSlotValue","normalizeSlot","rawSlot","normalizeObjectSlots","rawSlots","_ctx","normalizeVNodeSlots","initSlots","updateSlots","needDeletionCheck","deletionComparisonTarget","setRef","rawRef","oldRawRef","isUnmount","refValue","owner","oldRef","_isString","_isRef","isVFor","doSet","k","hasMismatch","isSVGContainer","namespaceURI","tagName","isMathMLContainer","getContainerType","isComment","nodeType","createHydrationFunctions","mt","mountComponent","patchProp","createText","nextSibling","insert","createComment","hasChildNodes","_vnode","firstChild","isFragmentStart","onMismatch","handleMismatch","domType","nextNode","Text","isTemplateNode","replaceNode","Static","needToAdoptContent","staticCount","outerHTML","hydrateFragment","hydrateElement","locateClosingAnchor","previousSibling","lastChild","hydrateChildren","forcePatch","vnodeHooks","needCallTransitionHooks","needTransition","textContent","onClick","onVnodeBeforeMount","parentVNode","fragmentSlotScopeIds","isFragment","next2","close","newNode","oldNode","parentNode2","replaceChild","initFeatureFlags","createRenderer","baseCreateRenderer","createHydrationRenderer","createHydrationFns","__VUE__","hostInsert","hostRemove","hostPatchProp","hostCreateElement","hostCreateText","hostCreateComment","setText","hostSetText","setElementText","hostSetElementText","hostParentNode","hostNextSibling","setScopeId","hostSetScopeId","insertStaticContent","hostInsertStaticContent","getNextHostNode","processText","processCommentNode","mountStaticNode","processFragment","processElement","processComponent","internals","moveStaticNode","removeStaticNode","mountElement","patchElement","mountChildren","resolveChildrenNamespace","unmountChildren","cloneIfMounted","oldProps","newProps","toggleRecurse","onVnodeBeforeUpdate","patchBlockChildren","patchChildren","patchProps","onVnodeUpdated","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","traverseStaticChildren","updateComponent","initialVNode","compatMountInstance","updateComponentPreRender","componentUpdateFn","bu","u","nonHydratedAsyncRoot","locateNonHydratedAsyncRoot","originNext","nextTree","prevTree","bm","isAsyncWrapperVNode","hydrateSubTree","scopedInitialVNode","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","oldLength","commonLength","nextChild","parentAnchor","l2","e1","e2","nextPos","s1","s2","keyToNewIndexMap","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","getSequence","nextIndex","moveType","needTransition2","remove2","performLeave","shouldInvokeDirs","shouldInvokeVnodeHook","onVnodeBeforeUnmount","unmountComponent","removeFragment","performRemove","mc","pc","pbc","currentNamespace","encoding","allowed","ch1","ch2","arrI","subComponent","isTeleport","__isTeleport","isTeleportDisabled","disabled","isTargetSVG","isTargetMathML","resolveTarget","select","targetSelector","TeleportImpl","mainAnchor","targetAnchor","wasDisabled","currentContainer","currentAnchor","moveTeleport","nextTarget","updateCssVars","shouldRemove","hydrateTeleport","isReorder","targetNode","_lpa","Teleport","ut","normalizedAsyncComponentMap","convertLegacyAsyncComponent","fallbackPromise","rj","loading","convertLegacyComponent","functional","disableTracking","vnodeArgsTransformer","setupBlock","createElementBlock","createBaseVNode","__v_isVNode","transformVNodeArgs","transformer","normalizeKey","normalizeRef","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","__v_skip","_createVNode","cloned","isClassComponent","guardReactiveProps","extraProps","mergeRef","mergedProps","flag","createStaticVNode","numberOfNodes","asBlock","memo","slotFlag","toMerge","emptyAppContext","exposeProxy","attrsProxy","slotsProxy","bc","rtg","rtc","sp","internalSetCurrentInstance","setInSSRSetupState","registerGlobalSetter","setters","compile","installWithProxy","setupResult","setupStatefulComponent","resolvedResult","__ssrInlineRender","ssrRender","registerRuntimeCompiler","_compile","skipOptions","delimiters","componentCompilerOptions","finalCompilerOptions","getAttrsProxy","includeInferred","__name","useModel","camelizedName","hyphenatedName","localValue","propValue","modifierKey","i2","initCustomFormatter","withMemo","isMemoSame","ErrorTypeStrings","devtools","setDevtoolsHook","_ssrUtils","ssrUtils","resolveFilter","_compatUtils","createCompatVue","compatUtils","DeprecationTypes","svgNS","mathmlNS","doc","templateContainer","nodeOps","insertBefore","removeChild","createElementNS","multiple","createTextNode","nodeValue","selector","before","cloneNode","wrapper","appendChild","TRANSITION","ANIMATION","vtcKey","Transition","resolveTransitionProps","DOMTransitionPropsValidators","css","duration","enterFromClass","enterActiveClass","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","TransitionPropsValidators","h2","hasExplicitCallback","baseProps","legacyClassEnabled","legacyEnterFromClass","legacyAppearFromClass","legacyLeaveFromClass","toLegacyClass","durations","normalizeDuration","enterDuration","leaveDuration","finishEnter","isAppear","removeTransitionClass","finishLeave","_isLeaving","makeEnterHook","nextFrame","legacyClass","addTransitionClass","whenTransitionEnds","forceReflow","NumberOf","_vtc","requestAnimationFrame","endId","expectedType","explicitTimeout","_endId","resolveIfNotStale","propCount","getTransitionInfo","endEvent","ended","removeEventListener","onEnd","styles","getComputedStyle","getStyleProperties","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","toMs","body","offsetHeight","patchClass","isSVG","transitionClasses","className","vShowOldKey","vShow","display","setDisplay","initVShowForSSR","getSSRProps","CSS_VAR_TEXT","useCssVars","updateTeleports","vars","querySelectorAll","setVarsOnNode","setVars","setVarsOnVNode","ob","MutationObserver","observe","childList","disconnect","setProperty","patchStyle","currentDisplay","isCssString","setStyle","cssVarText","importantRE","prefixed","autoPrefix","prefixes","prefixCache","rawName","xlinkNS","patchAttr","removeAttributeNS","setAttributeNS","compatCoerceAttr","isBoolean","isEnumeratedAttr","v2CoercedValue","patchDOMProp","getAttribute","needRemove","veiKey","patchEvent","prevValue","nextValue","invokers","existingInvoker","parseName","invoker","createInvoker","optionsModifierRE","cachedNow","getNow","initialValue","_vts","attached","patchStopImmediatePropagation","originalStop","stopImmediatePropagation","_stopped","isNativeOn","shouldSetAsProp","_trueValue","_falseValue","defineCustomElement","hydrate2","Comp","VueCustomElement","VueElement","initialProps","defineSSRCustomElement","BaseClass","_def","_connected","_resolved","_numberProps","_ob","shadowRoot","attachShadow","_resolveProps","connectedCallback","_update","_resolveDef","disconnectedCallback","attributes","_setAttr","mutations","attributeName","isAsync","numberProps","_applyStyles","asyncDef","declaredPropKeys","_setProp","_getProp","shouldReflect","shouldUpdate","dispatch","dispatchEvent","CustomEvent","detail","useCssModule","modules","mod","positionMap","newPositionMap","moveCbKey","enterCbKey","TransitionGroupImpl","moveClass","hasCSSTransform","callPendingCbs","recordPosition","movedChildren","applyTranslation","transform","webkitTransform","transitionDuration","propertyName","cssTransitionProps","getBoundingClientRect","TransitionGroup","oldPos","newPos","dx","left","dy","top","getModelAssigner","onCompositionStart","composing","onCompositionEnd","Event","assignKey","vModelText","castToNumber","domValue","elValue","activeElement","vModelCheckbox","_modelValue","elementValue","getValue","checked","found","filtered","getCheckboxValue","setChecked","vModelRadio","vModelSelect","isSetModel","selectedVal","selected","_assigning","setSelected","_binding","isMultiple","isArrayValue","option","optionValue","optionType","selectedIndex","vModelDynamic","callModelHook","resolveDynamicModel","modelToUse","initVModelForSSR","systemModifiers","modifierGuards","stopPropagation","prevent","preventDefault","currentTarget","ctrl","ctrlKey","shiftKey","alt","altKey","meta","metaKey","button","right","exact","withModifiers","_withMods","cacheKey","guard","keyNames","esc","space","up","down","withKeys","globalKeyCodes","_withKeys","eventKey","keyCode","codes","rendererOptions","enabledHydration","ensureRenderer","ensureHydrationRenderer","containerOrSelector","normalizeContainer","resolveRootNamespace","createSSRApp","ssrDirectiveInitialized","initDirectivesForSSR","runtimeDom","freeze","__proto__","createElementVNode","wrappedCreateApp","show","Vue$1","_cache","$setup","_component_vue_advanced_chat","_resolveComponent","_openBlock","_createBlock","currentUserId","rooms","messagesLoaded","roomId","messages","title","ROOMS_EMPTY","ROOM_EMPTY","NEW_MESSAGES","MESSAGE_DELETED","MESSAGES_EMPTY","CONVERSATION_STARTED","TYPE_MESSAGE","SEARCH","IS_ONLINE","LAST_SEEN","IS_TYPING","onSendMessage","sendMessage","makeMap$2","list2","NOOP$1","extend$2","hasOwnProperty$3","hasOwn$1","isArray$2","isMap$1","toTypeString$1","isFunction$2","isString$2","isObject$2","objectToString$1","hasChanged$1","def$1","w","wasTracked","trackOpBit","newTracked","initDepMarkers","finalizeDepMarkers","ptr","effectTrackDepth","maxMarkerBits","cleanupEffect","deferStop","trackEffects","shouldTrack2","triggerEffect","get$1","createGetter","shallowGet","readonlyGet","set$1","createSetter","shallowSet","get$1$1","isShallow2","has$1","set$1$1","self2","makeMap$1","isArray$1","isString$1","isObject$1","isFunction$1","onRE$1","isOn$1","isModelListener$1","extend$1","hasOwnProperty$2","cacheStringFunction$1","camelizeRE$1","camelize$1","hyphenateRE$1","hyphenate$1","capitalize$1","toNumber$1","pendingPreFlushCbs","activePreFlushCbs","preFlushIndex","currentPreFlushParentJob","p2","queueCb","activeQueue","pendingQueue","queuePreFlushCb","parentJob","isModelListener2","render3","flush2","path2","_leaveCb","callHook2","_enterCb","internalInstance","beforeMount2","updated2","unmounted2","unwrapInjectedRef","set2","register2","unwrapRef","directive2","hostCloneNode","areChildrenSVG","update2","remove3","text2","compile$1","createAttrsProxy","onRE","content2","_getNow","skipTimestampCheck","_getNow2","skipTimestampCheck2","createEvent","timeStamp","ffMatch","addEventListener$1","_vei","nativeOnRE","resolve2","def2","hasOptions","rawKeys","_moveCb","_vod","_export_sfc","_sfc_main$q","infinite","required","messageId","_hoisted_1$q","_hoisted_2$n","_hoisted_3$j","_hoisted_4$g","_hoisted_5$b","_hoisted_6$7","_sfc_render$q","Loader","_sfc_main$p","param","svgItem","toggle","menu","file","paperclip","emoji","pencil","checkmark","eye","dropdown","deleted","microphone","svgId","_hoisted_1$p","_hoisted_2$m","_hoisted_3$i","_sfc_render$p","xmlns","width","height","viewBox","SvgIcon","_sfc_main$o","textMessages","showSearch","showAddRoom","loadingRooms","showSearchBar","_hoisted_1$o","_hoisted_2$l","_sfc_render$o","_component_svg_icon","autocomplete","onInput","RoomsSearch","element$1","decodeNamedCharacterReference","characterReference2","char","items","parameters","chunkStart","combineExtensions","extensions","syntaxExtension","extension","maybe","code2","constructs","combineHtmlExtensions","htmlExtensions","htmlExtension","decodeNumericCharacterReference","fromCharCode","characterReferences","replace2","value2","normalizeIdentifier","unicodePunctuationRegex","asciiAlpha","regexCheck","asciiAlphanumeric","asciiAtext","asciiControl","asciiDigit","asciiHexDigit","asciiPunctuation","markdownLineEnding","markdownLineEndingOrSpace","markdownSpace","unicodePunctuation","unicodeWhitespace","regex","sanitizeUri","normalizeUri","colon","questionMark","numberSign","slash","skip","protocolHref","protocolSrc","settings","tags","definitions2","buffers","mediaStack","tightStack","defaultHandlers","blockQuote","onenterblockquote","codeFenced","onentercodefenced","codeFencedFenceInfo","codeFencedFenceMeta","codeIndented","onentercodeindented","codeText","onentercodetext","onentercontent","onenterdefinition","definitionDestinationString","onenterdefinitiondestinationstring","definitionLabelString","definitionTitleString","emphasis","onenteremphasis","htmlFlow","onenterhtmlflow","htmlText","onenterhtml","image","onenterimage","label","link","onenterlink","listItemMarker","onenterlistitemmarker","listItemValue","onenterlistitemvalue","listOrdered","onenterlistordered","listUnordered","onenterlistunordered","paragraph","onenterparagraph","reference","resource","onenterresource","resourceDestinationString","onenterresourcedestinationstring","resourceTitleString","setextHeading","onentersetextheading","strong","onenterstrong","exit","atxHeading","onexitatxheading","atxHeadingSequence","onexitatxheadingsequence","autolinkEmail","onexitautolinkemail","autolinkProtocol","onexitautolinkprotocol","onexitblockquote","characterEscapeValue","onexitdata","characterReferenceMarkerHexadecimal","onexitcharacterreferencemarker","characterReferenceMarkerNumeric","characterReferenceValue","onexitcharacterreferencevalue","onexitflowcode","codeFencedFence","onexitcodefencedfence","onexitcodefencedfenceinfo","codeFlowValue","onexitcodeflowvalue","onexitcodetext","codeTextData","onexitdefinition","onexitdefinitiondestinationstring","onexitdefinitionlabelstring","onexitdefinitiontitlestring","onexitemphasis","hardBreakEscape","onexithardbreak","hardBreakTrailing","onexithtml","htmlFlowData","htmlTextData","onexitmedia","onexitlabel","labelText","onexitlabeltext","lineEnding","onexitlineending","onexitlistordered","onexitlistunordered","onexitparagraph","referenceString","onexitreferencestring","onexitresourcedestinationstring","onexitresourcetitlestring","onexitsetextheading","setextHeadingLineSequence","onexitsetextheadinglinesequence","setextHeadingText","onexitsetextheadingtext","onexitstrong","thematicBreak","onexitthematicbreak","definitions","lineEndingIfNeeded","encode$1","setData","getData","lineEndingStyle","defaultLineEnding","compile2","listStack","head","sliceSerialize","prepareList","null","handles","kind","handle","atMarker","containerBalance","loose","_loose","buf","lineEnding2","buffer2","previous2","onexitlistitem","count","labelId","referenceId","destination","media","context2","allowDangerousProtocol","allowDangerousHtml","uri","factorySpace","ok","limit","POSITIVE_INFINITY","size2","prefix","consume","content$1","tokenize","initializeContent","contentStart","attempt","parser","contentInitial","afterContentStartConstruct","paragraphInitial","lineStart","contentType","previous","document$2","initializeDocument","containerConstruct","tokenizeContainer","childFlow","childToken","lineStartOffset","continued","containerState","continuation","documentContinue","checkNewContainers","_closeFlow","closeFlow","indexBeforeExits","point","indexBeforeFlow","exitContainers","documentContinued","currentConstruct","concrete","flowStart","interrupt","_gfmTableDynamicInterruptHack","thereIsANewContainer","thereIsNoNewContainer","offset","containerContinue","flow","_tokenizer","flowContinue","writeToChild","eof","stream","sliceStream","defineSkip","entry","nok","disable","classifyCharacter","resolveAll","constructs2","attention","tokenizeAttention","resolveAllAttention","group","openingSequence","closingSequence","nextEvents","_close","_open","movePoint","insideSpan","attentionMarkers2","attentionMarkers","marker","inside","after","column","_bufferIndex","autolink","tokenizeAutolink","schemeOrEmailAtext","emailAtext","schemeInsideOrEmailAtext","urlInside","emailAtSignOrDot","emailLabel","emailValue","blankLine","tokenizeBlankLine","partial","tokenizeBlockQuoteStart","tokenizeBlockQuoteContinuation","contStart","contBefore","characterEscape","tokenizeCharacterEscape","characterReference","tokenizeCharacterReference","numeric","nonLazyContinuation","tokenizeNonLazyContinuation","tokenizeCodeFenced","closeStart","tokenizeCloseStart","initialPrefix","sizeOpen","beforeSequenceOpen","tail","sequenceOpen","infoBefore","atNonLazyBreak","info","metaBefore","contentBefore","beforeContentChunk","contentChunk","effects2","ok2","nok2","startBefore","start2","beforeSequenceClose","sequenceClose","sequenceCloseAfter","tokenizeCodeIndented","furtherStart","tokenizeFurtherStart","afterPrefix","atBreak","furtherStart2","tokenizeCodeText","resolveCodeText","tailExitIndex","headEnterIndex","between","subtokenize","jumps","lineIndex","otherIndex","otherEvent","subevents","more","_isInFirstContentOfListItem","subcontent","eventIndex","startPosition","startPositions","tokenizer","childEvents","gaps","adjust","breaks","_gfmTasklistFirstContentOfListItem","tokenizeContent","resolveContent","continuationConstruct","tokenizeContinuation","chunkInside","contentEnd","contentContinue","startLookahead","factoryDestination","literalType","literalMarkerType","stringType","balance","enclosedBefore","enclosed","enclosedEscape","rawEscape","factoryLabel","markerType","labelInside","labelEscape","factoryTitle","begin","escape","factoryWhitespace","tokenizeDefinition","titleBefore","tokenizeTitleBefore","identifier","labelAfter","markerAfter","destinationBefore","destinationAfter","afterWhitespace","defined","titleBefore2","beforeMarker","titleAfter","titleAfterOptionalWhitespace","tokenizeHardBreakEscape","headingAtx","tokenizeHeadingAtx","resolveHeadingAtx","sequenceFurther","htmlBlockNames","htmlRawNames","tokenizeHtmlFlow","resolveTo","resolveToHtmlFlow","blankLineBefore","tokenizeBlankLineBefore","nonLazyContinuationStart","tokenizeNonLazyContinuationStart","closingTag","markerB","declarationOpen","tagCloseStart","continuationDeclarationInside","commentOpenInside","cdataOpenInside","basicSelfClosing","completeClosingTagAfter","completeAttributeNameBefore","completeEnd","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCdataInside","continuationStart","continuationAfter","continuationStartNonLazy","continuationBefore","continuationRawEndTag","tokenizeHtmlText","returnState","instruction","tagOpen","declaration","commentEnd","comment","commentClose","lineEndingBefore","cdata","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","lineEndingAfter","lineEndingAfterPrefix","labelEnd","tokenizeLabelEnd","resolveToLabelEnd","resolveAllLabelEnd","resourceConstruct","tokenizeResource","referenceFullConstruct","tokenizeReferenceFull","referenceCollapsedConstruct","tokenizeReferenceCollapsed","_inactive","_balanced","labelStart","labelEndNok","labelEndOk","referenceNotFull","resourceStart","resourceBefore","resourceOpen","resourceEnd","resourceDestinationAfter","resourceDestinationMissing","resourceBetween","resourceTitleAfter","referenceFull","referenceFullAfter","referenceFullMissing","referenceCollapsedStart","referenceCollapsedOpen","labelStartImage","tokenizeLabelStartImage","labelStartLink","tokenizeLabelStartLink","tokenizeLineEnding","tokenizeThematicBreak","sequence","list","tokenizeListStart","tokenizeListContinuation","tokenizeListEnd","listItemPrefixWhitespaceConstruct","tokenizeListItemPrefixWhitespace","indentConstruct","tokenizeIndent$1","initialSize","onBlank","endOfPrefix","otherPrefix","initialBlankLine","notBlank","furtherBlankLines","notInCurrentItem","setextUnderline","tokenizeSetextUnderline","resolveToSetextUnderline","definition2","heading","flow$1","initializeFlow","initial","atBlankEnding","flowInitial","afterConstruct","resolver","createResolver","string$1","initializeFactory","text$3","field","initializeText","resolveAllLineSuffixes","notText","extraResolver","resolveAllText","chunks","tabs","bufferIndex","chunk","_index","createTokenizer","initialize","columnStart","resolveAllConstructs","exit2","constructFactory","onsuccessfulconstruct","onsuccessfulcheck","main","addResult","expandTabs","serializeChunks","sliceChunks","accountForPotentialSkip","chunkIndex","go","fields","construct","restore","onreturn","bogusState","listOfConstructs","constructIndex","handleListOfConstructs","handleMapOfConstructs","handleConstruct","from2","startPoint","startPrevious","startCurrentConstruct","startEventsIndex","startStack","startIndex","startBufferIndex","endIndex","endBufferIndex","view","atTab","document$1","text$2","defaultConstructs","creator","postprocess","preprocess","atCarriageReturn","preprocessor","endPosition","lastIndex","micromark","wwwPrefix","tokenizeWwwPrefix","tokenizeDomain","tokenizePath","trail","tokenizeTrail","emailDomainDotTrail","tokenizeEmailDomainDotTrail","wwwAutolink","tokenizeWwwAutolink","previousWww","protocolAutolink","tokenizeProtocolAutolink","previousProtocol","emailAutolink","tokenizeEmailAutolink","previousEmail","text$1","gfmAutolinkLiteral","dot","gfmAtext","previousUnbalanced","atext","emailDomain","emailDomainAfter","emailDomainDot","wwwStart","wwwAfter","protocolStart","fromCodePoint","protocolPrefixInside","protocolSlashesInside","afterProtocol","protocolAfter","wwwPrefixInside","wwwPrefixAfter","underscoreInLastSegment","underscoreInLastLastSegment","domainInside","domainAfter","domainAtPunctuation","sizeClose","pathInside","pathAtPunctuation","trail2","trailCharRefStart","trailBracketAfter","trailCharRefInside","_gfmAutolinkLiteralWalkedInto","gfmAutolinkLiteralHtml","literalAutolinkEmail","literalAutolinkHttp","literalAutolinkWww","anchorFromToken","indent","tokenizeIndent","gfmFootnote","tokenizeDefinitionStart","tokenizeDefinitionContinuation","gfmFootnoteDefinitionEnd","tokenizeGfmFootnoteCall","tokenizePotentialGfmFootnoteCall","resolveToPotentialGfmFootnoteCall","gfmFootnotes","codePointAt","string2","callStart","callData","callEscape","labelAtMarker","whitespaceAfter","own","emptyOptions","defaultBackLabel","referenceIndex","rereferenceIndex","gfmFootnoteHtml","labelTagName","labelAttributes","backLabel","clobberPrefix","gfmFootnoteDefinition","gfmFootnoteDefinitionLabelString","gfmFootnoteCallString","footnoteStack","calls","counts","counter","safeId","reuseCounter","references","$0","gfmStrikethroughHtml","strikethrough","gfmStrikethrough","options_","single","singleTilde","tokenizeStrikethrough","resolveAllStrikethrough","insideSpan2","alignment","none","center","gfmTableHtml","table","tableAlign","_align","tableBody","tableData","tableColumn","align","tableHead","tableHeader","tableRow","$1","EditMap","add2","addImpl","vecs","editMap","at","gfmTableAlign","inDelimiterRow","alignIndex","gfmTable","tokenizeTable","resolveTable","sizeB","bodyRowStart","headRowBefore","headRowStart","headRowBreak","headDelimiterStart","headRowData","headRowEscape","headDelimiterBefore","headDelimiterValueBefore","headDelimiterCellBefore","headDelimiterNok","headDelimiterLeftAlignmentAfter","headDelimiterCellAfter","headDelimiterFiller","headDelimiterRightAlignmentAfter","bodyRowBreak","bodyRowData","bodyRowEscape","currentTable","currentBody","currentCell","inFirstCellAwaitingPipe","rowKind","lastCell","cell","afterHeadAwaitingFirstBodyRow","lastTableEnd","flushTableEnd","flushCell","range","rowEnd","previousCell","groupName","valueName","getPoint","relatedStart","relatedEnd","valueToken","exits","related","side","reFlow","reText","gfmTagfilterHtml","exitHtmlData","gfmTaskListItemHtml","taskListCheck","taskListCheckValueChecked","tasklistCheck","tokenizeTasklistCheck","gfmTaskListItem","spaceThenNonSpace","gfm","gfmHtml","carriageReturn","lineFeed","carriageReturnLineFeed","horizontalTab","virtualSpace","nul","soh","stx","etx","eot","enq","ack","bel","bs","ht","lf","vt","ff","cr","so","si","dle","dc1","dc2","dc3","dc4","nak","syn","etb","can","em","sub","fs","gs","rs","us","exclamationMark","quotationMark","dollarSign","percentSign","ampersand","apostrophe","leftParenthesis","rightParenthesis","asterisk","plusSign","comma","dash","digit0","digit1","digit2","digit3","digit4","digit5","digit6","digit7","digit8","digit9","semicolon","lessThan","equalsTo","greaterThan","atSign","uppercaseA","uppercaseB","uppercaseC","uppercaseD","uppercaseE","uppercaseF","uppercaseG","uppercaseH","uppercaseI","uppercaseJ","uppercaseK","uppercaseL","uppercaseM","uppercaseN","uppercaseO","uppercaseP","uppercaseQ","uppercaseR","uppercaseS","uppercaseT","uppercaseU","uppercaseV","uppercaseW","uppercaseX","uppercaseY","uppercaseZ","leftSquareBracket","backslash","rightSquareBracket","caret","underscore","graveAccent","lowercaseA","lowercaseB","lowercaseC","lowercaseD","lowercaseE","lowercaseF","lowercaseG","lowercaseH","lowercaseI","lowercaseJ","lowercaseK","lowercaseL","lowercaseM","lowercaseN","lowercaseO","lowercaseP","lowercaseQ","lowercaseR","lowercaseS","lowercaseT","lowercaseU","lowercaseV","lowercaseW","lowercaseX","lowercaseY","lowercaseZ","leftCurlyBrace","verticalBar","rightCurlyBrace","tilde","degree","byteOrderMarker","replacementCharacter","underlineTokenize","insideEscape","underlineConstruct","underline","underlineHtml","usertagTokenize","usertagConstruct","usertag","usertagHtml","users","usertagContent","userId","user","find","user2","markdown","textFormatting","gfmDisabled","linkify","markdown2","replaceAll","singleLine","element2","types","innerText","IMAGE_TYPES","VIDEO_TYPES","AUDIO_TYPES","_sfc_main$n","roomList","reply","linkOptions","parsedMessage","checkType","checkImageType","lastIndexOf","slashIndex","substring","isMedia","setImageSize","Image","onLoad","img","ratio","round","src","openTag","_hoisted_1$n","_hoisted_2$k","_hoisted_3$h","_sfc_render$n","rel","FormatMessage","HANDLERS_PROPERTY","HAS_WINDOWS","HAS_NAVIGATOR","IS_TOUCH","msMaxTouchPoints","EVENTS","processDirectiveArguments","bindingValue","isFunction2","middleware","isActive","detectIframe","capture","execHandler","onFauxIframeClick","contains","onEvent","composedPath","isClickOutside","eventName","srcTarget","documentElement","detectIframeEvent","thisHandler","vClickOutside","typingText","room","typingUsers","checkMediaType","isImageFile","isVideoFile","isImageVideoFile","isAudioFile","_sfc_main$m","clickOutside","roomActions","roomMenuOpened","getLastMessage","isTyping","lastMessage","senderId","userStatus","isMessageCheckmarkVisible","saved","distributed","formattedDuration","files","isAudio","roomActionHandler","action","closeRoomMenu","_hoisted_1$m","_hoisted_2$j","_hoisted_3$g","_hoisted_4$f","_hoisted_5$a","_hoisted_6$6","_hoisted_7$6","_hoisted_8$4","_hoisted_9$4","_hoisted_10$4","_hoisted_11$3","_hoisted_12$3","_hoisted_13$1","_sfc_render$m","_component_format_message","_directive_click_outside","avatar","roomName","timestamp","new","idx","unreadCount","RoomContent","filteredItems","formatString","_sfc_main$l","showRoomsList","isMobile","roomsLoaded","customSearchRoomEnabled","scrollDistance","filteredRooms","observer","showLoader","loadingMoreRooms","selectedRoomId","oldVal","initIntersectionObserver","rootMargin","threshold","IntersectionObserver","isIntersecting","loadMoreRooms","searchRoom","ev","openRoom","_hoisted_1$l","_hoisted_2$i","_hoisted_3$f","_hoisted_4$e","_sfc_render$l","_component_rooms_search","_component_loader","_component_room_content","onSearchRoom","onAddRoom","fRoom","onRoomActionHandler","RoomsList","_sfc_main$k","singleRoom","roomInfoEnabled","menuActions","messageSelectionEnabled","messageSelectionActions","selectedMessagesTotal","menuOpened","messageSelectionAnimationEnded","lastChanged","menuActionHandler","closeMenu","messageSelectionActionHandler","_hoisted_1$k","_hoisted_2$h","_hoisted_3$e","_hoisted_4$d","_hoisted_5$9","_hoisted_6$5","_hoisted_7$5","_hoisted_8$3","_hoisted_9$3","_hoisted_10$3","_hoisted_11$2","_hoisted_12$2","_hoisted_13","_sfc_render$k","CANCEL_SELECT_MESSAGE","RoomHeader","assertNonEmptyString","DB_VERSION_CURRENT","DB_VERSION_INITIAL","STORE_EMOJI","STORE_KEYVALUE","STORE_FAVORITES","FIELD_TOKENS","INDEX_TOKENS","FIELD_UNICODE","INDEX_COUNT","FIELD_GROUP","FIELD_ORDER","INDEX_GROUP_AND_ORDER","KEY_ETAG","KEY_URL","KEY_PREFERRED_SKINTONE","MODE_READONLY","MODE_READWRITE","INDEX_SKIN_UNICODE","FIELD_SKIN_UNICODE","DEFAULT_DATA_SOURCE$1","DEFAULT_LOCALE$1","uniqBy$1","uniqEmoji","emojis","unicode","initialMigration","db","createObjectStore","keyPath","indexes","indexName","keyPath2","multiEntry","createIndex","openReqs","databaseCache","onCloseListeners","handleOpenOrDeleteReq","req","onblocked","onsuccess","async","createDatabase","dbName","indexedDB","onupgradeneeded","oldVersion","onclose","closeDatabase","openDatabase","dbPromise","storeName","readOnlyOrReadWrite","txn","transaction","durability","objectStore","oncomplete","listener","deleteDatabase","addOnCloseListener","irregularEmoticons","extractTokens","word","MIN_SEARCH_TEXT_LENGTH$1","normalizeTokens","transformEmojiData","emojiData","annotation","emoticon","order","shortcodes","skins","version2","tokens","flat","res2","skinTones","skinUnicodes","skinVersions","tone","emoji2","version3","callStore","getIDB","getAllIDB","commit","minBy","array","minItem","findCommonMembers","arrays","uniqByFunc","shortestArray","results","isEmpty","hasData","eTag","oldETag","oldUrl","doFullDatabaseScanForSingleResult","predicate","BATCH_SIZE","emojiStore","lastKey","processNextBatch","getAll","IDBKeyRange","lowerBound","loadData","transformedData","metaStore","todo","checkFetched","onFetched","put","getEmojiByGroup","bound","getEmojiBySearchQuery","query","intermediateResults","checkDone","onDone","only","getEmojiByShortcode","shortcode","lowerShortcodes","_2","getEmojiByUnicode","result2","incrementFavoriteEmojiCount","getTopFavoriteEmoji","customEmojiIndex2","favoritesStore","openCursor","cursor","continue","unicodeOrName","primaryKey","custom","byName","CODA_MARKER","trie","itemToTokens","currentMap","nextMap","valuesAtCoda","search2","results2","queue2","currentMap2","entriesSortedByKey","requiredKeys$1","assertCustomEmojis","customEmojis","isArray2","firstItemIsFaulty","customEmojiIndex","sortByName","emojiToTokens","searchTrie","searchByExactMatch","searchByPrefix","shortcodeToEmoji","nameToEmoji","customEmoji","byShortcode","cleanEmoji","warnETag","requiredKeys","assertEmojiData","assertStatus","dataSource","getETag","fetch","getETagAndData","json","arrayBufferToBinaryString","binary","bytes","Uint8Array","byteLength","binaryStringToArrayBuffer","jsonChecksum","inString","inBuffer","outBuffer","crypto","subtle","digest","outBinString","checkForUpdates","eTagAndData","loadDataForFirstTime","Database","locale","_dbName","_db","_lazyUpdate","_custom","_clear","_ready","_init","empty","ready","checkReady","customs","natives","getEmojiByUnicodeOrName","getPreferredSkinTone","setPreferredSkinTone","skinTone","_shutdown","noop","blank_object","run_all","is_function","thing","safe_not_equal","src_url_equal_anchor","current_component","src_url_equal","element_src","is_empty","action_destroyer","action_result","destroy","append","detach","listen","attr","attribute","set_data","wholeText","set_input_value","set_style","important","removeProperty","set_current_component","dirty_components","binding_callbacks","render_callbacks","flush_callbacks","resolved_promise","update_scheduled","schedule_update","tick","add_render_callback","seen_callbacks","flushidx","saved_component","$$","fragment","before_update","after_update","outroing","transition_in","local","globals","destroy_block","lookup","update_keyed_each","old_blocks","get_key","dynamic","create_each_block2","get_context","old_indexes","new_blocks","new_lookup","deltas","child_ctx","abs","will_move","did_move","insert2","first","new_block","old_block","new_key","old_key","mount_component","customElement","on_mount","on_destroy","new_on_destroy","destroy_component","detaching","make_dirty","init","create_fragment2","not_equal","append_styles","parent_component","on_disconnect","callbacks","skip_bound","rest","SvelteComponent","$$props","$$set","allGroups","groups","customGroup","MIN_SEARCH_TEXT_LENGTH","NUM_SKIN_TONES","rIC","requestIdleCallback","hasZwj","versionsAndTestEmoji","TIMEOUT_BEFORE_LOADING_MESSAGE","DEFAULT_SKIN_TONE_EMOJI","DEFAULT_NUM_COLUMNS","MOST_COMMONLY_USED_EMOJI","FONT_FAMILY","DEFAULT_CATEGORY_SORTING","getTextFeature","color","canvas","textBaseline","font","fillStyle","scale","fillText","getImageData","compareFeatures","feature1","feature2","feature1Str","feature2Str","testColorEmojiSupported","determineEmojiSupportLevel","emojiSupportLevelPromise","supportedZwjEmojis","VARIATION_SELECTOR","SKINTONE_MODIFIER","ZWJ","LIGHT_SKIN_TONE","LIGHT_SKIN_TONE_MODIFIER","applySkinTone","zwjIndex","halt","incrementOrDecrement","decrement","uniqBy","summarizeEmojisForUI","emojiSupportLevel","toSimpleSkinsMap","skin","category","rAF","baselineEmojiWidth","resizeObserverSupported","ResizeObserver","calculateWidth","onUpdate","resizeObserver","contentRect","calculateTextWidth","createRange","selectNode","checkZwjSupport","zwjEmojisToCheck","baselineEmoji","emojiToDomNode","domNode","emojiWidth","supported","uniq","Map_1","get_each_context","get_each_context_1","get_each_context_2","get_each_context_3","get_each_context_4","create_each_block_4","key_1","div","div_id_value","div_class_value","div_aria_selected_value","div_title_value","div_aria_label_value","t_value","new_ctx","create_each_block_3","button_aria_controls_value","button_aria_label_value","button_aria_selected_value","button_title_value","dispose","click_handler","categories","create_else_block_1","img_src_value","ctx2","create_if_block_1","create_each_block_2","button_role_value","button_class_value","button_id_value","select_block_type","current_block_type","if_block","create_each_block_1","div0","div0_id_value","div0_class_value","div1","div1_role_value","div1_aria_labelledby_value","div1_id_value","searchResultsLabel","each_blocks","each_1_lookup","each_value_2","create_else_block","create_if_block","create_each_block","select_block_type_1","create_fragment","section","div4","input_placeholder_value","input_aria_expanded_value","input_aria_activedescendant_value","t0","span0","t1","div2","button0","t2","button0_class_value","div2_class_value","span1","t3","div3","div3_class_value","div3_aria_label_value","div3_aria_activedescendant_value","div3_aria_hidden_value","div5","div5_aria_label_value","div7","div6","div8","t4","div8_class_value","div10","div9","div10_class_value","div10_role_value","div10_aria_label_value","div10_id_value","div11","div11_class_value","div11_aria_label_value","button1","section_aria_label_value","t0_value","searchLabel","t1_value","searchDescription","t3_value","skinToneDescription","each_blocks_3","each0_lookup","each_blocks_2","each1_lookup","each_blocks_1","each2_lookup","each3_lookup","each_value_4","each_value_3","get_key_1","each_value_1","get_key_2","each_value","get_key_3","skinTonesLabel","categoriesLabel","favoritesLabel","regionLabel","$$self","$$invalidate","rootElement","tabpanelElement","skinToneDropdown","skinToneButtonText","pickerStyle","defaultFavoriteEmojis","currentGroup","activeSearchItemId","skinToneEmoji","i18n","database","customCategorySorting","initialLoad","currentEmojis","currentEmojisWithCategories","rawSearchText","searchText","searchMode","activeSearchItem","skinTonePickerExpanded","skinTonePickerExpandedAfterAnimation","currentSkinTone","activeSkinTone","skinToneButtonLabel","currentFavorites","numColumns","isRtl","scrollbarWidth","currentGroupIndex","groups$1","databaseLoaded","focus","getRootNode","fireEvent","bubbles","composed","unicodeWithSkin","currentSkinTone2","labelWithSkin","isSkinToneOption","calculateEmojiGridStyle","newNumColumns","getPropertyValue","newIsRtl","parentWidth","parentElement","newScrollbarWidth","checkZwjSupportAndUpdate","rootNode","isZwjSupported","filterEmojisByVersion","summarizeEmojis","getEmojisByGroup","getEmojisBySearchQuery","onSearchKeydown","goToNextOrPrevious","clickEmoji","onNavClick","onNavKeydown","doFocus","emojiSummary","skinTonedUnicode","onEmojiClick","onSkinToneOptionsClick","onClickSkinToneButton","onSkinToneOptionsKeydown","changeActiveSkinTone","nextSkinTone","onSkinToneOptionsKeyup","onSkinToneOptionsFocusOut","relatedTarget","input_input_handler","div3_binding","$$value","level","emojiUnsupportedMessage","div10_binding","button1_binding","section_binding","$$props2","handleDatabaseLoading","showingLoadingMessage","timeoutHandle","loadingMessage","networkErrorMessage","clearTimeout","updateEmojis","currentSearchText","newEmojis","currentGroupId","updatePreferredSkinTone","skinToneLabel","updateDefaultFavoriteEmojis","updateFavorites","dbFavorites","favorites","scrollTop","calculateCurrentEmojisWithCategories","categoriesToEmoji","Picker","DEFAULT_DATA_SOURCE","DEFAULT_LOCALE","enI18n","activities","objects","symbols","flags","PROPS","PickerElement","_dbFlush","_cmp","observedAttributes","attributeChangedCallback","attrName","_dbCreate","findParentBySelector","customElements","define","_sfc_main$j","emojiOpened","emojiReaction","positionTop","positionRight","emojiDataSource","emojiPickerHeight","emojiPickerTop","emojiPickerRight","addCustomStyling","emojiPicker","picker","nav","searchBox","openEmoji","setEmojiPickerPosition","clientY","innerWidth","innerHeight","mobileSize","roomFooterRef","roomFooterTop","pickerTopPosition","_hoisted_1$j","_sfc_render$j","_component_emoji_picker","EmojiPickerContainer","_sfc_main$i","isImage","isVideo","_hoisted_1$i","_hoisted_2$g","_hoisted_3$d","_hoisted_4$c","_sfc_render$i","localUrl","controls","RoomFile","_sfc_main$h","_hoisted_1$h","_hoisted_2$f","_hoisted_3$c","_sfc_render$h","_component_room_file","onRemoveFile","RoomFiles","_sfc_main$g","percentage","isMouseDown","onMouseDown","seekPos","calculateLineHeadPosition","progress","onMouseMove","onMouseUp","progressWidth","leftPosition","pos","clientX","_hoisted_1$g","_hoisted_2$e","_sfc_render$g","onMousedown","onMouseover","onMouseout","AudioControl","_sfc_main$f","isPlaying","convertTimeMMSS","playedTime","playerUniqId","audioSource","resetProgress","player","updateProgressTime","onTimeUpdate","seconds","playback","pause","play","currentTime","onUpdateProgress","_hoisted_1$f","_hoisted_2$d","_sfc_render$f","_component_audio_control","onChangeLinehead","onHoverAudioProgress","AudioPlayer","_sfc_main$e","messageReply","firstFile","isOtherFile","_hoisted_1$e","_hoisted_2$c","_hoisted_3$b","_hoisted_4$b","_hoisted_5$8","_hoisted_6$4","_hoisted_7$4","_hoisted_8$2","_hoisted_9$2","_hoisted_10$2","_hoisted_11$1","_hoisted_12$1","_sfc_render$e","_component_audio_player","RoomMessageReply","_sfc_main$d","filteredUsersTag","selectItem","activeUpOrDown","activeItem","_hoisted_1$d","_hoisted_2$b","_hoisted_3$a","_hoisted_4$a","_sfc_render$d","RoomUsersTag","_sfc_main$c","filteredEmojis","_hoisted_1$c","_hoisted_2$a","_sfc_render$c","RoomEmojis","_sfc_main$b","filteredTemplatesText","_hoisted_1$b","_hoisted_2$9","_hoisted_3$9","_hoisted_4$9","_hoisted_5$7","_sfc_render$b","RoomTemplatesText","new_byte$4","Int8Array","new_short","Int16Array","new_int$d","Int32Array","new_float$f","Float32Array","new_double$1","Float64Array","new_float_n$6","sz","A","new_int_n$2","new_short_n$1","new_array_n$1","Arrays$7","toIndex","System$a","srcPos","dest","destPos","srcEnd","out","println","log","printf","Util$5","ShortBlock$3","ordinal","SQRT2","FAST_LOG10","log10","FAST_LOG10_X","y","short_block_allowed","short_block_coupled","short_block_dispensed","short_block_forced","Float$2","VbrMode$7","MAX_VALUE","vbr_off","vbr_mt","vbr_rh","vbr_abr","vbr_mtrh","vbr_default","assert$b","System","VbrMode","Float","ShortBlock","Util","Arrays","new_array_n","new_byte","new_double","new_float","new_float_n","new_int","new_int_n","new_short_n","assert","System$9","Util$4","Arrays$6","new_float$e","NewMDCT","enwindow","NS","NL","win","tantab_l","Encoder","SHORT_TYPE","cx","ca","cs","window_subband","x1","x1Pos","xr","wp","x2","mdct_short","inout","inoutPos","tc0","tc1","tc2","ts0","ts1","ts2","mdct_long","outPos","_in","ct","st","tc3","tc4","ts5","ts6","ts7","ts8","ts3","ts4","tc5","tc6","tc7","tc8","mdct_sub48","gfc","w0","w1","wk","wkPos","ch","channels_out","gr","mode_gr","band","gi","l3_side","tt","mdct_enc","mdct_encPos","samp","sb_sample","sampPos","block_type","band0","band1","mixed_block_flag","amp_filter","work","bd","arraycopy","System$8","new_float$d","new_float_n$5","III_psy_xmin","SBMAX_l","SBMAX_s","iii_psy_xmin","III_psy_ratio","thm","en","MPEGMode","_ordinal","STEREO","JOINT_STEREO","DUAL_CHANNEL","MONO","NOT_SET","System$7","VbrMode$6","new_float$c","new_float_n$4","new_int$c","assert$a","FFTOFFSET","MPG_MD_MS_LR","psy","vbr","qupvt","setModules","_bs","_psy","_qupvt","_vbr","newMDCT","adjust_ATH","gr2_max","max_pow","ATH","useAdjust","loudness_sq","aaSensitivityP","adjustLimit","adj_lim_new","updateStats","bitrate_index","mode_ext","bitrate_stereoMode_Hist","bt","bitrate_blockType_Hist","lame_encode_frame_init","gfp","inbuf","internal_flags","primebuff0","primebuff1","mf_size","BLKSIZE","framesize","lame_encode_mp3_frame","inbuf_l","inbuf_r","mp3buf","mp3bufPos","mp3buf_size","mp3count","masking_LR","masking","masking_MS","pe_use","tot_ener","ms_ener_ratio","pe","pe_MS","padding","slot_lag","frac_SpF","out_samplerate","psymodel","bufp","bufpPos","blocktype","VBR","L3psycho_anal_vbr","L3psycho_anal_ns","cod_info","NORM_TYPE","MPG_MD_LR_LR","force_ms","sum_pe_MS","sum_pe_LR","gi0","gi1","analysis","pinfo","ms_ratio","ers","energy","nsPsy","pefirbuf","fircoef","iteration_loop","format_bitstream","copy_buffer","bWriteVbrTag","addVbrFrame","pcmdata","set_frame_pinfo","ENCDELAY","POSTDELAY","MDCTDELAY","DECDELAY","SBLIMIT","CBANDS","SBPSY_l","SBPSY_s","PSFB21","PSFB12","HBLKSIZE","BLKSIZE_s","HBLKSIZE_s","START_TYPE","STOP_TYPE","MPG_MD_LR_I","MPG_MD_MS_I","Util$3","new_float$b","FFT","window2","window_s","costab","fht","fz","fzPos","k4","fi","tri","k1","k2","k3","kx","f1","f0","f3","f2","g0","g1","g2","g3","rv_tbl","fft_short","x_real","chn","bufPos","fft_long","jj","init_fft","cos","PI","VbrMode$5","Float$1","ShortBlock$2","Util$2","Arrays$5","new_float$a","new_float_n$3","new_int$b","assert$9","PsyModel","fft","LOG10","rpelev","rpelev2","rpelev_s","rpelev2_s","DELBARK","VO_SCALE","temporalmask_sustain_sec","NS_PREECHO_ATT0","NS_PREECHO_ATT1","NS_PREECHO_ATT2","NS_MSFIX","NSFIRLEN","LN_TO_LOG10","NON_LINEAR_SCALE_ENERGY","psycho_loudness_approx","loudness_power","eql_w","compute_ffts","fftenergy","fftenergy_s","wsamp_l","wsamp_lPos","wsamp_s","wsamp_sPos","gr_out","re","im","totalenergy","energy_save","athaa_loudapprox","loudness_sq_save","ma_max_i1","ma_max_i2","ma_max_m","I1LIMIT","I2LIMIT","MLIMIT","tab","init_mask_add_max_values","pow","table1","table2","table3","mask_add","m1","m2","kk","shortblock","cb_s","cb_l","table2_","vbrpsy_mask_add","calc_interchannel_masking","sb","sblock","msfix1","mld","mld_l","rmid","rside","mld_s","ns_msfix","msfix","athadjust","msfix2","athlower","ath","bm_l","thmLR","thmM","thmS","bm_s","convert_partition2scalefac_s","eb","thr","enn","thmm","bo_s_sb","bo_s","npart_s","b_lim","w_curr","PSY","bo_s_weight","w_next","convert_partition2scalefac_l","bo_l_sb","bo_l","npart_l","bo_l_weight","compute_masking_s","ebb","numlines_s","s3ind_s","ecb","s3_ss","nb_s1","blocktype_old","nb_s2","block_type_set","uselongblock","blocktype_d","short_blocks","NS_INTERP","regcoef_s","pecalc_s","mr","masking_lower","pe_s","regcoef_l","pecalc_l","pe_l","calc_energy","avg","numlines_l","rnumlines_l","calc_mask_index_l","mask_idx","last_tab_entry","vbrpsy_compute_fft_l","vbrpsy_compute_fft_s","vbrpsy_compute_loudness_approximation_l","masking_ratio","masking_MS_ratio","percep_entropy","percep_MS_entropy","numchn","pcfact","wsamp_L","wsamp_S","eb_l","eb_s","ns_hpfsmpl","mask_idx_l","mask_idx_s","ResvMax","ResvSize","firbuf2","firbufPos","sum1","sum2","attackThreshold","en_subshort","en_short","attack_intensity","ns_uselongblock","ns_attacks","last_en_subshort","pf","pfPos","pfe","ers_save","attackthre_s","attackthre","lastAttacks","s3ind","eb2","s3_ll","nb_1","nb_2","interChRatio","ATHlower","ppe","ppePos","fircoef_","vbrpsy_attack_detection","sub_short_factor","n_chn_out","n_chn_psy","firbuf","factor","vbrpsy_skip_masking_s","vbrpsy_skip_masking_l","psyvbr_calc_mask_index_s","vbrpsy_compute_masking_s","float","int","dd","dd_n","avg_mask","minval_s","vbrpsy_compute_masking_l","ecb_limit","ecb_limit_2","ecb_limit_1","minval_l","vbrpsy_compute_block_type","vbrpsy_apply_block_type","vbrpsy_compute_MS_thresholds","cb_mld","ath_cb","ebM","ebS","thmL","thmR","mld_m","thmMS","s3_func_x","bark","hf_slope","tempy","tempx","exp","norm_s3_func_x","lim_a","lim_b","sum","norm","s3_func","temp","sqrt","freq2bark","freq","atan","init_numline","numlines","bo","bval","bval_width","bo_w","sfreq","blksize","scalepos","deltafreq","sbmax","b_frq","sample_freq_frac","partition","ni","j2","bark1","sfb","i1","f_tmp","bark2","init_s3_values","npart","use_old_s3","s3","numberOfNoneZero","s3_x_norm","stereo_demask","ATHformula_GB","ch01","mld_cb_l","mld_cb_s","new_thmm","psymodel_init","useOldS3","bvl_a","bvl_b","snr_l_a","snr_l_b","snr_s_a","snr_s_b","experimentalZ","ms_ener_ratio_old","scalefac_band","snr","ATHformula","decay","exp_nspsytune","frame_duration","ATHtype","freq_inc","eql_balance","ATHcurve","LameGlobalFlags","class_id","num_samples","num_channels","in_samplerate","scale_left","scale_right","decode_only","quality","free_format","findReplayGain","decode_on_the_fly","write_id3tag_automatic","brate","compression_ratio","original","error_protection","strict_ISO","disable_reservoir","quant_comp","quant_comp_short","experimentalY","preset","VBR_q_frac","VBR_q","VBR_mean_bitrate_kbps","VBR_min_bitrate_kbps","VBR_max_bitrate_kbps","VBR_hard_min","lowpassfreq","highpassfreq","lowpasswidth","highpasswidth","maskingadjust","maskingadjust_short","ATHonly","ATHshort","noATH","athaa_type","athaa_sensitivity","useTemporal","tune","tune_value_a","encoder_delay","encoder_padding","frameNum","lame_allocated_gfp","L3Side$1","SFBMAX","new_float$9","new_int$a","GrInfo","l3_enc","scalefac","xrpow_max","part2_3_length","big_values","count1","global_gain","scalefac_compress","table_select","subblock_gain","region0_count","region1_count","preflag","scalefac_scale","count1table_select","part2_length","sfb_lmax","sfb_smin","psy_lmax","sfbmax","psymax","sfbdivide","count1bits","sfb_partition_table","slen","max_nonzero_coeff","clone_int","clone_float","other","new_int$9","IIISideInfo","main_data_begin","private_bits","resvDrain_pre","resvDrain_post","scfsi","System$6","new_int$8","ScaleFac","arrL","arrS","arr21","arr12","psfb21","psfb12","new_float$8","new_float_n$2","new_int$7","NsPsy","longfact","shortfact","VBRSeekInfo","want","bag","nVbrNumFrames","nBytesWritten","TotalFrameSize","new_byte$3","new_float$7","new_float_n$1","new_int$6","new_int_n$1","LameInternalFlags$1","MAX_HEADER_LEN","Header","write_timing","Class_ID","iteration_init_init","fill_buffer_resample_init","mfbuf","MFSIZE","channels_in","resample_ratio","mf_samples_to_encode","VBR_min_bitrate","VBR_max_bitrate","samplerate_index","lowpass1","lowpass2","highpass1","highpass2","noise_shaping","noise_shaping_amp","substep_shaping","noise_shaping_stop","use_best_huffman","full_outer_loop","tag_spec","nMusicCRC","OldValue","CurrentStep","bv_scf","pseudohalf","sfb21_extra","inbuf_old","blackfilt","BPC","itime","sideinfo_len","header","MAX_HEADER_BUF","h_ptr","w_ptr","ancillary_flag","numlines_s_num1","numlines_l_num1","ms_ratio_s_old","ms_ratio_l_old","VBR_seek_table","nogap_total","nogap_current","findPeakSample","PeakSample","RadioGain","AudiophileGain","rgdata","noclipGainChange","noclipScale","hip","in_buffer_nsamples","in_buffer_0","in_buffer_1","MAX_BITS_PER_CHANNEL","MAX_BITS_PER_GRANULE","new_float$6","System$5","Arrays$4","GainAnalysis$1","PINK_REF","RMS_PERCENTILE","RMS_WINDOW_TIME_NUMERATOR","RMS_WINDOW_TIME_DENOMINATOR","ABYule","ABButter","filterYule","inputPos","output","outputPos","nSamples","kernel","filterButter","ResetSampleFrequency","rgData","samplefreq","MAX_ORDER","linprebuf","lstepbuf","loutbuf","rinprebuf","rstepbuf","routbuf","reqindex","INIT_GAIN_ANALYSIS_ERROR","sampleWindow","lsum","rsum","totsamp","ill","INIT_GAIN_ANALYSIS_OK","fsqr","analyzeResult","Array2","elems","GAIN_NOT_ENOUGH_SAMPLES","upper","STEPS_per_dB","InitGainAnalysis","linpre","rinpre","lstep","rstep","lout","rout","B","AnalyzeSamples","left_samples","left_samplesPos","right_samples","right_samplesPos","curleft","curleftBase","curright","currightBase","batchsamples","cursamples","cursamplepos","GAIN_ANALYSIS_OK","GAIN_ANALYSIS_ERROR","ival","GetTitleGain","retval","MAX_dB","YULE_ORDER","MAX_SAMP_FREQ","MAX_SAMPLES_PER_WINDOW","new_float$5","new_int$5","ReplayGain","freqindex","MeanBits$1","meanBits","bits","new_float$4","new_int$4","assert$8","CBRNewIterationLoop","_quantize","quantize","max_bits","l3_xmin","xrpow","targ_bits","mean_bits","mb","rv","ResvFrameBegin","on_pe","ms_convert","reduce_side","masking_lower_db","mask_adjust","mask_adjust_short","init_outer_loop","init_xrpow","calc_xmin","outer_loop","iteration_finish_one","ResvFrameEnd","HuffCodeTab","hl","xlen","linmax","hlen","Tables$1","t1HB","t1l","t2HB","t2l","t3HB","t3l","t5HB","t5l","t6HB","t6l","t7HB","t7l","t8HB","t8l","t9HB","t9l","t10HB","t10l","t11HB","t11l","t12HB","t12l","t13HB","t13l","t16_5l","t15HB","t15l","t16HB","t16l","t24HB","t24l","t32HB","t32l","t33HB","t33l","largetbl","table23","table56","bitrate_table","samplerate_table","scfsi_band","VbrMode$4","Util$1","new_float$3","new_int$3","assert$7","QuantizePVT","tak","POW20","pow20","Q_MAX2","_tk","_rv","IPOW20","ipow20","DBL_EPSILON","IXMAX_VAL","PRECALC_SIZE","Q_MAX","NSATHSCALE","nr_of_sfb_block","pretab","sfBandIndex","pow43","adj43","ATHmdct","compute_ath","ATH_l","ATH_psfb21","ATH_s","ATH_psfb12","samp_freq","ATH_f","StartLine","iteration_init","bass","alto","treble","sfb21","huffman_init","cbr","tbits","add_bits","extra_bits","ResvMaxBits","fac","move_bits","athAdjust","athFloor","pxmin","gsfb","pxminPos","ath_over","ATH2","enable_athaa_fix","xmin","rh1","rh2","en0","xa","xb","max_nonzero","BitStream$1","EQ","tmpATH","calc_noise_core","startline","step","noise","ix","ix01","calc_noise","distort","prev_noise","distortPos","l3_xminPos","over","over_noise_db","tot_noise_db","max_noise","scalefacPos","over_SSD","noise_log","usefullsize","sl","over_count","tot_noise","over_noise","set_pinfo","sfb2","en1","ifqstep","L3Side","xfsf","CalcNoiseResult","bw","LAMEsfb","en_s","xfsf_s","thr_s","LAMEsfb_s","LAMEqss","LAMEmainbits","LAMEsfbits","LARGE_BITS","System$4","Arrays$3","new_int$2","assert$6","Takehiro","Bits","subdv_table","quantize_lines_xrpow_01","istep","xrPos","ixPos","compareval0","quantize_lines_xrpow","remaining","x0","x3","rx0","rx1","rx2","rx3","quantize_xrpow","xp","pi","codInfo","prevNoise","prev_data_use","accumulate","accumulate01","xpPos","iData","iDataPos","acc_iData","acc_iDataPos","acc_xp","acc_xpPos","sfb_count1","ix_max","endPos","max1","max2","count_bit_ESC","linbits","count_bit_noESC","hlen1","count_bit_noESC_from2","count_bit_noESC_from3","sum3","hlen2","hlen3","huf_tbl_noESC","choose_table","choice2","choice","recalc_divide_init","r01_bits","r01_div","r0_tbl","r1_tbl","bigv","r0","a1","r0bits","bi","r0t","r1","a2","r1t","recalc_divide_sub","cod_info2","r2","r2t","noquant_count_bits","best_huffman_divide","count_bits","gain","roundfac","slen1_n","slen2_n","slen1_tab","slen2_tab","scfsi_calc","all_scalefactors_not_negative","best_scalefac_store","recalc","scale_bitcount","scale_bitcount_lsf","scale_short","scale_mixed","scale_long","max_slen1","max_slen2","max_range_sfac_tab","table_number","row_in_table","nr_sfb","max_sfac","partition_table","slen1","slen2","slen3","slen4","log2tab","bv_index","scfb_anz","System$3","Arrays$2","new_byte$2","new_int$1","assert$5","CRC16_POLYNOMIAL","ga","mpg","ver","_ga","_mpg","_ver","totbit","bufByteIdx","bufBitIdx","putheader_bits","putbits2","putbits_noheaders","drain_into_ancillary","remainingBits","getLameShortVersion","writeheader","CRC_update","crc","encodeSideInfo2","bitsPerFrame","CRC_writeheader","old","huffman_coder_count1","huffbits","Huffmancode","tableindex","cbits","xbits","ext","linbits_x1","linbits_x2","ShortHuffmancodebits","region1Start","LongHuffmancodebits","bigvalues","region2Start","writeMainData","data_bits","tot_bits","sfb_partition","scale_bits","sfbs","TotalBytes","total","compute_flushbits","total_bytes_output","flushbits","remaining_headers","last_ptr","first_ptr","getframebits","bit_rate","byte","flush_bitstream","NEQ","GainAnalysis","add_dummy_byte","bufferPos","mp3data","minimum","updateMusicCRC","pcm_buf","mp3_in","samples_out","hip_decode1_unclipped","init_bit_stream_w","Lame$1","LAME_MAXMP3BUFFER","System$2","VbrMode$3","ShortBlock$1","new_float$2","assert$4","LAME_MAXALBUMART","V9","V8","V7","V6","V5","V4","V3","V2","V1","V0","R3MIX","STANDARD","EXTREME","INSANE","STANDARD_FAST","EXTREME_FAST","MEDIUM","MEDIUM_FAST","qu","id3","mpglib","LowPassHighPass","lowerlimit","BandPass","bitrate","lPass","lowpass","enc","_qu","_id3","_mpglib","LAME_ID","lame_init_old","filter_coef","optimum_samplefreq","input_samplefreq","suggested_samplefreq","SmpFrqIndex","sample_freq","gpf","FindNearestBitrate","bRate","samplerate","BitrateIndex","optimum_bandwidth","lh","freq_map","table_index","nearestBitrateFullIndex","lame_init_params_ppflt","lowpass_band","highpass_band","minband","maxband","fc1","fc2","lame_init_qval","lame_init_bitstream","id3tag_write_v2","InitVbrTag","update_inbuffer_size","nsamples","calcNeeded","mf_needed","lame_encode_buffer_sample","buffer_l","buffer_r","mp3out","mp3size","in_buffer","in_bufferPos","in_buffer_ptr","n_in","n_out","inOut","InOut","fill_buffer","buf_size","lame_encode_frame","NumUsed","num_used","gcd","blackman","fcn","wcn","bkwn","sin","fill_buffer_resample","outbuf","outbufPos","desired_len","bpc","intratio","filter_l","BLACKSIZE","time0","joff","xvalue","n_shift","io","numUsed","lame_init","full_bitrate_table","lower_range","lower_range_kbps","upper_range","upper_range_kbps","lame_init_params","map2MP3Frequency","linear_int","hip_decode_exit","hip_decode_init","cmp","apply_preset","LAME_DEFAULT_QUALITY","VBRNewIterationLoop","VBROldIterationLoop","vbrmode","ABRIterationLoop","NSATTACKTHRE","NSATTACKTHRE_S","lame_encode_flush","mp3buffer","mp3bufferPos","mp3buffer_size","mp3buffer_size_remaining","end_padding","frames_left","imp3","samples_to_encode","bunch","frame_num","lame_encode_buffer","id3tag_write_v1","VbrMode$2","Presets","VBRPresets","qual","compS","shThreshold","shThresholdS","adj","adjShort","lower","curve","sens","inter","joint","fix","vbr_q","quant_comp_s","expY","st_lrm","st_s","masking_adj","masking_adj_short","ath_lower","ath_curve","ath_sensitivity","interch","safejoint","sfb21mod","ABRPresets","kbps","sc","mask","interCh","sfScale","nsmsfix","nsbass","sfscale","lame","_lame","vbr_old_switch_map","vbr_psy_switch_map","apply_vbr_preset","vbr_preset","q","lame_set_VBR_q","abr_switch_map","apply_abr_preset","actual_bitrate","VBRQuantize","CalcNoiseResult$1","new_float$1","CalcNoiseData","System$1","VbrMode$1","Arrays$1","assert$3","Quantize","tk","init_xrpow_core","psfb21_analogsilence","ath21","ath12","BinSearchDirection","bin_search_StepSize","desired_rate","nBits","flagGoneOver","Direction","BINSEARCH_NONE","BINSEARCH_DOWN","BINSEARCH_UP","loop_break","penalties","get_klemm_noise","klemm_noise","quant_compare","best","calc","better","BitStream","amp_scalefac_bands","bRefine","ifqstep34","trigger2","inc_scalefac_scale","inc_subblock_gain","amp","balance_noise","ixwork","trancate_smallspectrums","allowedNoise","trancateThreshold","nsame","cod_info_w","save_xrpow","best_noise_info","best_part2_3_length","bEndOfSearch","best_ggain_pass1","age","search_limit","noise_info","maxggain","huff_bits","ResvAdjust","VBR_encode_granule","min_bits","dbits","bst_cod_info","bst_xrpow","Max_bits","real_bits","this_bits","LameInternalFlags","get_framebits","frameBits","MeanBits","VBR_old_prepare","bands","analog_silence","mxb","bitpressure_strategy","VBR_new_prepare","maximum_framebits","calc_target_bits","analog_silence_bits","max_frame_bits","res_factor","totbits","assert$2","Reservoir","maxmp3buf","frameLength","resvLimit","fullFrameBits","resvsize","over_bits","stuffingBits","mdb_bytes","Version","LAME_URL","LAME_MAJOR_VERSION","LAME_MINOR_VERSION","LAME_PATCH_VERSION","PSY_MAJOR_VERSION","PSY_MINOR_VERSION","getLameVersion","getLameVeryShortVersion","getPsyVersion","getLameUrl","getLameOsBitness","new_byte$1","assert$1","VBRTag","FRAMES_FLAG","BYTES_FLAG","TOC_FLAG","VBR_SCALE_FLAG","NUMTOCENTRIES","MAXFRAMESIZE","VBRHEADERSIZE","LAMEHEADERSIZE","XING_BITRATE1","XING_BITRATE2","XING_BITRATE25","ISO_8859_1","VBRTag0","VBRTag1","crc16Lookup","addVbr","v2","xingSeekTable","act","indx","seek_point","extractInteger","createInteger","createShort","isVbrTag","equals","shiftInBitsValue","setLameTagFrameHeader","bbyte","abyte","crcUpdateLookup","putLameVBR","musicLength","streamBuffer","streamBufferPos","revMethod","abrBitrate","bytesWritten","encDelay","encPadding","revision","vbrTypeTranslator","peakSignalAmplitude","radioReplayGain","audiophileReplayGain","noiseShaping","stereoMode","nonOptimal","sourceFreq","misc","musicCRC","expNPsyTune","safeJoint","noGapMore","noGapPrevious","noGapCount","noGapCurr","athType","skipId3v2","fpStream","seek","id3v2TagSize","id3v2Header","readFully","Tables","getVbrTag","pTagData","VBRTagData","hId","hSrIndex","hMode","hBitrate","samprate","head_flags","frames","toc","vbrScale","headersize","kbps_header","totalFrameSize","headerSize","getLameTagFrame","Lame","streamIndex","streamSize","putVbrTag","GetAudio","parse2","mpg2","Parse","ver2","id32","pre2","MPGLib","ID3Tag","_bits","Mp3Encoder$1","channels","gaud","maxSamples","encodeBuffer","_sz","subarray","fourccToInt","fourcc","Mp3Encoder","bitRate","sampleRate","dataBuffer","encoder","arrayBuffer","samples","_convertBuffer","finish","blob","Blob","URL","createObjectURL","_floatTo16BitPCM","Recorder","beforeRecording","pauseRecording","afterRecording","micFailed","encoderOptions","bufferSize","records","isPause","isRecording","volume","_duration","constraints","video","audio","channelCount","echoCancellation","mediaDevices","getUserMedia","_micCaptured","_micError","lameEncoder","getTracks","track2","processor","record","AudioContext","webkitAudioContext","createMediaStreamSource","createScriptProcessor","onaudioprocess","sample","inputBuffer","getChannelData","toFixed","connect","isChromium","chrome","winNav","vendorName","vendor","isOpera","opr","isIEedge","isIOSChrome","detectChrome","detectMobile","getUserAgent","userAgentPart","opera","_sfc_main$a","roomMessage","showSendIcon","showFiles","showAudio","showEmojis","showFooter","acceptedFiles","multipleFiles","captureFiles","textareaActionEnabled","textareaAutoFocus","userTagsEnabled","emojisSuggestionEnabled","templatesText","audioBitRate","audioSampleRate","initReplyMessage","initEditMessage","droppedFiles","editedMessage","cursorRangePosition","fileDialog","selectUsersTagItem","selectEmojiItem","selectTemplatesTextItem","format","activeUpOrDownEmojis","activeUpOrDownUsersTag","activeUpOrDownTemplatesText","emojisDB","keepKeyboardOpen","selectedUsersTag","recorder","initRecorder","isMessageEmpty","isFileLoading","recordedTime","shadowFooter","resetMessage","onChangeInput","getTextareaRef","replyMessage","editMessage","onFileChange","isComposed","isComposing","updateFooterLists","resetFooterList","stopRecorder","roomTextarea","focusTextarea","disableMobileFocus","setSelectionRange","resizeTextarea","scrollHeight","escapeTextarea","onPasteImage","pasteEvent","clipboardData","getAsFile","updateActiveUpOrDown","direction","selectEmoji","position","getCharPosition","selectTemplateText","addEmoji","launchFilePicker","click","fileURL","typeIndex","blobFile","loadedFile","file2","removeFile","toggleRecorder","recording","textareaActionHandler","newContent","usersTag","messageContent","initialContent","firstTag","secondTag","usertags","matchAll","selectUserTag","updateFooterList","tagChar","textareaCursorPosition","selectionStart","beforeTag","notLetterNumber","updateShowUsersTag","updateShowTemplatesText","editMode","cursorPosition","selectionEnd","initRoom","resetTextareaSize","preventKeyboardFromClosing","_hoisted_1$a","_hoisted_2$8","_hoisted_3$8","_hoisted_4$8","_hoisted_5$6","_hoisted_6$3","_hoisted_7$3","_sfc_render$a","_component_room_emojis","_component_room_users_tag","_component_room_templates_text","_component_room_message_reply","_component_room_files","_component_emoji_picker_container","onSelectEmoji","onActivateItem","onSelectUserTag","onSelectTemplateText","onResetMessage","onKeydown","onPaste","onAddEmoji","onOpenEmoji","accept","onChange","RoomFooter","_sfc_main$9","roomUsers","replyUsername","replyUser","_hoisted_1$9","_hoisted_2$7","_hoisted_3$7","_hoisted_4$7","_hoisted_5$5","_hoisted_6$2","_hoisted_7$2","_hoisted_8$1","_hoisted_9$1","_hoisted_10$1","_sfc_render$9","onUpdateProgressTime","progressTime","hoverAudioProgress","MessageReply","_sfc_main$8","radius","stroke","normalizedRadius","circumference","strokeDashoffset","_hoisted_1$8","_hoisted_2$6","_hoisted_3$6","_hoisted_4$6","_hoisted_5$4","_sfc_render$8","strokeLinecap","cy","ProgressBar","_sfc_main$7","imageResponsive","imageLoading","imageHover","isImageLoading","checkImgLoad","maxHeight","clientWidth","loaderTop","clientHeight","openFile","_hoisted_1$7","_hoisted_2$5","_hoisted_3$5","_hoisted_4$5","_sfc_render$7","_component_progress_bar","onMouseleave","preview","MessageFile","_sfc_main$6","imageVideoFiles","otherFiles","_hoisted_1$6","_hoisted_2$4","_hoisted_3$4","_hoisted_4$4","_hoisted_5$3","_sfc_render$6","_component_message_file","onOpenFile","onOpenUserTag","MessageFiles","_sfc_main$5","messageActions","showReactionEmojis","messageHover","hoverMessageId","menuOptionsTop","optionsOpened","optionsClosing","isMessageActions","filteredMessageActions","disableActions","isMessageReactions","disableReactions","onlyMe","openOptions","menuOptions","actionIcon","actionIconTop","optionsTopPosition","closeOptions","updateMessageHover","closeEmoji","messageActionHandler","sendMessageReaction","reaction","_hoisted_1$5","_hoisted_2$3","_hoisted_3$3","_hoisted_4$3","_sfc_render$5","MessageActions","_sfc_main$4","_hoisted_1$4","_sfc_render$4","reactions","MessageReactions","roomsValidation","roomsValidate","validate","obj2","validType","checkObjectValid","partcipantsValidation","participantsValidate","messagesValidation","messagesValidate","_sfc_main$3","editedMessageId","newMessages","showNewMessagesDivider","usernameOptions","selectedMessages","newMessage","showUsername","currentUser","minUsers","showDate","date","messageOffset","isMessageHover","isCheckmarkVisible","hasCurrentUserAvatar","hasSenderUserAvatar","isMessageSelected","resetMessageHover","onHoverMessage","canEditMessage","onLeaveMessage","openUserTag","selectMessage","_hoisted_1$3","_hoisted_2$2","_hoisted_3$2","_hoisted_4$2","_hoisted_5$2","_hoisted_6$1","_hoisted_7$1","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_sfc_render$3","_component_message_reply","_component_message_files","_component_message_actions","_component_message_reactions","system","edited","onUpdateMessageHover","onUpdateOptionsOpened","onUpdateEmojiOpened","onMessageActionHandler","onSendMessageReaction","failure","RoomMessage","_sfc_main$2","loadFirstRoom","autoScroll","loadingMessages","loadingMoreMessages","scrollIcon","scrollMessagesCount","showNoMessages","showNoRoom","noRoomSelected","updateLoadingMessages","showMessagesStarted","onRoomChanged","loadMoreMessages","preventTopScroll","scrollContainer","prevScrollHeight","scrollTo","touchStart","touchEvent","changedTouches","posXStart","posYStart","touchEvent2","touchEnd","posXEnd","posYEnd","swippedRight","swippedVertically","resetMessageSelection","unselectMessage","onMessageAdded","autoScrollOffset","scrolledUp","getBottomScroll","newAfterScrollUp","scrollToBottom","receive","onContainerScroll","bottomScroll","messageReaction","behavior","onDropFiles","dataTransfer","_hoisted_1$2","_hoisted_2$1","_hoisted_3$1","_hoisted_4$1","_hoisted_5$1","_hoisted_6","_hoisted_7","_sfc_render$2","_component_room_header","_component_room_message","_component_room_footer","onDrop","onDragenter","onDragover","onDragleave","onTouchstart","onToggleRoomsList","onRoomInfo","onMenuActionHandler","onMessageSelectionActionHandler","onCancelMessageSelection","onScroll","indexId","onOpenFailedMessage","onSelectMessage","onUnselectMessage","onUpdateEditedMessageId","onEditMessage","onTypingMessage","onTextareaActionHandler","Room","_sfc_main$1","modal","closeModal","_hoisted_1$1","_hoisted_2","_hoisted_3","autoplay","_hoisted_4","_hoisted_5","_sfc_render$1","tabindex","MediaPreview","locales","defaultThemeStyles","light","general","colorButtonClear","colorButton","backgroundColorButton","backgroundInput","colorPlaceholder","colorCaret","colorSpinner","borderStyle","backgroundScrollIcon","border","borderRadius","boxShadow","background","colorRoomName","colorRoomInfo","footer","borderStyleInput","borderInputSelected","backgroundReply","backgroundTagActive","backgroundTag","sidemenu","backgroundHover","backgroundActive","colorActive","borderColorSearch","backgroundMe","colorStarted","backgroundDeleted","backgroundSelected","colorDeleted","colorUsername","colorTimestamp","backgroundDate","colorDate","backgroundSystem","colorSystem","backgroundMedia","colorReplyUsername","colorReply","colorTag","backgroundImage","colorNewMessages","backgroundScrollCounter","colorScrollCounter","backgroundReaction","borderStyleReaction","backgroundReactionHover","borderStyleReactionHover","colorReactionCounter","backgroundReactionMe","borderStyleReactionMe","backgroundReactionHoverMe","borderStyleReactionHoverMe","colorReactionCounterMe","backgroundAudioRecord","backgroundAudioLine","backgroundAudioProgress","backgroundAudioProgressSelector","colorFileExtension","colorMulti","colorMessage","colorStateOnline","colorStateOffline","backgroundCounterBadge","colorCounterBadge","icons","closeImage","closeOutline","closePreview","sendDisabled","checkmarkSeen","dropdownMessage","dropdownMessageBackground","dropdownRoom","dropdownScroll","audioPlay","audioPause","audioCancel","audioConfirm","dark","cssThemeVars","_style_0","_sfc_main","theme","responsiveBreakpoint","roomsListOpened","roomsOrder","mediaPreviewEnabled","showMediaPreview","previewFile","textMessagesCasted","cssVars","defaultStyles","customStyles","stylesCasted","orderedRooms","roomsCasted","aVal","bVal","singleRoomCasted","castBoolean","roomsListOpenedCasted","loadingRoomsCasted","roomsLoadedCasted","loadFirstRoomCasted","messagesLoadedCasted","multipleFilesCasted","showSearchCasted","showAddRoomCasted","showSendIconCasted","showFilesCasted","showAudioCasted","showEmojisCasted","showReactionEmojisCasted","showNewMessagesDividerCasted","showFooterCasted","roomInfoEnabledCasted","textareaActionEnabledCasted","textareaAutoFocusCasted","userTagsEnabledCasted","emojisSuggestionEnabledCasted","mediaPreviewEnabledCasted","castArray","messagesCasted","roomActionsCasted","menuActionsCasted","messageActionsCasted","messageSelectionActionsCasted","templatesTextCasted","castObject","autoScrollCasted","textFormattingCasted","linkOptionsCasted","usernameOptionsCasted","fetchRoom","updateResponsive","isTrusted","toggleRoomsList","opened","fetchMessages","fetchMoreRooms","roomInfo","addRoom","deleteMessage","openFailedMessage","typingMessage","_hoisted_1","_sfc_render","_component_rooms_list","_component_room","_component_media_preview","onFetchRoom","onFetchMoreRooms","onLoadingMoreRooms","onFetchMessages","onDeleteMessage","onCloseMediaPreview","ChatWindow","VueAdvancedChat","PACKAGE_NAME","socket","roomInfoStr","roomInfoElm","room_name","room_title","user_id","WebSocket","onmessage","replyTo","__exports__","_withScopeId","_pushScopeId","_popScopeId","_createElementVNode","_component_notification_message","_createElementBlock","onFocus","onFocusout","numberOfUnread","_toDisplayString","_createCommentVNode","_Fragment","_renderList","viewed","onMouseup","_withModifiers","onMiddleClick","_normalizeClass","unviewed","relativeCreationDate","getTimezoneOffsetInMilliseconds","utcDate","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","setUTCFullYear","requiredArgs","toDate","argStr","startOfDay","dirtyDate","setHours","MILLISECONDS_IN_DAY","differenceInCalendarDays","dirtyDateLeft","dirtyDateRight","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","isValid","formatDistanceLocale","lessThanXSeconds","one","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","tokenValue","addSuffix","comparison","buildFormatLongFn","defaultWidth","formats","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","formatRelative","_date","_baseDate","_options","buildLocalizeFn","dirtyIndex","dirtyOptions","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","rem100","localize","era","quarter","month","day","dayPeriod","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchResult","matchedString","parsePatterns","defaultParseWidth","findKey","valueCallback","buildMatchPatternFn","parseResult","parsePattern","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","weekStartsOn","firstWeekContainsDate","toInteger","addMilliseconds","dirtyAmount","amount","subMilliseconds","getUTCDayOfYear","setUTCMonth","setUTCHours","startOfYearTimestamp","difference","startOfUTCISOWeek","getUTCDay","setUTCDate","getUTCDate","getUTCISOWeekYear","year","getUTCFullYear","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","startOfUTCISOWeekYear","fourthOfJanuary","MILLISECONDS_IN_WEEK","getUTCISOWeek","startOfUTCWeek","localeWeekStartsOn","defaultWeekStartsOn","RangeError","getUTCWeekYear","localeFirstWeekContainsDate","defaultFirstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","startOfUTCWeekYear","firstWeek","getUTCWeek","addLeadingZeros","targetLength","sign","formatters","signedYear","M","getUTCMonth","dayPeriodEnumValue","getUTCHours","H","getUTCMinutes","getUTCSeconds","S","numberOfDigits","milliseconds","getUTCMilliseconds","fractionalSeconds","dayPeriodEnum","G","unit","lightFormatters","Y","signedWeekYear","weekYear","twoDigitYear","R","isoWeekYear","Q","L","week","I","isoWeek","D","dayOfYear","E","dayOfWeek","localDayOfWeek","isoDayOfWeek","hours","K","X","_localize","originalDate","_originalDate","timezoneOffset","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","z","T","dirtyDelimiter","absOffset","minutes","delimiter","dateLongFormatter","timeLongFormatter","dateTimeLongFormatter","dateTimeFormat","datePattern","timePattern","longFormatters","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","formatStr","formatterOptions","firstCharacter","longFormatter","cleanEscapedString","formatter","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","dirtyBaseDate","baseDate","_ref","_ref$locale","_ref$weekStartsOn","utcBaseDate","form","suffix","feminineUnits","creationDate","setAsViewed","fr","NotificationMessage","PlayerState","_typeof","_defineProperty","ENABLE_DEBUG","Logger","debug","VideoPlayer","videoPlayerConfig","videoId","sound","playBackRate","canWait","loop","_startSeconds","startSeconds","videoPlayerArea","videoState","LOADING","videoElement","setupVideoElement","lastScrollY","fullscreenElement","scrollY","videojs","newRate","playbackRate","videoPlayers","onReady","onSeeking","onStateChange","ENDED","syncTime","BUFFERING","PLAYING","PAUSE","LOADED","READY","mainVideo","syncThreshold","syncLoop","videoCurrentTime","mainCurrentTime","thisCurrentTime","timeTo","statesToPropagate","UNSTARTED","changeState","initialSrc","userActions","doubleClick","controlBar","volumePanel","fullscreenToggle","playbackRateMenuButton","muted","_createFullscreenButton","setControls","setMain","_swap","videoPlayer","animateSwap","nodeA","nodeB","parentA","parentB","siblingA","thisControls","thisMain","paused","HAVE_CURRENT_DATA","getDuration","getPlayLength","getCurrentTime","getPlayedTime","isEnded","fullscreenButton","addChild","clickHandler","videoContainer","exitFullscreen","requestFullscreen","controlText","buttonDom","validStates","isValidState","currentState","nextState","stateOuts","SyncVideoPlayer","area","readyCount","$container","getDebugInfo","vp","isMain","addVideoPlayers","areaEl","mainVideoPlayer","moveStateTo","allReady","success","fail","oldState","fixVideoStates","addVideoPlayer","videoInstance","excludeMain","swapVideo","index1","index2","_defineComponent","__props","multivideos","syncVideoPlayer","ids","debugInfo","onPlay","onPause","onAdd","onFullscreen","setInterval","onTouchend","_createTextVNode","ChatComponent","NotificationsBell","VideoComponent"],"sourceRoot":""}
\ No newline at end of file